早教吧作业答案频道 -->其他-->
一担挑游戏简单计算机模拟棋盘对弈。其中棋盘左上角坐标为(1,1),右下角坐标为(3,3)。游戏规则如下:(1)计算机移动时,使用相应函数扫描棋盘矩阵,寻找未占单元,发现空单
题目详情
一担挑游戏 简单计算机模拟棋盘对弈。其中棋盘左上角坐标为(1,1),右下角坐标为(3,3)。
游戏规则如下:
(1)计算机移动时,使用相应函数扫描棋盘矩阵,寻找未占单元,发现空单元后,置为"0",未发现时,报告平局退出。
(2)轮到对弈者时,使用相应函数要求对弈者回答想把"X"放在哪里。
(3)谁先三点连成一线了,则报告谁胜出。
(4)计算机与对弈者每下一步都会使相应位置变为"0"和"X",便于在屏上显示矩阵。
游戏规则如下:
(1)计算机移动时,使用相应函数扫描棋盘矩阵,寻找未占单元,发现空单元后,置为"0",未发现时,报告平局退出。
(2)轮到对弈者时,使用相应函数要求对弈者回答想把"X"放在哪里。
(3)谁先三点连成一线了,则报告谁胜出。
(4)计算机与对弈者每下一步都会使相应位置变为"0"和"X",便于在屏上显示矩阵。
▼优质解答
答案和解析
刚好我大一的时候课程设计就是写的这个。
#include
#include
void main()
{
int t,n,row,num,q=0,b,i,winner=0,j;
char a[3][3]={'1','2','3','4','5','6','7','8','9'};
printf("******************************************************\n");
printf("******************欢迎进入一担挑游戏******************\n");
printf("******************************************************\n");
printf("\n");
printf("进入游戏请按1,结束游戏请按0\n");
scanf("%d",&t);
while(t)
{
for(i=0;i<9&&winner==0;i++)
{
b=q%2+1;
printf(" %c | %c | %c\n",a[0][0],a[0][1],a[0][2]);
printf("---+---+---\n");
printf(" %c | %c | %c\n",a[1][0],a[1][1],a[1][2]);
printf("---+---+---\n");
printf(" %c | %c | %c\n",a[2][0],a[2][1],a[2][2]);
printf("玩家%d请选择\n",b);
q++;
scanf("%d",&n);
while(n<1||n>9)
{
printf("选择错误!无该位置.请重新选择\n");
scanf("%d",&n);
}
row=n/3;
num=n%3-1;
while(a[row][num]=='o'||a[row][num]=='x')
{
printf("选择错误!该位置已经被选择过.请重新选择\n");
scanf("%d",&n);
row=n/3;
num=n%3-1;
}
while(n<1||n>9)
{
printf("选择错误!无该位置.请重新选择\n");
scanf("%d",&n);
}
row=n/3;
num=n%3-1;
if(b==1)a[row][num]='o'; /*判断是否已经有玩家胜出*/
else a[row][num]='x';
if((a[0][0]==a[1][1]&&a[1][1]==a[2][2]&&a[0][0]=='o')||(a[0][2]==a[1][1]&&a[1][1]==a[2][0]&&a[0][2]=='o'))
winner=1;
else if((a[0][0]==a[1][1]&&a[1][1]==a[2][2]&&a[0][0]=='x')||(a[0][2]==a[1][1]&&a[1][1]==a[2][0]&&a[0][2]=='x'))
winner=2;
for(j=0;j<3;j++)
{
if((a[j][0]==a[j][1]&&a[j][1]==a[j][2]&&a[j][0]=='o')||(a[0][j]==a[1][j]&&a[1][j]==a[2][j]&a[0][j]=='o'))
winner=1;
else if((a[j][0]==a[j][1]&&a[j][1]==a[j][2]&&a[j][0]=='x')||(a[0][j]==a[1][j]&&a[1][j]==a[2][j]&a[0][j]=='x'))
winner=2;
}
}
if(winner!=0)printf("player%d胜利!\n",winner);
else printf("平局!\n");
printf("继续游戏请按1,结束游戏请按0\n");
scanf("%d",&t);
}
}
#include
#include
void main()
{
int t,n,row,num,q=0,b,i,winner=0,j;
char a[3][3]={'1','2','3','4','5','6','7','8','9'};
printf("******************************************************\n");
printf("******************欢迎进入一担挑游戏******************\n");
printf("******************************************************\n");
printf("\n");
printf("进入游戏请按1,结束游戏请按0\n");
scanf("%d",&t);
while(t)
{
for(i=0;i<9&&winner==0;i++)
{
b=q%2+1;
printf(" %c | %c | %c\n",a[0][0],a[0][1],a[0][2]);
printf("---+---+---\n");
printf(" %c | %c | %c\n",a[1][0],a[1][1],a[1][2]);
printf("---+---+---\n");
printf(" %c | %c | %c\n",a[2][0],a[2][1],a[2][2]);
printf("玩家%d请选择\n",b);
q++;
scanf("%d",&n);
while(n<1||n>9)
{
printf("选择错误!无该位置.请重新选择\n");
scanf("%d",&n);
}
row=n/3;
num=n%3-1;
while(a[row][num]=='o'||a[row][num]=='x')
{
printf("选择错误!该位置已经被选择过.请重新选择\n");
scanf("%d",&n);
row=n/3;
num=n%3-1;
}
while(n<1||n>9)
{
printf("选择错误!无该位置.请重新选择\n");
scanf("%d",&n);
}
row=n/3;
num=n%3-1;
if(b==1)a[row][num]='o'; /*判断是否已经有玩家胜出*/
else a[row][num]='x';
if((a[0][0]==a[1][1]&&a[1][1]==a[2][2]&&a[0][0]=='o')||(a[0][2]==a[1][1]&&a[1][1]==a[2][0]&&a[0][2]=='o'))
winner=1;
else if((a[0][0]==a[1][1]&&a[1][1]==a[2][2]&&a[0][0]=='x')||(a[0][2]==a[1][1]&&a[1][1]==a[2][0]&&a[0][2]=='x'))
winner=2;
for(j=0;j<3;j++)
{
if((a[j][0]==a[j][1]&&a[j][1]==a[j][2]&&a[j][0]=='o')||(a[0][j]==a[1][j]&&a[1][j]==a[2][j]&a[0][j]=='o'))
winner=1;
else if((a[j][0]==a[j][1]&&a[j][1]==a[j][2]&&a[j][0]=='x')||(a[0][j]==a[1][j]&&a[1][j]==a[2][j]&a[0][j]=='x'))
winner=2;
}
}
if(winner!=0)printf("player%d胜利!\n",winner);
else printf("平局!\n");
printf("继续游戏请按1,结束游戏请按0\n");
scanf("%d",&t);
}
}
看了一担挑游戏简单计算机模拟棋盘对...的网友还看了以下:
1.观察下列数字的排列顺序3,3,7,11,15,19.找出其中的规律,并用式子表达出来,根据你发 2020-05-12 …
观察:4×6=2414×16=224观察:4×6=2414×16=22424×26=62434×3 2020-06-03 …
观察:4×6=24,14×16=224.观察:4×6=2414×16=22424×26=62434 2020-06-03 …
如图,把△ABC沿DE折叠,当点A落在四边形BCDE内部时,∠A与∠1+∠2之间有一种数量关系始终 2020-06-26 …
计算,并找一找规律,再根据上面计算发现的规律计算下题.11×2=1-1218×9=18-19我发现 2020-07-18 …
研究下列算式,你会发现什么规律?1×3+1=4=222×4+1=9=323×5+1=16=424× 2020-07-19 …
按照找出的规律计算0.1+0.3+0.5+0.7+...+201.1+201.3等于多少?观察下面 2020-07-26 …
对某种赌博游戏调查后,发现其规则如下:摊主在口袋中装入8枚黑和8枚白的围棋子,参加者从中随意一次摸出 2020-12-08 …
观察下面一列证书的排列顺序:3、7、11、15、19找出其中的规律,并用式子表达出来,根据你发现的规 2020-12-26 …
判断推理.把边长为1cm的正方形如图这样一层、两层、三层…通过摆放,拼成各种图形.你能发现其中的规律 2020-12-30 …