代码如下:

#include <iostream>
using namespace std;class GoBangDesk
{public:GoBangDesk() :state('@'), flagWin(false), flagOver(false), flagDraw(false){for (int i = 0; i < 20; i++)for (int j = 0; j < 20; j++)goBangDesk[i][j] = '#';}void printDesk(){cout << "         1  2  3  4  5  6  7  8  9 10 11 12 13 14 15" << endl;for (int i = 1; i <= 15; i++){cout << "        ---------------------------------------------" << endl;cout << i<<"\t";for (int j = 1; j <= 15; j++){cout << "|" << goBangDesk[i][j]<<"|";}cout << endl;}cout<< "        ---------------------------------------------" << endl;}void clearDesk(){system("cls");}void gameProcess(){int tmpx;int tmpy;cout << "当前要落的子为:" << state << endl;cout << "请输入坐标,进行落子操作:" << endl;cin >> tmpx >> tmpy;if (tmpx < 1 || tmpx > 15 || tmpy < 1 || tmpy >15){cout << "输入有误,请重新输入" << endl;system("pause");return;}if (goBangDesk[tmpx][tmpy]!='@' && tmpx >= 1 && tmpx <= 15 && tmpy >= 1 && tmpy <=15){idx = tmpx;idy = tmpy;goBangDesk[idx][idy] = state;lastState = state;if (state == '@') state = 'O';else state = '@';checkWin();}else{cout << "输入有误,请重新输入" << endl;system("pause");}}void gameStart(){while (true){printDesk();gameProcess();if (flagOver) break;if (flagDraw){cout << "平局" << endl;break;}clearDesk();}}void checkWin(){for (int i = 0; i < 8; i++){checkWinDfs(idx, idy, i, 1);if (flagWin){cout << lastState << "方赢得比赛" << endl;flagOver = true;break;}}}void checkDesk() {bool flag = false;for (int i = 1; i <= 15; i++){for (int j = 1; j <= 15; j++){if (goBangDesk[i][j] == '@'){flag = true;flagDraw = true;if (flag) break;}}if (flag) break;}}private:void checkWinDfs(int x, int y, int k, int step){if (step == 5){flagWin = true;}char tmpState = goBangDesk[x][y];int xx = x + dx[k];int yy = y + dy[k];if (goBangDesk[xx][yy] != tmpState && goBangDesk[xx][yy] != '@' || step > 5) return;checkWinDfs(xx, yy, k, step + 1);}private:static const int N = 20;char goBangDesk[N][N];int idx;int idy;char state;//当前是哪个子(状态)char lastState;//上一次是哪个子(状态)int dx[8] = { 0,0,1,-1,1,1,-1,-1 };int dy[8] = { 1,-1,0,0,1,-1,1,-1 };bool flagWin;//判断胜利bool flagOver;//判断结束bool flagDraw;//判断棋盘满了,平局
};int main()
{GoBangDesk d;d.gameStart();return 0;}

C++实现五子棋小游戏相关推荐

  1. Java编写的五子棋小游戏

    看书的时候看到一个不完整的Java编写的一个五子棋小游戏,为了恢复一下编程能力刚刚把这个小程序完成了. 实现的功能很简单,两人对下五子棋,程序自动回判断输赢.在ubuntu下搞得,没有装什么高端的输入 ...

  2. 简单的5*5,五子棋小游戏

    使用C语言简单的实现棋盘为5*5的五子棋小游戏,以下为源代码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 ...

  3. php 设计五子棋游戏,基于js+canvas实现五子棋小游戏

    本文实例为大家分享了js+canvas实现五子棋小游戏的具体代码,供大家参考,具体内容如下 效果展示: 源码展示: 五子棋 * { margin: 0; padding: 0; } body { ma ...

  4. 基于 Blazor 开发五子棋小游戏

    今天是农历五月初五,端午节.在此,祝大家端午安康! 端午节是中华民族古老的传统节日之一.端午也称端五,端阳.此外,端午节还有许多别称,如:午日节.重五节.五月节.浴兰节.女儿节.天中节.地腊.诗人节. ...

  5. java 五子棋项目_Java项目如何实现五子棋小游戏

    Java项目如何实现五子棋小游戏 发布时间:2020-07-21 14:53:06 来源:亿速云 阅读:77 作者:小猪 小编这次要给大家分享的是Java项目如何实现五子棋小游戏,文章内容丰富,感兴趣 ...

  6. 基于深度学习的一款五子棋小游戏

    今天分享一个基于深度学习而开发的AI小游戏 简单介绍 这一款基于深度学习的五子棋小游戏的界面是使用Unity开发的,而网络结构是使用keras搭建的. 环境 笔者的环境如下 操作系统 windows ...

  7. C语言---简单五子棋小游戏

    效果图如下: 设计思路: 棋盘设计为15×15格,初始状态光标在棋盘的中央,白棋先走,轮流落子,当一方连成五子或下满棋盘时,游戏结束(连成五子的一方获胜,下满棋盘为和棋).当游戏一方胜利后显示胜利信息 ...

  8. c语言五子棋学年论文,基于c语言五子棋小游戏生本科论文.doc

    基于c语言五子棋小游戏生本科论文 五子棋小游戏 需求分析 现在有越来越多的人使用电脑,而且五子棋的受众广泛但实体棋操作较为繁琐且平时较难实现,所以电脑版的五子棋游戏应运而生.大家对于这个小游戏的需求如 ...

  9. c语言五子棋对局结果存储,基于C语言五子棋小游戏总结.doc

    五子棋小游戏 需求分析 现在有越来越多的人使用电脑,而且五子棋的受众广泛但实体棋操作较为繁琐且平时较难实现,所以电脑版的五子棋游戏应运而生.大家对于这个小游戏的需求如下:首先,设计这个游戏最基本的就是 ...

  10. 前端实现五子棋小游戏2(AI实现人机对战)

    通过一个简单的算法,来实现AI智能对弈的五子棋小游戏 AI难点解析 赢法数组 赢法的统计数组 判断胜负 计算机的落子规则 代码实现 赢法数组 赢法种类的索引 横线赢法 竖线赢法 横线赢法 斜线赢法 反 ...

最新文章

  1. hbase数据库介绍,HBASE的特点,表结构逻辑视图,Row Key,列族,时间戳,Cell
  2. 能源项目xml文件 -- app-context.xml
  3. 爬虫(十二):scrapy中spiders的用法
  4. 显示无效imap服务器地址,imap服务器地址是什么意思
  5. HAOI2018 反色游戏
  6. P1491 集合位置
  7. SQLyog 使用教程
  8. word三线表标题两条线之间如何出现空白间隔(论文必备)
  9. python 规则引擎 drools_Drools规则引擎入门指南(一)
  10. SQL Server中默认的数据库及作用
  11. JavaScript/js 转 Python 代码转换神器 jiphy
  12. 这玩意儿叫H5编辑器??不应该叫H5全能王吗?
  13. 纹理过滤中的双线,三线过滤
  14. oracle导入.dmp,oracle导入.dmp脚本
  15. Mac 使用 之 Permission denied XXX
  16. 互联网快讯:武大研发核酸检测新方法;多款「隔离险」仓皇下架;刘传健出任中国民航飞行学院总飞行师
  17. 记录我的缺点、优点、记录生活方式,总结并不断优化自己
  18. order函数的简单使用
  19. MIPS汇编语言学习笔记07:打印双精度浮点数
  20. 学术报告PPT制作建议

热门文章

  1. “*** IS NOT TRANSLATED IN …….. 解决办法
  2. 关于jQuery.query.js 取参数的一个小问题
  3. ArcGIS实验教程——实验三十四:ArcGIS地统计分析全解(直方图、正态QQ图、趋势分析、voronoi图、半变异函数、协方差云)
  4. 甘肃省事业单位公考招聘考试权威复习资料---GIS专业全真模拟题(一)
  5. 【遥感数字图像处理】基础知识:第五章 遥感图像增强处理方法总结
  6. Python环境搭建与连接SQL Server类MyDBase的实现
  7. Android Studio开发基础之Context用法说明
  8. linux(windows)之svn重定向地址
  9. Android之调用系统分享
  10. Android之android.os.NewWorkOnMainThreadException解决办法