




免费预览已结束,剩余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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 幼儿园工作总结汇报七篇
- 2025年注册验船师资格考试(A级船舶检验专业综合能力)经典试题及答案一
- 贵商银行笔试题目及答案
- 2026届陕西省周至县第五中学化学高二上期末监测模拟试题含答案
- 2025年市场营销策略与实战案例分析笔试参考题
- 2025年裂化工艺优化考核题库
- 山东省枣庄市第十八中学2026届化学高二上期末调研试题含答案
- 2025年高级油气管道工程师岗位面试模拟题及解析
- 公务员内蒙面试题及答案
- 2025年游戏开发工程师面试模拟题及答案全收录
- 《中医经络学说》课件
- 初高中一体化贯通培养教育管理探索与思考
- 港股基础知识入门培训
- 2 我是什么 第二课时(说课稿)-2024-2025学年统编版语文二年级上册
- 化工设备基础知识培训课件
- 保证金合同模板
- 标准预防-课件
- 新能源汽车技术测试题(附答案)
- T-CISA 323-2023 极寒环境用结构钢板
- 国内信用证购销合同(2篇)
- 学校总结模板(含成绩分析表格)
评论
0/150
提交评论