




已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GSK2636771-Standard-生命科学试剂-MCE
- 2025航天科工天隼实验室招聘4人模拟试卷附答案详解(黄金题型)
- 2025年河南省上蔡第一高级中学招聘教师30人模拟试卷及答案详解(网校专用)
- 2025年户外机柜温控节能项目合作计划书
- 安全培训效果点评课件
- 企业信誉与发展规划承诺函9篇
- 美食电商美食节促销计划
- 2025年甘肃省兰州眼科医院(兰州市第一人民医院眼科)招聘考前自测高频考点模拟试题参考答案详解
- 小学交通安全培训简报课件
- 2025届春季中核集团人才计划招聘模拟试卷附答案详解(突破训练)
- 2025年全国养老护理员资格考试试题及答案解析
- 国企安全环保培训会课件
- 2025年公安院校联考公安院校联考行测题库(附答案)
- 药物的过量反应课件
- 2025年江苏省南京市中考英语真题卷含答案解析
- 商业综合体安保人员培训效果考试试卷及答案
- 炎症与心脑血管疾病
- 天然林保护知识培训内容课件
- UV转印技术简介
- 子宫内膜异位症
- 医院食堂运营与服务简介
评论
0/150
提交评论