使用C语言实现一个三子棋游戏

  介绍

本篇文章为大家展示了使用C语言实现一个三子棋游戏,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

游戏。h

# include   # include   # include      #定义行3   #定义坳3//声明函数   空白InitBoard (char(行)(COL), int, int)上校;//打印棋盘   空白PrintBoard (char(行)(COL), int, int)上校;//玩家下的棋   空白PlayerMove (char(行)(COL), int, int)上校;//电脑下棋   空白ComputerMove (char(行)(COL), int, int)上校;//检测游戏输赢   char CheckWin (char(行)(COL), int, int)上校;

游戏。c

 # include“game.h"//初始化棋盘
  空白InitBoard (char(行)(COL), int, int)上校
  {
  int i=0;
  (我=0;我& lt;行;我+ +)
  {
  int j=0;
  (j=0;j & lt;上校;j + +)
  {
  董事会[我][j]=& # 39;& # 39;;
  }
  }
  }//打印棋盘
  空白PrintBoard (char(行)(COL), int, int)上校
  {
  int i=0;
  (我=0;我& lt;上校;我+ +)
  {//打印数据
  int j=0;
  (j=0;j & lt;行;j + +)
  {
  printf (“% c“董事会[我][j]);
  如果(j & lt;行- 1)
  {
  printf (“|”);
  }
  }
  printf (“\ n");//打印分隔符
  如果我& lt;行- 1)
  {
  (j=0;j & lt;上校;j + +)
  {
  printf(“——产生绯闻);
  如果(j & lt;col - 1)
  {
  printf (“|”);
  }
  }
  printf (“\ n");
  }
  
  }
  }//玩家走
  空白PlayerMove (char(行)(COL), int, int)上校
  {
  int x=0;
  int y=0;
  
  printf(“玩家走:祝辞\ n");
  
  而(1)
  {
  printf(“请输入坐标:在“);
  scanf (“% d % d", x,, y);
  if (x祝辞=1,,x & lt;=行,,y祝辞=1,,y & lt;=坳)
  {
  如果董事会[x - 1] [y - 1)==& # 39;& # 39;)
  {
  董事会(x - 1) (y - 1)=& # 39; * & # 39;;//落子
  打破;
  }
  其他的
  {
  printf(“该坐标已被占用,请重新输入\ n");
  }
  }
  其他的
  {
  printf(“坐标输入非法,请重新输入\ n");
  }
  }
  
  }//电脑走
  空白ComputerMove (char(行)(COL), int, int)上校
  {
  printf(“电脑走\ n");
  而(1)
  {
  int x=rand() %行;//0 - 2
  int y=rand() %坳;//0 - 2
  如果董事会[x] [y]==& # 39;& # 39;)
  {
  董事会[x] [y]=& # 39; # & # 39;;
  打破;
  }
  }
  
  }
  
  静态int IsFull (char(行)(COL), int, int)上校
  {
  int i=0;
  int j=0;
  (我=0;我& lt;行;我+ +)
  {
  (j=0;j & lt;上校;j + +)
  {
  如果董事会[我][j]==& # 39;& # 39;)
  {
  返回0;
  }
  }
  }
  返回1;//没空格
  }//判断输赢
  char CheckWin (char(行)(COL), int, int)上校
  {
  int i=0;//行判断
  (我=0;我& lt;行;我+ +)
  {
  如果板[我][0]==板[我][1],,板[我][1]==板[我][2],,董事会[我][0]!=& # 39;& # 39;)
  {
  滑板[我][0];
  }
  }//列判断
  (我=0;我& lt;上校;我+ +)
  {
  如果董事会[0][我]==董事会[1][我],,董事会[1][我]==委员会[2](我),,董事会[1][我]!=& # 39;& # 39;)
  {
  滑板[0][我];
  }
  }//对角线判断
  如果董事会[0][0]==董事会[1][1],,董事会[1][1][2][2]==董事会,,董事会[1][1]!=& # 39;& # 39;)
  {
  滑板[1][1];
  }
  如果董事会[0][2]==董事会[1][1],,董事会[1][1][2][0]==董事会,,董事会[1][1]!=& # 39;& # 39;)
  {
  滑板[1][1];
  }//判断是否平局//判断期盼是否满了键盘是否有空格
  如果(IsFull(板、行、坳)==1)
  {
  返回& # 39;提问# 39;;
  }
  其他的
  返回& # 39;c # 39;;
  }

测试。c

 # include“game.h"
  
  无效的菜单()
  {
  printf (“* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * \ n");
  printf (“* * * * * * * * * 1。打* * * * * * * * * * * \ n");
  printf (“* * * * * * * * * 0。出口* * * * * * * * * * * \ n");
  printf (“* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * \ n");
  }//设计三子棋游戏
  
  空游戏()
  {
  char ret=0;//存储数据的
  char董事会(行)(COL)={0};//数组应该初始化为空格
  InitBoard(板、行、坳);//打印棋盘
  PrintBoard(板、行、坳);//分析发现在玩游戏的过程中会出现的情况//1。玩家赢- & # 39;* & # 39;//2。电脑赢- & # 39;# & # 39;//3。平局了,& # 39;提问# 39;//4。继续- & # 39;c # 39;
  
  
  而(1)
  {
  PlayerMove(板、行、坳);//判断输赢
  ret=CheckWin(板、行、坳);
  如果(ret !=& # 39; c # 39;)
  打破;
  
  PrintBoard(板、行、坳);
  
  ComputerMove(板、行、坳);//判断输赢
  ret=CheckWin(板、行、坳);
  如果(ret !=& # 39; c # 39;)
  打破;
  
  PrintBoard(板、行、坳);
  }
  如果(ret==& # 39; * & # 39;)
  printf(“玩家赢\ n");
  else if (ret==& # 39; # & # 39;)
  printf(“电脑赢\ n");
  else if (ret==& # 39;提问# 39;)
  printf(“平局\ n");
  PrintBoard(板、行、坳);
  }
  
  int main ()
  {
  输入int=0;
  将srand ((unsigned int)时间(NULL));
  做
  {
  菜单();
  printf(“请选择:在“);
  scanf (“% d",,输入);
  开关(输入)
  {
  案例1:
  游戏();
  打破;
  例0:
  printf(“退出游戏\ n");
  打破;
  默认值:
  printf(“选择错误\ n");
  打破;
  }
  },(输入);
  返回0;
  }

使用C语言实现一个三子棋游戏