游戏界面:

这是一个简易的五子棋游戏,由c语言编写,每次循环输入两个位置的坐标,通过其奇偶性判断是黑子还是白子,之后再判断是否可以满足胜利的条件,可以的话输出**胜,接着进行下一步的操作。同时,每次进行操作会在数组里记录下来位置,这样每次刷新屏幕时就可以显示正常的棋子位置情况,如果游戏结束,则将数组更新,实现重新开始的功能。
下面是代码:

#include <cstdio>
#include <cstdlib>
#include <windows.h>
using namespace std;
void init_wel();//初始化界面
int bla=1,whr,x,y,poi_ch[20][20];//判断棋子的种类
int Map();//棋盘
int put_ch(int m,int n);//放置棋子
int judge();//判断是否有一方胜利
int main()
{memset(poi_ch,0,sizeof(poi_ch));init_wel();//初始化Map();while(1)//实现了游戏的循环进行{whr=1;scanf("%d%d",&x,&y);poi_ch[x][y]=put_ch(x,y);Map();bla++;judge();if(!whr){memset(poi_ch,0,sizeof(poi_ch));bla=1;Map();}}return 0;
}
void init_wel()//初始化进入界面
{for(int i=0; i<5; i++)printf(". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . \n");printf(". . . . . . . . . . . . . . Hello. .Boys and Girls .  . . . . . . . . . . . . . . . .\n");for(int i=0; i<5; i++)printf(". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . \n");system("pause");//实现了一个按任意键继续的功能
}
int Map()//每次都实现刷新操作
{system("cls");for(int j=0; j<20; j++){poi_ch[0][j]=j;printf("%3d",poi_ch[0][j]);}printf("\n");for(int i=1; i<20; i++){for(int j=0; j<20; j++){if(j==0){poi_ch[i][0]=i;printf("%3d",poi_ch[i][0]);}else if (i>0&&j>0){if(poi_ch[i][j]==0){printf("  *");}if(poi_ch[i][j]==21){printf(" ●");}if(poi_ch[i][j]==22){printf(" ○");}}}printf("\n");}return 0;
}
int put_ch(int m,int n)//放置棋子
{if(bla%2==1&&poi_ch[m][n]==0){poi_ch[m][n]=21;return poi_ch[m][n];}else{if(poi_ch[m][n]==21){bla--;return poi_ch[m][n];}if(poi_ch[m][n]==22){bla--;return poi_ch[m][n];}}if(bla%2==0&&poi_ch[m][n]==0){poi_ch[m][n]=22;return poi_ch[m][n];}else{if(poi_ch[m][n]==21){bla--;return poi_ch[m][n];}if(poi_ch[m][n]==22){bla--;return poi_ch[m][n];}}return 0;
}
int judge()//对于最终的结果进行判断
{for(int i=1; i<20; i++){for(int j=1; j<20; j++){if(poi_ch[i][j]==21&&poi_ch[i][j+1]==21&&poi_ch[i][j+2]==21&&poi_ch[i][j+3]==21&&poi_ch[i][j+4]==21){whr=0;printf("白子胜\n");system("pause");break;}if(poi_ch[i][j]==22&&poi_ch[i][j+1]==22&&poi_ch[i][j+2]==22&&poi_ch[i][j+3]==22&&poi_ch[i][j+4]==22){whr=0;printf("黑子胜\n");system("pause");break;}if(poi_ch[i][j]==21&&poi_ch[i+1][j]==21&&poi_ch[i+2][j]==21&&poi_ch[i+3][j]==21&&poi_ch[i+4][j]==21){whr=0;printf("白子胜\n");system("pause");break;}if(poi_ch[i][j]==22&&poi_ch[i+1][j]==22&&poi_ch[i+2][j]==22&&poi_ch[i+3][j]==22&&poi_ch[i+4][j]==22){whr=0;printf("黑子胜\n");system("pause");break;}if(poi_ch[i][j]==21&&poi_ch[i+1][j+1]==21&&poi_ch[i+2][j+2]==21&&poi_ch[i+3][j+3]==21&&poi_ch[i+4][j+4]==21){whr=0;printf("白子胜\n");system("pause");break;}if(poi_ch[i][j]==22&&poi_ch[i+1][j-1]==22&&poi_ch[i+2][j-2]==22&&poi_ch[i+3][j-3]==22&&poi_ch[i+4][j-4]==22){whr=0;printf("黑子胜\n");system("pause");break;}}}return 0;
}

C++ 简易的五子棋游戏 初学者相关推荐

  1. JS简易实现五子棋游戏(三)

    一.简介 本篇为对 JS实现双人五子棋简易游戏(上) 进行补充,添加了悔棋的功能,并修改部分页面效果. 若想实现人机的游戏方式可以看之前:JS实现五子棋单人双人简易游戏(下) . 二.效果 三.代码 ...

  2. Qt学习之使用QTableWiget实现简易五子棋游戏(人机对战)

    目录 一.前言 二.游戏效果展示 三.需求分析 四.代码实现 1.新建一个类five_in_a_row继承于QWidget 2.头文件(five_in_a_row.h) 3.构造函数(初始化棋盘) 4 ...

  3. 用Python编写简易五子棋游戏

    "无意中发现了一个巨牛的人工智能教程,忍不住分享一下给大家.教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家.点这里可以跳转到教程." 最近, ...

  4. java实现五子棋游戏

    这篇文章主要为大家详细介绍了java实现简易的五子棋游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下. 一.问题分析 二.模块分析 以下是窗体代码 以下是鼠标监听器的 ...

  5. 【QT项目】简易五子棋游戏(人机对战)— 完整源码

    文章目录 前言 一.游戏实现效果 二.需求分析 三.解决方案 四.核心步骤 1.插入棋盘图 2.双方落子 3.输赢判定 4.重新开始 五.完整源码 1.main.cpp 2.chessboard.h ...

  6. python棋类项目规划一——五子棋游戏简易版——项目一

    五子棋游戏简易版 目前只能人人对战 o 代表黑棋 x 代表白棋 . 代表无棋子 以下是代码: def nemBoard():'''初始化棋盘''' board = [[0 for i in range ...

  7. iOS简易蓝牙对战五子棋游戏设计思路之一——核心蓝牙通讯类的设计

    iOS简易蓝牙对战五子棋游戏设计思路之一--核心蓝牙通讯类的设计 一.引言 本系列博客将系统的介绍一款蓝牙对战五子棋的开发思路与过程,其中的核心部分有两个,一部分是蓝牙通讯中对战双方信息交互框架的设计 ...

  8. iOS简易蓝牙对战五子棋游戏设计思路之二——核心棋盘逻辑与胜负判定算法

    2019独角兽企业重金招聘Python工程师标准>>> iOS简易蓝牙对战五子棋游戏设计思路之二--核心棋盘逻辑与胜负判定算法 一.引言 上一篇博客我们介绍了在开发一款蓝牙对战五子棋 ...

  9. java 五子棋 简单_java实现简易五子棋游戏

    本文实例为大家分享了java实现简易五子棋游戏的具体代码,供大家参考,具体内容如下 编写一个简易五子棋,棋盘在控制台中绘制,棋盘每- - 个点都有对应的坐标,下棋者输 入对应坐标落棋子,运行效果如图所 ...

最新文章

  1. 想 new 个对象过七夕,她却抛了异常
  2. 大数据处理的关键架构
  3. 网摘精灵教程:网站流量爆涨的时空隧道
  4. Spark SQL程序实现RDD转换DataFrame
  5. Maven项目错误解决小结
  6. [C++STL]string容器用法介绍
  7. CSS命名规范(建议版)(转)
  8. 控制反转 IOC 与依赖注入 DI
  9. 麦芒装饰装修小程序源码V3.2.59
  10. mysqld: [Warning] World-writable config file ‘/etc/my.cnf‘ is ignored.问题解决
  11. Win2003安装VS.NET2005sp1出现1718错误的解决方案
  12. 重装了新版IDEA,但我之前的个人配置全丢了,太烦了!
  13. java date 最小值_Java_Math/Date
  14. 中兴新支点操作系统上的快捷键
  15. 淘宝/天猫API系列:图片搜索淘宝商品接口
  16. 【室内园艺】——栀子花
  17. 期末作业实验报告:MLP实验对比(MLPClassifier)
  18. 第十二周项目五-----迷宫问题之图深度优先遍历解法
  19. PC端实现微信支付功能(Vue2.0)
  20. RecyclerView实现条目拖拽,左滑、右滑移除效果

热门文章

  1. nand2tetris 布尔函数和和门逻辑路线图
  2. 零界之痕服务器维护,零界之痕进不去怎么办 游戏故障解决方法
  3. 项目目标的SMART原则
  4. qt 处理ORACLE的AMERICAN_AMERICA.US7ASCII编码
  5. 设置表格列宽 —— 在富文本编辑器中的实现
  6. Unreal4 使用spline , splinemesh组件构建赛道小例子
  7. 朋友圈加粗字体数字_微信更新!朋友圈评论能发表情包,结果变成沙雕狂欢
  8. 钉钉群机器人关键词自动回复_wetool自动接受新好友wetool pc版-客服
  9. 移动硬盘未知usb设备(设定地址失败)
  10. 众昂矿业助力萤石氟化工产业链破竹般发展