数组\OX游戏判断部分(数组+函数)

简介: 数组\OX游戏判断部分(数组+函数)

看着有点长,其实一块一块的挺短的

这也是分块程序设计的好处

#include<stdio.h>
#include<stdlib.h>
int chc(int first,int second);
int  diag(int dh);
//前导定义
  const int size=3;
  int board[size][size];
  int i,j,numO,numX;
  int result=-1;
 
//主函数
int main()
{
  int count=1;
  //读入矩阵
  printf("###输入结果请以O为0,X为1###\n");
  for(i=0;i<size;i++)
  {
    for(j=0;j<size;j++)
    {
      printf("第%d/9次,请输入结果:(行首列辅)",count);
      scanf("%d",&board[i][j]);
      count++;
      printf("%d行%d列%d\n",i,j,board[i][j]);
    }
  }
  //首先得到一个矩阵
 
  //检查行
  int rresult=chc(i,j);
  //检查列
  int cresult;
  if(result==-1)
    cresult=chc(j,i);
  //检查对角线
  int diaresult=diag(i);
  //检查反对角线---->这地方其实不太适合调用函数,反正我的函数跑不了,要跑起来代码反而边长了
  numO=numX=0;
  if(result==-1)
  {
    for(i=0;i<size;i++)
    {
      if(board[i][size-i-1]==1)
        numX++;
      else
        numO++;
    }
  }
    if(numO==size)
      result=0;
    else if(numX==size)
      result=1;
  int adiaresult=result;
 
  //判断结果是是谁赢
  if(rresult==1 || cresult==1 || diaresult==1 || adiaresult==1)
    printf("X方获胜!\n");
  else if(rresult==0 || cresult==0 || diaresult==0 || adiaresult==0)
    printf("O方获胜!\n");
  else if(rresult==-1 || cresult==-1 || diaresult==-1 || adiaresult==-1)
    printf("无人获胜!\n");
 
  system("pause");
  return 0;
}
 
//检查行列的函数
int chc(int first,int second)
{
  for(first=0;first<size && result==-1;first++)
  {
    numO=numX=0;
    for(second=0;second<size;second++)
    {
      if(board[first][second]==1)
        numX++;
      else
        numO++;
      if(numO==size)
      {
        result=0;
        break;
      }
      else if(numX==size)
      {
        result=1;
        break;
      }
    }
  }
  return result;
}
 
//检查对角线的函数
int diag(int dh)
{
  int result2=-1;
  numO=numX=0;
  if(result==-1)
  {
    for(dh=0;dh<size;dh++)
    {
      if(board[dh][dh]==1)
        numX++;
      else
        numO++;
    }
  }
    if(numO==size)
      result2=0;
    else if(numX==size)
      result2=1;
  return result2;
}


目录
相关文章
|
2月前
|
JavaScript 前端开发 索引
如何判断一个值是否在数组内?
如何判断一个值是否在数组内?
|
11天前
|
编译器
数组\数组模拟发牌——显示问题
数组\数组模拟发牌——显示问题
7 1
|
11月前
|
前端开发 数据格式
关于三个数组的判断
关于三个数组的判断
36 0
|
11月前
判断变量是否为数组的几种方法
判断变量是否为数组的几种方法
110 0
|
12月前
|
存储 编译器 C语言
想要了解数组吗?进来看看(下)
想要了解数组吗?进来看看(下)
|
12月前
|
存储 C语言 索引
想要了解数组吗?进来看看(上)
想要了解数组吗?进来看看(上)
|
C语言
接受一个整型值,按照顺序打印他的每一位(函数,递归方法)
接受一个整型值,按照顺序打印他的每一位(函数,递归方法)
162 0
接受一个整型值,按照顺序打印他的每一位(函数,递归方法)
编写一个满足下面要求的程序:创建一个由100个随机选取的整数构成的数组 提示用户输入数组的下标,然后显示对应的元素值,如果指定的下标越界,则显示消息“Out of Bounds”
编写一个满足下面要求的程序:创建一个由100个随机选取的整数构成的数组 提示用户输入数组的下标,然后显示对应的元素值,如果指定的下标越界,则显示消息“Out of Bounds”
157 0
|
JSON 数据格式
如何判断两个对象/数组相等
如何判断两个对象/数组相等
|
C++
C++实现有界数组模板(检查数组是否越界)
C++实现有界数组模板(检查数组是否越界)
139 0
C++实现有界数组模板(检查数组是否越界)