一担挑游戏 c语言,C语言课程设计 一担挑游戏doc.doc

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;i<3;i++)

for(j=0:j<3;j++)

qipan[i][j]=’ ’

}

五.算法设计

1.主函数:较为简单,只有数据输入,功能处理等函数调用。

流程图

2各功能模块设计

棋盘输入

用二维数组构筑了棋盘,用间隔线分割棋盘后,就可以按自己意愿和计算机对弈了,此后每一步计算机都会调用相应的函数扫描棋盘。

Char qi pan[3][3];

Void init_qipan(void);

{int i,j;

for(i=0;i<3;i++)

for(j=0:j<3;j++)

qipan[i][j]=’ ’

(2)对弈模块

模块是提供用户模拟棋盘按用户自己的思想来下棋,这期间涉及两种情况1用户输入错误,2棋子位置错误。

/*************用户方面对弈************/

void player_move(void)

{

int x,y;

printf("It's 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;i<3;i++)

{

for(j=0;j<3;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;t<3;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;i<3;i++)

if(qipan[i][0]==qipan[i][1]&&qipan[i][0]==qipan[i][2])

return qipan[i][0];

for(i=0;i<3;i++)

if(qipan[0][i]==qipan[1][i]&&qipan[0][i]==qipan[2][i])

return qipan[0][i];

for(i=0;i<3;i++)

if(qipan[0][0]==qipan[1][1]&&qipan[0][0]==qipan[2][2])

return qipan[0][0];

for(i=0;i<3;i++)

if(qipan[0][2]==qipan[1][1]&&qipan[1][1]==qipan[2][0]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值