早教吧作业答案频道 -->其他-->
一担挑游戏简单计算机模拟棋盘对弈。其中棋盘左上角坐标为(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);
}
}
看了一担挑游戏简单计算机模拟棋盘对...的网友还看了以下:
为了预防计算机病毒,应采取的正确措施是 A.每天对硬盘或软盘进行格式化 B.不玩任何计算机游戏C. 2020-05-23 …
计算机安全是指计算机系统的()受到保护。A. 硬盘、软盘、光盘B.显示器、软盘、硬盘C.硬件、软件、 2020-05-26 …
下面有关计算机的叙述中,正确的是().A.计算机的主机只包括CPUB.计算机程序必须装载到内存中才 2020-07-14 …
在一台已感染病毒的计算机上读取一张CD-ROM光盘中的数据,该光盘也有可能被感染病毒.F26.存储 2020-07-25 …
如图为某台计算机资源管理器的部分截图,下列说法错误的是()A.当前可见的硬盘分区有三个B.F盘是计算 2020-11-03 …
蒙伟想把家里台式计算机里的一个600MB文件资料移动到另一台手提电脑里,可是这两台计算机没有联网,他 2020-11-07 …
一担挑游戏简单计算机模拟棋盘对弈。其中棋盘左上角坐标为(1,1),右下角坐标为(3,3)。游戏规则如 2020-11-08 …
关于微型计算机的知识描述正确的是。A.硬盘和软盘都是外存储器,但软盘的存储速度要比硬盘快B.运算器是 2020-12-12 …
麻烦谁能给我答案,关于计算机的方面.20.具有多媒体功能系统的微机常用CD-ROM作为外存储设备,它 2020-12-12 …
1.把硬盘上的数据传送到计算机的内存中去,称为——。A.读盘B.输出C.打印D.写盘1.把硬盘上的数 2020-12-28 …