项目名称五子棋Word下载.docx

上传人:b****1 文档编号:4489056 上传时间:2023-05-03 格式:DOCX 页数:16 大小:19.19KB
下载 相关 举报
项目名称五子棋Word下载.docx_第1页
第1页 / 共16页
项目名称五子棋Word下载.docx_第2页
第2页 / 共16页
项目名称五子棋Word下载.docx_第3页
第3页 / 共16页
项目名称五子棋Word下载.docx_第4页
第4页 / 共16页
项目名称五子棋Word下载.docx_第5页
第5页 / 共16页
项目名称五子棋Word下载.docx_第6页
第6页 / 共16页
项目名称五子棋Word下载.docx_第7页
第7页 / 共16页
项目名称五子棋Word下载.docx_第8页
第8页 / 共16页
项目名称五子棋Word下载.docx_第9页
第9页 / 共16页
项目名称五子棋Word下载.docx_第10页
第10页 / 共16页
项目名称五子棋Word下载.docx_第11页
第11页 / 共16页
项目名称五子棋Word下载.docx_第12页
第12页 / 共16页
项目名称五子棋Word下载.docx_第13页
第13页 / 共16页
项目名称五子棋Word下载.docx_第14页
第14页 / 共16页
项目名称五子棋Word下载.docx_第15页
第15页 / 共16页
项目名称五子棋Word下载.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

项目名称五子棋Word下载.docx

《项目名称五子棋Word下载.docx》由会员分享,可在线阅读,更多相关《项目名称五子棋Word下载.docx(16页珍藏版)》请在冰点文库上搜索。

项目名称五子棋Word下载.docx

定义的棋盘类如下:

classQipan

{public:

charQizi[9][9];

//棋盘信息

charC_Weizi[2];

//存放电脑要下的棋子坐标

voidQipanInitialize();

//对棋盘初始化

~Qipan();

voidQipan:

:

ShowMe();

//显示棋盘

boolQipan:

Check();

//判断棋盘是否已下满

voidC_Qizi(inti0,intj0);

//电脑计算出要下的坐标

boolWin_lose(chara,inti0,intj0);

//判断输赢

};

用Qizi[9][9]来存放各位置的棋子信息(未下的为*,电脑的为1,用户的为0),用户输入要下棋子坐标

后,电脑根据用户刚下的位置计算自己要下的位置,用伪代码描述为:

1)获得用户刚下的位置坐标i0,j0

2)在I0,J0所在的行和列分别查找用户的棋子个数sum_line,sum_row

3)if(sum_row>

=sum_line)

{

从I0,J0开始向左查找相连的子;

if(没有空位)

{再从I0,J0向又查找;

if(没有空位)

{从该位置向右查找空位;

保存该位置到C_Weizi[2];

}

else

{保存该位置到C_Weizi[2];

{

仿造上述方法在列中查找;

找到后保存该位置到C_Weizi[2];

电脑根据计算所得的坐标下子。

2)主函数的流程:

初始化棋盘;

显示棋盘;

while(棋盘未下满)

{用户输入要下的位置i0,j0;

根据i0,j0的值执行相应的功能;

判断是否赢了;

if(赢)

{break;

else

{电脑计算并下子;

2.程序

#include<

iostream.h>

//定义棋盘类

classQipan

//定义棋盘初始化函数

voidQipan:

QipanInitialize()

for(inti=0;

i<

=8;

i++)

{for(intj=0;

j<

j++)

Qizi[i][j]='

*'

;

}

//定义解构函数

Qipan:

~Qipan()

{cout<

<

endl<

"

欢迎下次再玩!

endl;

//定义显示函数

ShowMe()

{

switch(i)

{

case2:

{

for(intj=0;

{if(j==8)

cout<

Qizi[i][j]<

"

SIGO五子棋说明:

else

cout<

}

break;

}

case3:

for(intj=0;

1)你的棋子为0,电脑的棋子为1"

case4:

{

for(intj=0;

{if(j==8)

2)你只须键入你要下的棋子坐标"

}

break;

case5:

3)重新开始请输入-1,-1"

case6:

4)结束游戏请输入0,0"

default:

}

//判断是否棋盘已下满

boolQipan:

Check()

for(intj=0;

{

if(Qizi[i][j]=='

returntrue;

returnfalse;

//电脑计算要下的子坐标并保存

C_Qizi(inti0,intj0)

intsum_line=0,sum_row=0;

{if(Qizi[i][j0]=='

0'

sum_line++;

for(intj=0;

{if(Qizi[i0][j]=='

sum_row++;

}//比较横行和纵行上人的棋子个数

if(sum_row>

{

j=j0;

while(Qizi[i0][j]=='

&

j>

=0)

j--;

if(j<

0||Qizi[i0][j]=='

1'

=8)

j++;

if(Qizi[i0][j]=='

while((Qizi[i0][j]=='

||Qizi[i0][j]=='

)&

j++;

C_Weizi[0]=i0;

//存放要下的位置坐标

C_Weizi[1]=j;

{C_Weizi[0]=i0;

{C_Weizi[0]=i0;

//如果纵行人的棋子较多

{//从人刚下的位置往上检验相连的子

i=i0;

while(Qizi[i][j0]=='

i>

i--;

if(i<

0||Qizi[i][j0]=='

{i=i0;

i++;

if(Qizi[i][j0]=='

while((Qizi[i][j0]=='

||Qizi[i][j0]=='

i++;

C_Weizi[0]=i;

C_Weizi[1]=j0;

{C_Weizi[0]=i;

{C_Weizi[0]=i;

//判断输赢(可以对人和电脑判断)

Win_lose(chara,inti0,intj0)

{inti=i0-1;

intj=j0-1;

intsum_line=0,sum_row=0,sum_xie1=0,sum_xie2=0;

while(Qizi[i][j0]==a&

i--;

i+=1;

while(Qizi[i][j0]==a)

sum_line++;

if(sum_line==5)returntrue;

//判断纵行是否满足

while(Qizi[i0][j]==a&

j+=1;

while(Qizi[i0][j]==a)

{sum_row++;

if(sum_row==5)returntrue;

//判断横行是否满足

i=i0-1;

j=j0-1;

while(Qizi[i][j]==a&

=0&

{i--;

j--;

while(Qizi[i][j]==a)

{sum_xie1++;

i++;

j++;

if(sum_xie1==5)returntrue;

//判断斜行是否满足

j=j0+1;

j-=1;

{sum_xie2++;

if(sum_xie2==5)returntrue;

//判断另一斜行是否满足

//主函数

voidmain()

Qipanqipan1;

qipan1.QipanInitialize();

//初始化棋盘

inti=1,j=1;

while(qipan1.Check())//当棋盘全部下满时停止游戏

qipan1.ShowMe();

if(qipan1.Win_lose('

i-1,j-1))//判断电脑是否赢了

cout<

你输了!

break;

else

输入棋子位置:

cin>

>

j;

if(i==0&

j==0)

{break;

else

if(i==-1&

j==-1)

{

qipan1.QipanInitialize();

qipan1.ShowMe();

//刷新之后重新开始

qipan1.Qizi[i-1][j-1]='

if(qipan1.Win_lose('

i-1,j-1))

你赢了!

break;

else

{//电脑完成计算

qipan1.C_Qizi(i-1,j-1);

qipan1.Qizi[qipan1.C_Weizi[0]][qipan1.C_Weizi[1]]='

{//输入的坐标必须满足条件

while(i<

=0||i>

9||j<

=0||j>

9||qipan1.Qizi[i-1][j-1]=='

||

qipan1.Qizi[i-1][j-1]=='

请重新输入:

cin>

qipan1.Qizi[i-1][j-1]='

//判断人是否赢了

三.项目总结

1)编写类的多个成员函数时应该逐个编写并检验,否则出错的话很难查找。

2)一个程序的关键部分是算法,让电脑做一件就要为它编制相应的算法。

3)编写程序时应该考虑到所有的可能性,并给出相应的处理方法。

4)逐步求精。

例如当编写电脑计算如何下子的函数时,先实现一些比较简单的功能,让它可以给出一个

没有下过子的位置,然后检验该函数,成功的话,就说明该函数的接口是可行的,然后只须再改进该、

函数即可,增强它的功能。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高中教育 > 其它课程

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2