深入浅析C语言实现三子棋游戏

  介绍

深入浅析C语言实现三子棋游戏?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

1。首先打印出菜单。

 

2。创建一个二维数组板用来储存三子棋的元素,并对其进行初始化。

空白Initboard (char(行)(COL), int, int)上校
  {
  int i=0;
  int j=0;
  (我=0;我& lt;行;我+ +)
  {
  (j=0;j & lt;上校;j + +)
  {
  董事会[我][j]=& # 39;& # 39;;
  }
  }
  }

3。打印九宫格棋盘。

空白Displayboard (char(行)(COL), int, int)上校//打印棋盘
  {
  int我;
  int j;
  (我=0;我& lt;行;我+ +)
  {
  (j=0;j & lt;上校;j + +)
  {
  printf (“% c“董事会[我][j]);
  如果(j==col - 1)
  继续;
  printf (“|”);
  }
  printf (“\ n");
  如果我& lt;行- 1)
  printf (“- - - - - - - - - - - - \ n");
  }
  }

4。使用Playermove和Computermove函数来对板数组进行更改,模拟玩家和电脑落子情况。

空白Playermove (char(行)(COL))//玩家输入坐标
  {
  而(1)
  {
  int x=0;
  int y=0;
  printf(“请玩家输入坐标“);
  scanf_s (“% d % d", x,, y);
  如果(x & lt;=行,,x祝辞=1,,y & lt;=坳,,y祝辞=1)//判断输入的坐标是否越界
  
  {
  如果董事会[x - 1] [y - 1)==& # 39;& # 39;)//输入的坐标必须为空才可以落子
  {
  董事会(x - 1) (y - 1)=& # 39; * & # 39;;
  打破;
  }
  其他的
  printf(“坐标被占用,请重新输入\ n");
  }
  其他的
  printf(“坐标有误,请重新输入\ n");
  }
  }
  空白Computermove (char(行)(COL))//电脑输入坐标
  {
  int x=0;
  int y=0;
  而(1)
  {
  x=rand () % 3;//使用兰德函数生成随机数并取余得到电脑落子坐标
  y=rand () % 3;
  如果董事会[x] [y]==& # 39;& # 39;)
  {
  printf(“电脑输入坐标% d % d \ n", x + 1, y + 1);
  董事会[x] [y]=& # 39; # & # 39;;
  打破;//打印后跳出循环
  }
  }
  }

5。玩家和电脑每落一次子,就要进行一次判断是否获胜,根据返回值来进行判断游戏结果。

 int Iswin (char(行)(COL), int, int坳)//判断谁获胜
  {
  int我;
  int j;//1为玩家获胜0为电脑获胜2为平局
  (我=0;我& lt;行;我+ +)
  {
  如果板[我][0]==板[我][1],,板[我][1]==板[我][2],,董事会[我][1]==& # 39;* & # 39;)//判断同一行是否相等
  返回1;
  else if(板[我][0]==板[我][1],,板[我][1]==板[我][2],,董事会[我][1]==& # 39;# & # 39;)
  返回0;
  }
  (j=0;j & lt;上校;j + +)
  {
  如果董事会[0][j]==董事会[1][j],,董事会委员会[1][j]==[2] [j],,董事会[1][j]==& # 39; * & # 39;)//判断同一列是否相等
  返回1;
  else if(板[0][j]==板[1][j],,董事会委员会[1][j]==[2] [j],,董事会[1][j]==& # 39; # & # 39;)
  返回0;
  }
  如果董事会[0][0]==董事会[1][1],,董事会[1][1][2][2]==董事会,,董事会[1][1]==& # 39;* & # 39;)//判断左对角线是否相等
  返回1;
  else if(板[0][0]==板[1][1],,董事会[1][1][2][2]==董事会,,董事会[1][1]==& # 39;# & # 39;)
  返回0;
  如果董事会[0][2]==董事会[1][1],,董事会[1][1][2][0]==董事会,,董事会[1][1]==& # 39;* & # 39;)//判断右对角线是否相等
  返回1;
  else if(板[0][2]==板[1][1],,董事会[1][1][2][0]==董事会,,董事会[1][1]==& # 39;# & # 39;)
  返回0;
  如果(全(板、行、坳))//判断是否平局
  返回2;
  返回3;//返回3为继续进行游戏
  }

6。函数声明,宏定义,函数的定义实现,测试。

深入浅析C语言实现三子棋游戏