




免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C+编写五子棋本人写的五子棋是在控制台上面可以玩的输入时仅需要输入两个字母表示下棋的行与列,比如下在一行二列,只需要输入ab即可。这里写的是遍历整个棋盘的,所以效率不算太高,但基本能实现五子棋的逻辑。如果需要C语言实现的,可以搜索本人的C语言编写五子棋,如果需要黑白棋,可以搜索本人的C+编写黑白棋。/*created:2012/03/12created:12:3:2012 8:55filename: e:Visual Studio 2005Projectsgobanggobanggobang.cppfile path:e:Visual Studio 2005Projectsgobanggobangfile base:gobangfile ext:cppauthor:terranlong*/#include using namespace std;#define ROW0#define COL1#define ARR_DIAGONAL2#define ATH_DIAGONAL3class Gobangpublic:Gobang()init();void init()count = 0;playerid = 0;int i, j;for (i = 0; i chessboard_size; i+)for (j = 0; j chessboard_size; j+)chessboardij = +;void gamestart();void print();void input();bool linksame(const char* head, int direction);bool judge();bool gameover();private:const static int chessboard_size = 15;const static int linkcount = 5;char chessboardchessboard_sizechessboard_size;int count;int playerid;void Gobang:gamestart()while (!gameover()system(cls);print();input();void Gobang:print()int i, j;printf( a b c d e f g h i j k l m n on);for (i = 0; i chessboard_size; i+)printf(%c , i + a);for (j = 0; j chessboard_size; j+)printf(%c, chessboardij);if (j != chessboard_size - 1)printf(-);printf(n);void Gobang:input()char ix, iy;int x, y;printf(player %d :, playerid);scanf(%c%c, &ix, &iy);getchar();x = ix - a;y = iy - a;while (x = chessboard_size | y = chessboard_size | chessboardxy != +)printf(input error!nplease input again: );scanf(%c%c, &ix, &iy);getchar();x = ix - a;y = iy - a;chessboardxy = playerid + 1;count+;playerid = count % 2;bool Gobang:linksame(const char* head, int direction)int i;if (*head = +)return 0;switch (direction)case ROW:for (i = 1; i linkcount; i+)if (*head != *(head + i)return 0;break;case COL:for (i = 1; i linkcount; i+)if (*head != *(head + chessboard_size * i)return 0;break;case ARR_DIAGONAL:for (i = 1; i linkcount; i+)if (*head != *(head + chessboard_size * i + i)return 0;break;case ATH_DIAGONAL:for (i = 1; i linkcount; i+)if (*head != *(head - chessboard_size * i + i)return 0;break;default:break;return 1;bool Gobang:judge()int i, j;for (i = 0; i chessboard_size; i+)for (j = 0; j chessboard_size; j+)if (j chessboard_size - linkcount + 1)if (linksame(&chessboardij, ROW)return 1;if (i chessboard_size - linkcount + 1)if (linksame(&chessboardij, COL)return 1;if (i chessboard_size - linkcount + 1 &j chessboard_size - linkcount + 1)if (linksame(&chessboardij, ARR_DIAGONAL)return 1;if (i linkcount - 1)if (linksame(&chessboardij, ATH_DIAGONAL)return 1;return 0;bool Gobang:gameover()if (count = chessboard_size * chessboard_size - 1)system(cls);print();printf(draw game!n);return 1;if (judge()system(cls);print();printf(player %d win!n, playerid = 1 ? 0 : 1);return 1;return 0;int main(int argc, char*
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广州铁路职业技术学院《中国当代文学⑵》2023-2024学年第二学期期末试卷
- 四川音乐学院《植物营养学进展》2023-2024学年第二学期期末试卷
- 外研版七年级下册英语Unit4过关训练(含答案)
- 基础知识专项突破 语文七年级下册统编版(2024版)(含解析)
- 2024-2025学年上海进才中学高三下学期数学最后一考试卷(2025.05)(含答案)
- 工业企业如何应对环保法规挑战
- 工业品物流的智能化升级路径
- 工业互联网与智慧物流的融合
- 工业4.0背景下的智能生产线改造
- 嵌入式系统硬件设计教程
- 数据的生命周期管理流程试题及答案
- 2025江苏苏州工业园区苏相合作区国企业招聘5人易考易错模拟试题(共500题)试卷后附参考答案
- T/CSBME 058-2022持续葡萄糖监测系统
- 吊车吊篮施工方案大全
- 2025年中考英语考前冲刺卷(北京卷)(解析版)
- 2025年医保知识考试题库及答案(医保政策宣传与解读)综合测试
- “临床营养科建设与管理指南”实施细则-I级标准化临床营养科建设示范基地
- 结直肠癌分子病理检测临床实践指南(2025版)解读
- 安全生产管理的技术规范与操作要求试题及答案
- GB/T 34110-2025信息与文献文件(档案)管理核心概念与术语
- 年地理中考热点6银发经济课件
评论
0/150
提交评论