c++三子棋代码,C语言五子棋

  c++三子棋代码,C语言五子棋

  源程序:一:game.h文件,存放函数声明

  # define _ CRT _ SECURE _ NO _ WARNINGS 1

  #包含标准视频

  #包含标准库

  #定义第3行//声明棋盘大小

  #定义第3列

  //声明初始化函数

  void init chese(char chese[ROW][COL]);

  //声明打印棋盘函数

  void display chese(char chese[ROW][COL]);

  //声明胜负判断函数

  char是win(char chese[ROW][COL]);

  //声明位置选择函数

  void人工选择(char chese[ROW][COL]);

  //声明计算机产生位置函数

  void计算机选择(char[ROW][COL]);

  二:game.c文件,存放函数实现

  #包含" game.h "

  #包含标准库

  #包含时间。h

  //实现初始化数组函数

  void init chese(char chese[行][列])

  {

  int i,j=0;

  for(I=0;我划船;我)

  {

  for(j=0;j COLj)

  {

  chese[I][j]=" ";

  //printf(%c\n ,chese[I][j]);

  }

  }

  }

  //实现打印棋盘函数

  void显示框(字符框[行][列])

  {

  //清屏

  系统(“cls”);

  for(int I=0;我划船;我)

  {

  printf(-\ n );

  for(int j=0;j COLj)

  {

  printf( %c ,chese[I][j]);

  }

  printf( \ n );

  }

  printf(-\ n );

  }

  int isFall(char chese[ROW][COL])

  {

  int I=0;

  int j=0;

  for(I=0;j排;我)

  {

  for(j=0;j COLj)

  {

  if(chese[I][j]== );

  返回0;//棋盘没满

  }

  }

  返回1;

  }

  char isWin(char chese[ROW][COL])

  {

  //判断三行

  for(int I=0;我划船;我)

  {

  if(chese[I][0]==chese[I][1]chese[I][1]==chese[I][2]chese[I][1]!= )

  return chese[I][1];

  }

  //判断三列

  for(int j=0;j COLj)

  {

  if(chese[0][j]==chese[1][j]chese[1][j]==chese[2][j]chese[1][j]!= )

  return chese[1][j];

  }

  //判断对角线

  if(chese[0][0]==chese[1][1]chese[1][1]==chese[2][2]chese[1][1]!= )

  return chese[1][1];

  if(chese[0][2]==chese[1][1]chese[1][1]==chese[2][0]chese[1][1]!= )

  return chese[1][1];

  //判断平局

  //如果棋盘满了返回1,不满返回0

  int ret=is fall(chese);

  if (ret==1)

  返回“e”;

  //继续

  返回“g”;

  }

  //实现位置选择函数

  void人工选择(char chese[ROW][COL])

  {

  int i,j=0;

  printf(请输入你的位置坐标:

  //用户选择位置

  while (1)

  {

  scanf(%d%d ,I,

  //printf(%d%d ,I,j);

  如果(i=3 i=1 j=3 j=1)

  {

  if (chese[i - 1][j - 1]== )

  {

  chese[I-1][j-1]= * ;

  打破;

  }

  其他

  printf(此处有棋子了!请重选:

  }

  其他

  printf(棋子落到外面了!请重选:

  }

  }

  //计算机产生位置

  无效计算机选择(char chese[行][列])

  {

  srand((无符号int)time(NULL));

  while (1)

  {

  int I=rand()% 3;

  int j=rand()% 3;

  if (chese[i - 1][j - 1]== )

  {

  chese[I-1][j-1]= # ;

  打破;

  }

  }

  }三:测试。c文件,用以测试

  #包含" game.h "

  //实现游戏函数

  无效游戏()

  {

  char chese[ROW][COL]={ 0 };

  char ret=//接受胜负判断函数的返回值

  //初始化数组

  initChese(切塞);

  //打印棋盘

  显示内容(切色);

  while (1)

  {

  //玩家下棋

  人类选择(chese);

  //打印棋盘

  显示内容(切色);

  ret=is win(chese);

  如果(ret!=g )断开;

  //电脑下棋

  计算机选择(chese);

  //打印棋盘

  显示内容(切色);

  ret=is win(chese);

  如果(ret!=g )断开;

  }

  if (ret==* )

  printf(你赢了!\ n’);

  else if (ret==# )

  printf(你输了!\ n’);

  其他

  printf(平局!\ n’);

  }

  无效菜单()

  {

  //清屏

  系统(“cls”);

  printf(*****欢迎来到三子棋* * * * * \ n’);

  printf(**** 1:播放0:退出* * * * \ n );

  printf( * * * * * * * * * * * * * * * * * * * * * * * * * \ n );

  printf(请选择:

  }

  无效测试()

  {

  int input=0;

  做

  {

  //打印菜单

  menu();

  scanf(%d ,输入);

  开关(输入)

  {

  案例0:

  printf(游戏结束!\ n’);

  打破;

  案例1:

  printf(开始游戏!\ n’);

  game();

  打破;

  默认值:

  printf(错误!请重新输入!\ n’);

  打破;

  }

  系统("暂停");

  }而(输入);

  }

  int main()

  {

  test();

  返回0;

  }总结:1.isWin()函数中,判断输赢时,把判断条件写死了,此时如果棋盘的类型要求改变,则需要修改源代码,不符合开闭原则,需要改进。

  2.电脑下棋太笨了,没有设计算法,所以赢棋超级简单,想让电脑赢都难,哈哈。稍后,我们可以研究计算机象棋算法。

  欢迎大家提出意见!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • c语言调用退出函数 c语言退出整个程序怎么写
  • c语言中怎么给函数初始化 c语言的初始化语句
  • c语言编写函数计算平均值 c语言求平均函数
  • 详解c语言中的字符串数组是什么,详解c语言中的字符串数组结构,详解C语言中的字符串数组
  • 表达式求值c++实现,c语言实现表达式求值
  • 看懂c语言基本语法,C语言详解,C语言的基本语法详解
  • 用c语言实现快速排序算法,排序算法设计与实现快速排序C语言,C语言实现快速排序算法实例
  • 深入解析c语言中函数指针的定义与使用方法,深入解析c语言中函数指针的定义与使用情况,深入解析C语言中函数指针的定义与使用
  • 描述E-R图,E-R图举例,关于C语言中E-R图的详解
  • 折半查找法C语言,折半查找算法(算法设计题)
  • 折半查找法C语言,c语言折半法查找数据,C语言实现折半查找法(二分法)
  • 扫雷小游戏c++代码设计,c语言扫雷游戏源代码,C语言实现扫雷小游戏详细代码
  • 怎样统计程序代码行数,C语言统计行数,C#程序员统计自己的代码行数
  • 基于c语言的贪吃蛇游戏程序设计,用c语言编写贪吃蛇游戏程序,C语言实现简单的贪吃蛇游戏
  • 图的两种遍历算法,图的遍历算法代码c语言,Python算法之图的遍历
  • 留言与评论(共有 条评论)
       
    验证码: