本人新手,最近尝试着编写一些代码,感觉五子棋是个不错的选择,就动手尝试了一下,因为好多都是现学的,所以在代码编写的过程中,显得十分地繁琐,所以仅供新手之间相互交流。

程序流程

生成棋盘:输入坐标落子:判断游戏状态:输出结果

功能:人人对战,手动输入落子坐标。

// wuziqi.cpp : 定义控制台应用程序的入口点。
//#include "stdafx.h"
#include<iostream>
using namespace std;void printjiemian(char juzhen[15][15])
{system("cls");for (int i = 0; i < 15; i++){for (int j = 0; j < 15; j++){cout << "|---";}cout <<"|"<< endl;for (int k = 0; k < 15; k++){cout << "| " << juzhen[i][k]<<" ";}cout <<"|"<< endl;}for (int l = 0; l < 15; l++){cout << "|---";}cout << "|" << endl;
}
int luozi(char juzhen[15][15],int hang,int lie)
{int i, j;int row, col,row1,col1;row = hang;col = lie;row1 = hang;col1 = lie;for (j = 0; j < 11; j++){if (juzhen[row][j] == juzhen[row][j + 1] && juzhen[row][j + 1] == juzhen[row][j + 2] && juzhen[row][j + 2] == juzhen[row][j + 3] && juzhen[row][j + 3] == juzhen[row][j + 4] && juzhen[row][j + 4] == 'o')goto here;else if (juzhen[row][j] == juzhen[row][j + 1] && juzhen[row][j + 1] == juzhen[row][j + 2] && juzhen[row][j + 2] == juzhen[row][j + 3] && juzhen[row][j + 3] == juzhen[row][j + 4] && juzhen[row][j + 4] == 'X')goto here;}for (int i = 0; i < 11; i++){if (juzhen[i][col] == juzhen[i+1][col] && juzhen[i+1][col] == juzhen[i+2][col] && juzhen[i+2][col] == juzhen[i+3][col] && juzhen[i+3][col] == juzhen[i+4][col] && juzhen[i+4][col] == 'o')goto here;else if (juzhen[i][col] == juzhen[i + 1][col] && juzhen[i + 1][col] == juzhen[i + 2][col] && juzhen[i + 2][col] == juzhen[i + 3][col] && juzhen[i + 3][col] == juzhen[i + 4][col] && juzhen[i + 4][col] == 'X')goto here;}for (i = 0; i < 11; i++){int k;k=abs(row - col);for (j = 0; j < 11; j++){if (abs(i - j) == k){if (juzhen[i][j] == juzhen[i + 1][j + 1] && juzhen[i + 1][j + 1] == juzhen[i + 2][j + 2] && juzhen[i + 2][j + 2] == juzhen[i + 3][j + 3] && juzhen[i + 3][j + 3] == juzhen[i + 4][j + 4] && juzhen[i + 4][j + 4] == 'o')goto here;else if (juzhen[i][j] == juzhen[i + 1][j + 1] && juzhen[i + 1][j + 1] == juzhen[i + 2][j + 2] && juzhen[i + 2][j + 2] == juzhen[i + 3][j + 3] && juzhen[i + 3][j + 3] == juzhen[i + 4][j + 4] && juzhen[i + 4][j + 4] == 'X')goto here;}}}for (i = 0;; i++){if (row1 == 0 || col1 == 14)break;else{row1++;col1--;}}if (juzhen[row1][col1] == juzhen[row1 + 1][col1 - 1] && juzhen[row1 + 1][col1 - 1] == juzhen[row1 + 2][col1 - 2] && juzhen[row1 + 2][col1 - 2] == juzhen[row1 + 3][col1 - 3] && juzhen[row1 + 3][col1 - 3] == juzhen[row1 + 4][col1 - 4] && juzhen[row1][col1] == 'o')goto here;else if (juzhen[row1][col1] == juzhen[row1 + 1][col1 - 1] && juzhen[row1 + 1][col1 - 1] == juzhen[row1 + 2][col1 - 2] && juzhen[row1 + 2][col1 - 2] == juzhen[row1 + 3][col1 - 3] && juzhen[row1 + 3][col1 - 3] == juzhen[row1 + 4][col1 - 4] && juzhen[row1][col1] == 'X')goto here;return 0;
here:return 1;}
bool panduan(char juzhen[15][15])
{int i, j;for (i = 0; i < 15; i++){for (j = 0; j < 15; j++){if (juzhen[i][j] == ' '){goto here;}}}
here:if (i < 15 || j < 15)return 1;elsereturn 0;
}
char qizi(int diyige,int hang,int lie)
{int m, n;m = hang;n = lie;char heizi = 'X';char baizi = 'o';char juzhen[15][15];if (diyige%2!=0)juzhen[m][n] = 'o';elsejuzhen[m][n] = 'X';return juzhen[m][n];
}
int main(){int const m = 15;int state = -1;int zhuangtai = 0;char juzhen[m][m];int diyige = 0;int hang=0, lie=0;for (int i = 0; i < 15; i++){for (int j = 0; j < 15; j++){juzhen[i][j] = ' ';}}printjiemian(juzhen);cout << "输入落子坐标:" << "\n" << "X=";cin >> hang;cout << "Y=";cin >> lie;juzhen[hang][lie] = qizi(diyige,hang,lie);printjiemian(juzhen);zhuangtai = panduan(juzhen);while (zhuangtai){diyige = diyige+1;state = luozi(juzhen,hang,lie);if (state == 0){printjiemian(juzhen);cout << "输入落子坐标:" << "\n" << "X=";cin >> hang;cout << "Y=";cin >> lie;juzhen[hang][lie] = qizi(diyige, hang, lie);printjiemian(juzhen);}else if (state == 1){printjiemian(juzhen);cout << "you win!!!" << endl;break;}if (diyige == 15*15){printjiemian(juzhen);cout << "keep going!!!" << endl;break;}}return 0;
}

c/c++实现五子棋相关推荐

  1. GitHub开源的AI下五子棋(基于博弈树极大极小值alpha-beta剪枝搜索)

    最近看到个两年前的AI案例,使用博弈树搜索算法实现AI下五子棋,什么是博弈树搜索呢?博弈就是相互采取最优策略斗争的意思.比如说下五子棋,你下一步,我下一步,这就是相互博弈.假设棋盘的大小是10*10, ...

  2. 用74l138实现一个一位全减器_用pygame实现一个简单的五子棋游戏

    准备 python基础相关准备: pygame的基础知识,参考目光博客的"用Python和Pygame写游戏-从入门到精通" 安装python 3.8.0 在python官网下载, ...

  3. 编写五子棋的完整python代码_python制作简单五子棋游戏

    本文实例为大家分享了python五子棋游戏的具体代码,供大家参考,具体内容如下 #五子棋 '" 矩阵做棋盘 16*16 "+" 打印棋盘 for for 游戏是否结束 开 ...

  4. 简单五子棋问题,java实现

    **题目要求:**实现一个控制台下五子棋的程序.用一个二维数组模拟一个15*15路的五子棋棋盘,把每个元素赋值位"┼"可以画出棋盘, "○"代表该交叉点下了一颗 ...

  5. 组合游戏系列5: 井字棋、五子棋AlphaGo Zero 算法实战

    来源 | MyEncyclopedia 上一篇我们从原理层面解析了AlphaGo Zero如何改进MCTS算法,通过不断自我对弈,最终实现从零棋力开始训练直至能够打败任何高手.在本篇中,我们在已有的N ...

  6. Python实现五子棋人机对战 | CSDN博文精选

    作者 | 吴小鹏 来源 | 数据札记倌(ID:Data_Groom) 五子棋是常见的一款小游戏,五子棋问题是人工智能中的一个经典问题.这篇文章主要介绍了Python版本五子棋的实现代码,大家可以做个参 ...

  7. 如何设计可自学习的五子棋AI?

    小史是一个应届生,虽然学的是电子专业,但是自己业余时间看了很多互联网与编程方面的书,一心想进BAT互联网公司. 今天他去了一家国内人工智能巨头公司面试了. 简单的自我介绍后,面试官开始发问了. [面试 ...

  8. 五子棋c语言策划书活动内容,五子棋比赛策划书

    与<五子棋比赛策划书>相关的范文 活动前言:楚汉相争,是智能的较量,让中国象棋带进我们进进那没有硝烟的战争中:谁先连珠,是智力的斗争,让五子棋带引我们走进那获胜的喜悦里.在棋类的对弈中,我 ...

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

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

  10. 五子棋html游戏代码与算法介绍

    五子棋html游戏代码与算法介绍 运行图片 目录路径 五子棋.html 五子棋算法 进行下一个游戏的开发! 注意事项 我会把html文件.css文件提供下载地址,文件夹路径也展示给大家.但是图片就没法 ...

最新文章

  1. Caffe学习系列(3):视觉层(Vision Layers)及参数
  2. 【网络协议】TCP分段与UDP/IP分片 (MTU最大传输单元,MSS最大分段大小)
  3. 谷歌浏览器怎样通过检查验证图片路径问题
  4. 转义字符 /r与/n的区别
  5. SSM-SpringMVC-07:SpringMVC中处理器映射器
  6. python全栈工程师薪资-Python全栈工程师为何这么火薪资这么高看了才知道
  7. delphi 更改DBGrid 颜色技巧
  8. python代码计算字数_Python计算一个文件里字数的方法
  9. 里的type_拥有Type-C接口等于拥有PD快充?当然不是!
  10. 24.Linux-Nand Flash驱动(分析MTD层并制作NAND驱动)
  11. 修改Google toolbar for firefox的默认语言
  12. TODO算子-双Value类型
  13. supervessel-免费云镜像︱GPU加速的Caffe深度学习开发环境
  14. 【每日算法Day 72】谷歌面试题:又双叒叕是位运算,最详细的自动机推导过程...
  15. php hprose扩展1.5.5,基于Hprose for PHP 1.5.6、Yii2.0.7的RPC的基本实现流程
  16. Mybatis-plus 苞米豆生态圈
  17. 山东理工大学pta实验三四重点题目再现。
  18. 关于Xcode修改APP名称
  19. 王者荣耀购买装备----笔记
  20. 使用anaconda配置python3.6环境安装pyltp超详细教程,使用pycharm调用

热门文章

  1. pycharm无法识别turtle库中函数名的解决方法
  2. linux 看硬件配置 命令2
  3. cost的导函数_几种常见函数的导数
  4. 1077篇 ! ICCV2019论文接收结果公布(附70篇论文链接抢先读,含Oral) 更新中
  5. ScrollView滚动到底部3种方案(巧解现实产品一个需求)
  6. GitCode 专属开源加速器,帮你实现开源社区运营
  7. rutracker网站无法进入,解决方案来啦
  8. Attribute-aware Pedestrian Detection in a Crow
  9. 这届年轻人,是最孤独的一代吗?
  10. 三国志战略版:Daniel_S3三势阵容_吕太郭VS贾赵左