C++Win32(DOS)五子棋代码(三字连珠).doc_第1页
C++Win32(DOS)五子棋代码(三字连珠).doc_第2页
C++Win32(DOS)五子棋代码(三字连珠).doc_第3页
C++Win32(DOS)五子棋代码(三字连珠).doc_第4页
C++Win32(DOS)五子棋代码(三字连珠).doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

三字连珠实验要求:模仿五子棋的形式,编写有一方三子或五子连成一线即获胜的程序,具体要求:1、 玩家可以设置棋盘的大小,即在游戏开始时输入一变量n(n=39),使棋盘的大小为nn。2、 本程序用if-else选择语句来判断获胜者,如果棋盘变大这将非常频繁,现要求将这一功能用循环语句实现,且适用于任意大小的棋盘。3、 加入可以悔棋的功能,要求任意方可以在对方下棋后悔改一步,即将对方当前步和本方上一步删除,本方重新下棋。程序代码(本页不足请附页)类的定义:class Gamepublic:Game(int M);void print(); /输出棋盘(1)void print2(); /输出棋盘(2)void two_people(); /双人对战int judge1(int a,int b); /判断玩家1胜利int judge2(int a,int b); /判断玩家2胜利void regret(int a,int b); /悔棋private:int N;char game1010;类的实现:#include#include1.hvoid Game:print() /输出棋盘(1)int i,j;cout ;for(i=1;iN+1;i+)cout i;coutendl;for(i=0;iN;i+)for(j=0;j=N;j+)if(j=0)couti+1 ;elsecout. ;coutendl;void Game:print2() /输出棋盘(2)int i,j;cout ;for(i=1;iN+1;i+)cout i;coutendl;for(i=1;iN+1;i+)for(j=0;j=N;j+)if(j=0)couti ;else if(gameij=O)coutO ;else if(gameij=X)coutX ;elsecout. ;coutendl;void Game:regret(int a,int b) /悔棋gameab=0;void Game:two_people()int flag=0; /判断玩家int p1,p2; /下棋位置print();for(;)if(flag=0)cout请玩家一输入下棋位置(玩家二要悔棋请输入两个0)p1p2;if(p1=0&p2=0)cout请输入要悔棋的坐标p1p2;if(gamep1p2!=X)cout输入有误endl;continue;regret(p1,p2);else if(gamep1p2!=0)cout输入有误=1&p1=1&p2=9)gamep1p2=O;elsecout输入位置有误,请重输endl;continue;if(judge1(p1,p2)=1)print2();cout玩家一胜利!endlendl;break;flag=1;print2();else if(flag=1)cout请玩家二输入下棋位置(玩家一要悔棋请输入两个0)p1p2;if(p1=0&p2=0)cout请输入要悔棋的坐标p1p2;if(gamep1p2!=O)cout输入有误endl;continue;regret(p1,p2);else if(gamep1p2!=0)cout输入有误=1&p1=1&p2=9)gamep1p2=X;elsecout输入位置有误,请重输endl;continue;if(judge2(p1,p2)=1)print2();cout玩家二胜利!endlendl;break;flag=0;print2();elsecout输入有误,请重输endl;int Game:judge1(int a,int b) /判断玩家1胜利if(gameab-1=O&gameab+1=O)|(gameab-1=O&gameab-2=O)|(gameab+1=O&gameab+2=O)return 1;else if(gamea+1b=O&gamea-1b=O)|(gamea+1b=O&gamea+2b=O)|(gamea-1b=O&gamea-2b=O)return 1;else if(gamea+1b+1=O&gamea-1b-1=O)|(gamea+1b+1=O&gamea+2b+2=O)|(gamea-2b-2=O&gamea-1b-1=O)return 1;else if(gamea+1b-1=O&gamea-1b+1=O)|(gamea+1b-1=O&gamea+2b-2=O)|(gamea-2b+2=O&gamea-1b+1=O) return 1;elsereturn 0;int Game:judge2(int a,int b) /判断玩家2胜利 if(gameab-1=X&gameab+1=X)|(gameab-1=X&gameab-2=X)|(gameab+1=X&gameab+2=X)return 1;else if(gamea+1b=X&gamea-1b=X)|(gamea+1b=X&gamea+2b=X)|(gamea-1b=X&gamea-2b=X)return 1;else if(gamea+1b+1=X&gamea-1b-1=X)|(gamea+1b+1=X&gamea+2b+2=X)|(gamea-2b-2=X&gamea-1b-1=X)return 1;else if(gamea+1b-1=X&gamea-1b+1=X)|(gamea+1b-1=X&gamea+2b-2=X)|(gamea-2b+2=X&gamea-1b+1=X) return 1;elsereturn 0;Game:Game(int M) /构造函数N=M;int i,j;for(i=0;i=N;i+)for(j=0;j=N;j+)gameij=0;类的使用:#include#include1.hvoid main() /主函数int i=0,N=0; for(;)cout游戏 三字连珠n=endl;cout请输入选项:endl;cout1.双人对战n2.游戏说明n3.退出游戏i;if(i=1)cout请输入棋盘大小:(39)N;if(N9&N3)cout输入棋盘大小超过限制,请重新输入endl;continue;Ga

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论