c++五子棋.doc
《c++五子棋.doc》由会员分享,可在线阅读,更多相关《c++五子棋.doc(14页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、#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*st
2、art;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主菜单中选择继续游戏就可以读入存档了。 en
3、dl 游戏规则很简单,谁先下到五颗连珠就赢了哦 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;
4、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;
5、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(b
6、oardij=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 emp
7、ty(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();v
8、oid 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;i1
9、5;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);b
10、reak;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获胜
11、!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=ran
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c+ 五子棋
限制150内