- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言课程设计 一担挑游戏doc
中 国 地 质 大 学
本科生课程论文封面
2011年12月
课程设计评语
对课程论文的评语:
平时成绩: 课程论文成绩: 总 成 绩: 评阅人签名:
注:1、无评阅人签名成绩无效;
2、必须用钢笔或圆珠笔批阅,用铅笔阅卷无效;
3、如有平时成绩,必须在上面评分表中标出,并计算入总成绩。
目 录
课程设计评语 2
目 录 3
1.课程论文题目 4
2.程序设计思路 4
3.功能模块图 5
4.数据结构设计 5
5.算法设计 6
6.程序代码 13
7.程序运行结果 22
8.编程中遇到的困难及解决方法 25
9.总结心得及良好建议 26
10.致谢 26
一 课程论文题目 :一担挑游戏
二.程序设计思路
1 题目要求:
1.计算机移动是,使用相应函数扫描棋盘矩阵,寻找未占单元;发现空单元后,置为“0”;为发现时,报告平局退出。
2.轮到对弈者时,使用相应函数要求对弈者回答想把“X”放在哪里。
3.谁先三点连成一线了,则报告谁胜出。
4.计算机与对弈者每下一步棋都会使相应位置变为“0”和“X”,便于在屏上显示矩阵。Char qi pan[3][3];
Void init_qipan(void);
{int i,j;
for(i=0;i3;i++)
for(j=0:j3;j++)
qipan[i][j]=’ ’
}
五.算法设计
1.主函数:较为简单,只有数据输入,功能处理等函数调用。
流程图
2各功能模块设计
棋盘输入
用二维数组构筑了棋盘,用间隔线分割棋盘后,就可以按自己意愿和计算机对弈了,此后每一步计算机都会调用相应的函数扫描棋盘。
Char qi pan[3][3];
Void init_qipan(void);
{int i,j;
for(i=0;i3;i++)
for(j=0:j3;j++)
qipan[i][j]=’ ’
(2)对弈模块
模块是提供用户模拟棋盘按用户自己的思想来下棋,这期间涉及两种情况1用户输入错误,2棋子位置错误。
/*************用户方面对弈************/
void player_move(void)
{
int x,y;
printf(Its your turn,please:);
scanf(%d%*c%d,x,y);
x--;y--;
if(qipan[x][y]!= )
{
printf(Error, try again.\n);
player_move();
}
else qipan[x][y]=X;
}
/**************计算机方面对弈*********/
void computer_move(void)
{
int i,j;
for(i=0;i3;i++)
{
for(j=0;j3;j++)
if(qipan[i][j]== )
break;
if(qipan[i][j]== )
break;
}
if(i*j==9)
{
printf(pingju\n);
exit(0);
}
else
qipan[i][j]=0;
}
(3)显现模块
显示模块
【需求分析】
该模块的作用是显示对弈结果。即要求计算机调用相关的函数多次扫描棋盘,谁的棋优先连成一线了,计算机就判定谁胜出:这期间有三种情况;1.用户是胜者,2.计算机胜出,3.二者打成平局.
【程序】
void disp(void)
{
int t;
for(t=0;t3;t++)
{
printf(%c|%c|%c,qipan[t][0],qipan[t][1],qipan[t][2]);
if(t!=2)
printf(\n-|-|-\n);
}
printf(\n);
}
char check(void)
{
int i;
for(i=0;i3;i++)
if(qipan[i][0]==qipan[i][1]qipan[i][0]==qipan[i][2])
return qipan[i][0];
for(i=0;i3;i++)
if(qipan[0][i]==qipan[1][i]qipan[0][i]==qipan[2][i])
return qipan[0][i];
for(i=0;i3;i++)
if(qipan[0][0]==qipan[1][1]qipan[0][0]==qipan[2][2])
return qipan[0][0];
for(i=0;i3;i++)
if(qipan[0][2]==qipan[1][1]qipan[1][1]==qipan[2][0])
return qipan[0][2];
return ;
}
六.程序代码
#i
文档评论(0)