一担挑游戏 c语言,什么是一担挑游戏

(C语言)一担挑游戏

【题目】

【要求】

简单计算机模拟期棋盘对弈。其中棋盘左上角坐标为(1,1),右下角坐标为(3,3)。

游戏规则如下:

(1)计算机移动时,使用相应函数扫描棋盘矩阵,寻找未占单元:发现空单元之后,置为“O”,未发现时,报告平局后推出。

(2)轮到对弈者时,使用想要函数要求对弈者回答想把“X"放在哪里。

(3)谁先三点连成一线了,则报告谁胜出。

(4)计算机与对弈者每下一步棋都会使相应位置变为“O”和“X”,便于在屏上显示矩阵。

【提示】

棋盘位置用2维数组代表,初始状态每一位置均应为“ ”(空)。其分隔线(即棋盘线)可用————或||来分隔。

【代码】

下载此代码

点此留言

#include "stdio。

h"

#include "stdlib。h"

void init_qipan();

void player_move();

void computer_move();

void disp();

char check();

int main(void)

{

char done;

done=' ';

init_qipan();

do

{

disp();

player_move();

done=check();

if(done!=' ')

break;

computer_move();

done=check();

}

while(done==' ');

if(done=='X')

printf("You won!

");

else

printf("You lost!

");

disp();

getchar();

return 0;

}

char qipan[3][3];

void init_qipan(void)

{

int i,j;

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

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

qipan[i][j]=' ';

}

void player_move(void)

{

int x,y;

printf("It's your turn:");

scanf("%d%*c%d",&x,&y);

x--;y--;

if(qipan[x][y]!=' ')

{

printf("Error, try again。

");

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

");

exit(0);

}

else

qipan[i][j]='0';

}

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("

-|-|-

");

}

printf("

");

}

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])

return qipan[0][2];

return ' ';

}

--------------------------------------------------------------------------------。

全部

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值