已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
#include#include#include#includeusing namespace std;int welcome(void)char start=0;int re;while(start!=1&start!=2&start!=3&start!=0&start!=c)cout欢迎来玩五子棋! endl endl*endl* *endl* *人 人 对 战 请 输 入 1 * endl * *人 机 对 战 请 输 入 2 * endl * *继 续 游 戏 请 输 入 3 * endl * *查 看 规 则 请 输 入 c * endl* *退 出 请 按 0 键 *endl*start;switch(start)case1:re=1;break;case2:re=2;break;case3:re=3;break;case0:re=0;break;casec:re=4;break;default:system(cls);return re;void rule(void)system(cls);cout 五子棋是一款大众化的游戏,想大家一定不会陌生。 endl 本程序意在模拟一个简单的五子棋游戏,玩家可以选择endl和朋友进行人人对战或者找电脑对战好好发泄一下。 endl 在游戏中,您可以选择认输退出,还可以随时存盘,在endl主菜单中选择继续游戏就可以读入存档了。 endl 游戏规则很简单,谁先下到五颗连珠就赢了哦 endl;system(pause);void chessboard(char board1515)int a16=0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15;char chessboard1532;int i,j,n=0;for(i=0;i15;i+)for(j=0;j32;j+)chessboardij= ;for(i=0;i9;i+)n+;for(j=1;j32;j=j+2)if(j=1) chessboardij=n+48;else chessboardij=boardi(j-1)/2-1;for(i=9;i15;i+)chessboardi0=49;chessboardi1=i-9+48;for(j=3;j32;j=j+2)chessboardij=boardi(j-1)/2-1;for(i=0;i16;i+)if(i!=15) coutsetw(2)ai;else coutsetw(2)aiendl;for(i=0;i15;i+)for(j=0;j32;j+)if(j!=31) coutchessboardij;else coutchessboardijendl;int check5(char board1515)int i,j,w=0;for(i=0;i15;i+)for(j=0;j15;j+)if(boardij=o)if(boardij+1=o&boardij+2=o&boardij+3=o&boardij+4=o)w=1;break;else if(boardi+1j=o&boardi+2j=o&boardi+3j=o&boardi+4j=o)w=1;break;else if(boardi+1j+1=o&boardi+2j+2=o&boardi+3j+3=o&boardi+4j+4=o)w=1;break;else if(boardi+1j-1=o&boardi+2j-2=o&boardi+3j-3=o&boardi+4j-4=o)w=1;break;else if(boardij=x)if(boardij+1=x&boardij+2=x&boardij+3=x&boardij+4=x)w=2;break;else if(boardi+1j=x&boardi+2j=x&boardi+3j=x&boardi+4j=x)w=2;break;else if(boardi+1j+1=x&boardi+2j+2=x&boardi+3j+3=x&boardi+4j+4=x)w=2;break;else if(boardi+1j-1=x&boardi+2j-2=x&boardi+3j-3=x&boardi+4j-4=x)w=2;break;return w;int empty(char board1515)int i,j;for(i=0;i15;i+)for(j=0;j15;j+)if(boardij=-)return 0;break;if(i=14&j=14) return 1;void save(int m,int n,char sboard1515,char splayer1100,char splayer2100)int i,j;ofstream of(data.txt);ofm;ofn;for(i=0;i15;i+)for(j=0;j15;j+)ofsboardij;ofsplayer1;ofn;ofsplayer2;ofn;of.close();void renren(void)system(cls);cout 人人对战endl;int i,j,n=0,m=1;int x,y,w=0;char board1515,player1100=,player2100=,buffer255;char cmd=r;cout注意:本游戏默认玩家1先手!endl;cout请输入玩家1的姓名endl;cin.getline(player1,100);cin.getline(player1,100);cout请输入玩家2的姓名endl;cin.getline(player2,100);while(cmd=r)cmd= ;n=0;w=0;for(i=0;i15;i+)for(j=0;j15;j+)boardij=-;while(true)system(cls);cout 人人对战endl;cout想保存请输入坐标88 88endl;chessboard(board);if(n=10) n=0;if(n%2=0) cout玩家1 player1 endl;else cout玩家2 player2 endl;cout请输入棋子的坐标:;cinxy;if(x=0&y=0)if(n%2=0) cout恭喜player2吓跑了对手!endl;else cout恭喜player1吓跑了对手!endl;cout棋局结束!endl;system(pause);break;if(x=88&y=88)save(m,n,board,player1,player2);cout保存成功!想继续此局请在主界面选择继续游戏endl;system(pause);break;elsewhile(x15|y15|boardx-1y-1=o|boardx-1y-1=x|cin.fail()cin.clear();coutxy;if(n%2=0) boardx-1y-1=o;else boardx-1y-1=x;w=check5(board);if(w=1)system(cls);cout 人人对战endl;chessboard(board);cout恭喜player1获胜!endl;else if(w=2)system(cls);cout 人人对战endl;chessboard(board);cout恭喜player2获胜!endl;if(empty(board)system(cls);cout 人人对战endl;chessboard(board);cout太牛B了,居然和棋了!endl;if(w=1|w=2|empty(board)cout返回主界面,请输入n 再玩一局请输入rcmd;break;n+;char AI(char aiboard1515)int a,b;dosrand(unsigned)time(0); a=rand()%15+1; b=rand()%15+1;while(aiboardab!=-);aiboardab=x;return aiboard1515;void renji(void)system(cls);cout 人机对战endl;int i,j,n=0,m=2;int x,y,w=0;char board1515,player1100=,player2100=,buffer255;char cmd=r,order;cout请输入玩家的姓名endl;cin.getline(player1,100);cin.getline(player1,100);while(cmd=r)system(cls);cout你想先手走棋吗?(y/n)order;while(order!=y&order!=n)system(cls);cout你想先手走棋吗?(y/n)order;if(order=y) n=0;else n=1;cmd= ;w=0;for(i=0;i15;i+)for(j=0;j15;j+)boardij=-;while(true)system(cls);cout 人机对战endl;cout想保存请输入坐标88 88endl;chessboard(board);if(n=10) n=0;if(n%2=0)cout玩家 player1 endl;cout请输入棋子的坐标:;cinxy;if(x=0&y=0)cout玩家player1不战而退!endl;cout棋局结束!endl;system(pause);break;if(x=88&y=88)save(m,n,board,player1,player2);cout保存成功!想继续此局请在主界面选择继续游戏endl;system(pause);break;elsewhile(x15|y15|boardx-1y-1=o|boardx-1y-1=x|cin.fail()cin.clear();coutxy;boardx-1y-1=o;else board1515=AI(board);w=check5(board);if(w=1)system(cls);cout 人机对战endl;chessboard(board);cout恭喜player1获胜!endl;else if(w=2)system(cls);cout 人机对战endl;chessboard(board);cout恭喜电脑获胜!endl;if(empty(board)system(cls);cout 人机对战endl;chessboard(board);cout太牛B了,居然和棋了!endl;if(w=1|w=2|empty(board)cout返回主界面,请输入n 再玩一局请输入rcmd;break;n+;void continueplay(void)system(cls);char temp500=,a;int i=0;ifstream inf(data.txt);if(!inf)cout找不到存档文件!endl;system(pause);return;while(!inf.eof()inf.get(a);tempi=a;i+;inf.close();if(temp0=1)cout 人人对战endl;int j,k=2,n,m=1;int x,y,w=0;char board1515,player1100=,player2100=,buffer255;n=temp1-48;for(i=0;i15;i+)for(j=0;j15;j+)boardij=tempk;k+;i=0;while(tempk!=n)player1i=tempk;k+;i+;k+;i=0;while(tempk!=n)player2i=tempk;k+;i+;while(true)system(cls);cout 人人对战endl;cout想保存请输入坐标88 88endl;chessboard(board);if(n=10) n=0;if(n%2=0) cout玩家1 player1 endl;else cout玩家2 player2 endl;cout请输入棋子的坐标:;cinxy;if(x=0&y=0)if(n%2=0) cout恭喜player2吓跑了对手!endl;else cout恭喜player1吓跑了对手!endl;cout棋局结束!endl;system(pause);break;else if(x=88&y=88)save(m,n,board,player1,player2);cout保存成功!想继续此局请在主界面选择继续游戏endl;system(pause);break;elsewhile(x15|y15|boardx-1y-1=o|boardx-1y-1=x|cin.fail()cin.clear();coutxy;if(n%2=0) boardx-1y-1=o;else boardx-1y-1=x;w=check5(board);if(w=1)system(cls);cout 人人对战endl;chessboard(board);cout恭喜player1获胜!endl;else if(w=2)system(cls);cout 人人对战endl;chessboard(board);cout恭喜player2获胜!endl;if(empty(board)system(cls);cout 人人对战endl;chessboard(board);cout太牛B了,居然和棋了!endl;if(w=1|w=2|empty(board)cout返回主界面,请输入n 再玩一局请输入rendl;break;n+;elsecout 人机对战endl;int j,k=2,n,m=2;int x,y,w=0;char board1515,player1100=,player2100=,buffer255;n=temp1-48;for(i=0;i15;i+)for(j=0;j15;j+)boardij=tempk;k+;i=0;while(tempk!=n)player1i=tempk;k+;i+;while(true)system(cls);cout 人机对战endl;cout想保存请输入坐标88 88endl;chessboard(board);if(n=10) n=0;if(n%2=0)cout玩家 player1 endl;cout请输入棋子的坐标:;cinxy;if(x=0&y=0)cout玩家player1不战而退!endl;cout棋局结束!endl;system(pause);break;if(x=88&y=88)save(m,n
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 储能系统并网与电力调度方案
- 宝坻区公务员行测考试试题及答案
- 市政绿化工程设计与实施方案
- 轨道交通项目规划设计方案
- 2026年蔬菜种植公司供应商质量评估与管控制度
- 数字标准体系:“十五五”规范发展基础
- 酶法聚苯乙烯合成技术环境影响评估报告
- 2025湖北襄阳机场招聘5人易考易错模拟试题(共500题)试卷后附参考答案
- 国内老年产业市场需求及未来发展空间分析报告
- 2025浙江台州市社会事业发展集团限公司所属企业人员易考易错模拟试题(共500题)试卷后附参考答案
- 2025年麻醉临床信息系统项目合作计划书
- 人工智能通识 课件 第五章 自然语言处理与大数据
- 围术期镇痛管理
- 2025浙江凯航物产有限公司招聘12人考试笔试备考试题及答案解析
- 广西华盛集团北海裕泰工艺有限责任公司招聘笔试题库2025
- 2025贵州毕节市公安局七星关分局面向社会招聘警务辅助人员280人考试笔试参考题库附答案解析
- 2027届普通高等学校招生全国统一考试青桐鸣大联考(高二)数学(人教版)
- 2025年公安基础知识考试题库及答案
- (2025)入团积极分子题库和答案(完整版)
- 2025-2030智慧渔业发展现状分析及未来趋势与产业化研究
- 企业收购项目可行性研究报告模板
评论
0/150
提交评论