马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include<stdio.h>
#include<windows.h>
int main()
{
int i,j,m,hang,lie,winner;
char qipan[3][3];
void printqipan(char a[3][3]);
int caipan(char a[3][3]);
for(i=0;i<3;i++)
for(j=0;j<3;j++)
qipan[i][j]='*';
printqipan(qipan); //棋谱初始绘制
for(m=0;m<9;m++)
{
if(m%2==0)
{
printf("请玩家1下棋\n输入要下的行和列\n");
scanf("%d%d",&hang,&lie);
hang--;
lie--;
if(qipan[hang][lie]=='O'||qipan[hang][lie]=='X')
{
printf("这里已经有子了,重下吧\n请输入你要下的行和列\n");
scanf("%d%d",&hang,&lie);
hang--;
lie--;
}
qipan[hang][lie]='O';
system("cls");
printqipan(qipan);
winner=caipan(qipan);
}
else
{
printf("请玩家2下棋\n输入要下的行和列\n");
scanf("%d%d",&hang,&lie);
hang--;
lie--;
if(qipan[hang][lie]=='O'||qipan[hang][lie]=='X')
{
printf("这里已经有子了,重下吧\n请输入你要下的行和列\n");
scanf("%d%d",&hang,&lie);
hang--;
lie--;
}
qipan[hang][lie]='X';
system("cls");
printqipan(qipan);
winner=caipan(qipan);
}
if(winner==1)
{printf("玩家1胜利!");break;}
if(winner==2)
{printf("玩家2胜利!");break;}
if(m==8)
printf("平局");
}
}
void printqipan(char a[3][3])
{
int i,j;
printf("这是一个无聊的井字棋游戏\n玩家1出O,玩家2出X\n废话不多说 决一死战吧\n\n");
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
printf("%c ",a[i][j]);
printf("\n");
}
}
int caipan(char a[3][3])
{
int flag=0;
if((a[0][0]==a[0][1]&&a[0][1]==a[0][2]&&a[0][0]=='O')||
(a[1][0]==a[1][1]&&a[1][1]==a[1][2]&&a[1][0]=='O')||
(a[2][0]==a[2][1]&&a[2][1]==a[2][2]&&a[2][0]=='O')||//行
(a[0][0]==a[1][0]&&a[1][0]==a[2][0]&&a[0][0]=='O')||
(a[0][1]==a[1][1]&&a[1][1]==a[2][1]&&a[0][1]=='O')||
(a[0][2]==a[1][2]&&a[1][2]==a[2][2]&&a[0][2]=='O')||//列
(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'))//对角线
{flag=1;}
if((a[0][0]==a[0][1]&&a[0][1]==a[0][2]&&a[0][0]=='X')||
(a[1][0]==a[1][1]&&a[1][1]==a[1][2]&&a[1][0]=='X')||
(a[2][0]==a[2][1]&&a[2][1]==a[2][2]&&a[2][0]=='X')||//行
(a[0][0]==a[1][0]&&a[1][0]==a[2][0]&&a[0][0]=='X')||
(a[0][1]==a[1][1]&&a[1][1]==a[2][1]&&a[0][1]=='X')||
(a[0][2]==a[1][2]&&a[1][2]==a[2][2]&&a[0][2]=='X')||//列
(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'))//对角线
{flag=2;}
return(flag);
}
#include<stdio.h>
#include<windows.h>
#include<stdlib.h>
#include<time.h>
int main()
{
int i,j,m,n,hang,lie,winner;
char qipan[3][3];
void printqipan(char a[3][3]);
int caipan(char a[3][3]);
for(i=0;i<3;i++)
for(j=0;j<3;j++)
qipan[i][j]='*';
printqipan(qipan); //棋谱初始绘制
for(m=0;m<9;m++)
{
srand(time(0));
if(m%2==0)
{
printf("请玩家下棋\n输入要下的行和列\n");
scanf("%d%d",&hang,&lie);
hang--;
lie--;
if(qipan[hang][lie]=='O'||qipan[hang][lie]=='X')
{
printf("这里已经有子了,重下吧\n请输入你要下的行和列\n");
scanf("%d%d",&hang,&lie);
hang--;
lie--;
}
qipan[hang][lie]='O';
system("cls");
printqipan(qipan);
winner=caipan(qipan);
}
else
{
printf("电脑正在思考中.....");
Sleep(1500);
hang=rand()%3;
lie=rand()%3;
for(n=0;n<10;n++)//防止hang,lie重复
{
if((qipan[hang][lie]=='O')||(qipan[hang][lie]=='X'))
{
hang=rand()%3;
lie=rand()%3;
}
if(qipan[hang][lie]=='*')
break;
}
qipan[hang][lie]='X';
system("cls");
printqipan(qipan);
winner=caipan(qipan);
}
if(winner==1)
{printf("老哥,你赢了电脑,稳!要不要再来一局^_^");break;}
if(winner==2)
{printf("哈哈,我是井字棋中的AlphaGo");break;}
if(m==8)
printf("平局");
}
}
void printqipan(char a[3][3])
{
int i,j;
printf("这是一个无聊的井字棋游戏\n玩家出O,电脑出X\n废话不多说 决一死战吧\n\n");
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
printf("%c ",a[i][j]);
printf("\n");
}
}
int caipan(char a[3][3])
{
int flag=0;
if((a[0][0]==a[0][1]&&a[0][1]==a[0][2]&&a[0][0]=='O')||
(a[1][0]==a[1][1]&&a[1][1]==a[1][2]&&a[1][0]=='O')||
(a[2][0]==a[2][1]&&a[2][1]==a[2][2]&&a[2][0]=='O')||//行
(a[0][0]==a[1][0]&&a[1][0]==a[2][0]&&a[0][0]=='O')||
(a[0][1]==a[1][1]&&a[1][1]==a[2][1]&&a[0][1]=='O')||
(a[0][2]==a[1][2]&&a[1][2]==a[2][2]&&a[0][2]=='O')||//列
(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'))//对角线
{flag=1;}
if((a[0][0]==a[0][1]&&a[0][1]==a[0][2]&&a[0][0]=='X')||
(a[1][0]==a[1][1]&&a[1][1]==a[1][2]&&a[1][0]=='X')||
(a[2][0]==a[2][1]&&a[2][1]==a[2][2]&&a[2][0]=='X')||//行
(a[0][0]==a[1][0]&&a[1][0]==a[2][0]&&a[0][0]=='X')||
(a[0][1]==a[1][1]&&a[1][1]==a[2][1]&&a[0][1]=='X')||
(a[0][2]==a[1][2]&&a[1][2]==a[2][2]&&a[0][2]=='X')||//列
(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'))//对角线
{flag=2;}
return(flag);
}
上面是人人,下面是人机 很粗糙 还存在很多问题 |