【经典游戏编程题】C语言:编写一个棋盘游戏,与二维数组结合

#include<stdio.h>
#include<stdlib.h>
char arr[3][3];
void print()
{
 int i=0;
 for(i=0;i<3;i++)
 {
  printf("%c|%c|%c|\n",arr[i][0],arr[i][1],arr[i][2]);
  printf("_|_|_|\n");
 }
}
void init_arr()
{
 int i=0;
 int j=0;
 for(i=0;i<3;i++)
 {
  for(j=0;j<3;j++)
  {
   arr[i][j]=' ';
  }
 }
}
void player()
{
 int i=0;
 int j=0;
 printf("输入i,j:\n");
 scanf("%d %d",&i,&j);
 i--;
 j--;
 if (arr[i][j]!=' ')
 {
  printf("此格已输入,请重新输入i,j:\n");
  player();
 }
 else
 {
  arr[i][j]='X';
 }
}
void computer_move()
{
 int i=0;
 int j=0;
 for(i=0;i<3;i++)
 {
  for(j=0;j<3;j++)
  {
   if(arr[i][j]==' ')
   {
    arr[i][j]='0';
    break;
   }
  }
  break;
 }
}
char win()
{
 int i=0;
 for(i=0;i<3;i++)
 {
  if((arr[i][0]==arr[i][1])&&
   (arr[i][1]==arr[i][2]))
  {
   return arr[i][0];
  }
 }
 
 for(i=0;i<3;i++)
 {
  if((arr[0][i]==arr[1][i])&&
   (arr[1][i]==arr[2][i]))
  {
   return arr[0][i]; 
  }
 } 
}
int main()
{
 char done;
 int i;
 int j;
 done=' ';
 init_arr();
 printf("棋盘游戏:\n");
  do
  {
   print();
   player();
   done=win();
   if(done!=' ')
   {
    break;
   }
   computer_move();
   done=win();
  }while(done==' ');
   if(done=='0')
   {
    printf("电脑赢\n");
   }
   else
   {
    printf("玩家赢\n");
   }
   print();
   
}

 

    编写了五个函数,再用主函数调用wKioL1YmAwSzDFSkAAH4c_FvHas574.jpgwKiom1YmAz_RlMJlAACDfmGWOfQ747.jpg

你可能感兴趣的:(数组的使用,电脑遍历整个数组,C语言:编写一个棋盘游戏,输入‘0’)