嵌入式系统黑白棋课程设计报告
巡山小妖精
813次浏览
2021年01月18日 14:45
最佳经验
本文由作者推荐
配置交换机-简历格式下载
嵌入式系统课程设计报告
——黑白棋程序设计
学
院
计算机
专
业
计算机
教
师
学
生
学
号
2013
年
x
月
xx
日
1
设计目的
利用
VS2005
编程实现基于
WINCE的
8*8
大小的黑白棋程序设计。在
WINCE
端运行
2
、开发环境
软件:
Visual Studio 2005
Vc++6.0
3
、设计任务及要求
黑白棋棋盘大小为
8*8
,实现人人对战即可
。
设计要求 :
利用二维数组标记棋盘,下子后判断横向、纵向或对角有无相同颜色
棋子,
若有则该 线段中所有棋子置为该颜色。
棋盘所有棋子填满后游戏结束。
棋子数多者胜
4
、实现过程
1
、设计初始化棋盘函数
2
、复制棋盘函数
3
、显示棋盘函数
4
、选择下棋类型
4
、计算可落子的位置个数
,
及该位置落子后翻过的棋子的个数
< br>5
、设置棋子的稳定性
(
计算得分的依据
)
,空白处除外
6
、评价棋手得分
4.1
硬件
WINDOWS
操作平台利用
VC++
实现黑白棋游戏设计
Microsoft Visual Studio 2005
4.2
驱动程序设计
WinCE
界面
4.3
用户应用程序设计
#include
using namespace std;
int const MAX=10000;
enum Color
{
WHITE=-1,BLANK,BLACK
};
//
是否能落子
//
黑子
主函数
int main(void)
/////////////
主函数
{
Chessboard board;
Chessboard *pBoard=&board;
enum Color player=BLANK,no wPlayer=BLACK;//
声明两个
enum
枚举变量
player
,
nowplayer
Choice choice;
Choice *pChoice=&choice;
int dif=-1,step=4,success=0;
char restart=' ';
start:
/////////////////////////////////////////////
player=BLANK;
/////////////////////////////////////////////
nowPlayer=BLACK;
dif=-1;
step=4;
restart=' ';
int b;
cout<<
输入
1
为人人对战
,
否则为人机对战:
cin>>b;
if(b==1){
/////////
人人对战
////////////
while(player!=WHITE && player!=BLACK)
{
cout<<
请选择执黑 棋
(
○
)(1),
或执白棋
(
●
)(-1)t执黑棋先下
:n
scanf(
//////
if(player!=WHITE && player!=BLACK)
{
cout<<
黑白设置错误
.n
}
}
essboard(pBoard);
/////////
初始化棋盘
///////////
while(step<64) /*
棋盘上未下满
64
子
*/
{
char *nowPlayerName=
if(nowPlayer==BLACK)
{
nowPlayerName=
黑棋
(
○
)
}
else if(nowPlayer==WHITE)
{
nowPlayerName=
白棋
(
●
)
}
if((pBoard,nowPlayer)==0)
{
if((pBoard,(enum Color)-nowPlayer)==0)
{
break; /*
双方都不能落子
,
游戏结束
*/
}
cout<
.n
}
else
{
int i,j;
(pBoard);
if(nowPlayer==player) /*
轮到人下
*/
{
while(1)
{
cout<
(i,j):n
cout<<
cin>>i;
i--;
cout<<
cin>>j;
j--;
pChoice->posX=i;
pChoice->posY=j;
if(i<0
||
i>7
||
j<0
||
j>7
||
pBoard->cell[i][j].color!=BLANK || pBoard->cell[i][j].stable==0)
{
cout<
能
在
落子
.
(pBoard);
}
else
{
break;
}
}
}
else
//
另外一个人下
{
while(1)
{
cout<
(i,j):n
cout<<
cin>>i;
i--;
cout<<
cin>>j;
j--;
pChoice->posX=i;
pChoice->posY=j;
if(i<0
||
i>7
||
j<0
||
j>7
pBoard->cell[i][j].color!=BLANK || pBoard->cell[i][j].stable==0)
{
cout<
能
< br>落子
.
(pBoard);
}
else
{
break;
}
}
}
ss(pBoard,pChoice,nowPlayer);
step++;
cout<
}
nowPlayer=(enum Color)-nowPlayer; /*
换对方下
*/
}
(pBoard);
success=pBoard->whiteNum - pBoard->blackNum;
if(success>0)
{
cout<<
白棋
(
●
)
获胜
.n
}
else if(success<0)
||
在
{
cout<<
黑棋
(
○
)
获胜
.n
}
else
{
cout<<
平局
.n
}
cout<<
游戏结束
!n
while(restart!='y' && restart!='n')
{
cout<<
再下一盘
?(y,n)n
ci n>>restart;/////////////////////////////////////// ////////
if(restart=='y')
{
goto start;
}
}
}
else{
////////////
人
机
对
战
/////////////
while(dif<1 || dif>60) //
设置难度
{
cout<<
请选择难度
(1~60):n
cin>>dif;
if(dif<1 || dif>60)
{
cout<<
难度设置错误
.n
}
}
while(player!=WHITE && player!=BLACK)
{
cout<<
请选择执黑棋
(
○
)(1),
或执白棋
(
●
)(- 1)
cout<<
执黑先行
:
scanf(
if(player!=WHITE && player!=BLACK)
{
cout<<
黑白设置错误
.n
}
}
i,j:n
essboard(pBoard);
/////////////////
初始化棋盘
while(step<64) //
棋盘上未下满
64
子
{
char *nowPlayerName=
if(nowPlayer==BLACK)
{
nowPlayerName=
黑棋
(
○
)
}
else if(nowPlayer==WHITE)
{
nowPlayerName=
白棋
(
●
)
}
if((pBoard,nowPlayer)==0)
{
if((pBoard,(enum Color)-nowPlayer)==0)
{
break; //
双方都不能落子
,
游戏结束
}
cout<
.n
}
else
{
int i,j;
(pBoard);
if(nowPlayer==player) //
轮到人下
{
while(1)
{
cout<
输
入
棋
子
坐
标
cout<<
cin>>i;
i--;
cout<<
cin>>j;
j--;
pChoice->posX=i;
pChoice->posY=j;
if(i<0
||
i>7
||
j<0
||
j>7
||