#define _CRT_SECURE_NO_WARNINGS l
#include<string.h>
#include<stdio.h>
#include<windows.h>
#include<time.h>
void menu()
{
printf("******************************\n");
printf("******************************\n");
printf("************三子棋************\n");
printf("*********1.开始游戏***********\n");
printf("*********0.结束游戏***********\n");
printf("******************************\n");
printf("******************************\n");
}
void qipan(char arr1[3][3],int rows,int cols)//棋盘
{
int x;
printf("-------------\n");
for(x=0;x<rows;x++)
{
printf("| %c | %c | %c |\n",arr1[x][0],arr1[x][1],arr1[x][2]);
printf("-------------\n");
}
}
void computer(char arr1[3][3],int rows,int cols)//电脑随机
{
int a;
int b;
srand((unsigned int)time(NULL));
printf("电脑走:\n");
while(1)
{
a=rand()%rows;
b=rand()%cols;
if(arr1[a][b]==' ')
{
arr1[a][b]='@';
break;
}
}
}
void people(char arr1[3][3],int rows,int cols)//玩家
{
int a;
int b;
while(1)
{
printf("请玩家输入坐标:");
scanf("%d%d",&a,&b);
a=a-1;
b=b-1;
if(arr1[a][b]==' ')
{
arr1[a][b]='*';
break;
}
}
}
char judge(char arr1[3][3],int rows,int cols)//判断输赢
{
int i;
int j;
if((arr1[0][0]==arr1[1][1])&&(arr1[1][1]==arr1[2][2])&&(arr1[2][2]!=' '))
return arr1[1][1];
if((arr1[0][2]==arr1[1][1])&&(arr1[1][1]==arr1[2][0])&&(arr1[2][0]!=' '))
return arr1[1][1];
for(i=0;i<rows;i++)
{
if(arr1[i][0]==arr1[i][1]&&arr1[i][1]==arr1[i][2]&&arr1[i][2]!=' ')
return arr1[i][1];
}
for(i=0;i<cols;i++)
{
if(arr1[0][i]==arr1[i][1]&&arr1[1][i]==arr1[2][i]&&arr1[2][i]!=' ')
return arr1[1][i];
}
if(1)
{
for(i=0;i<rows;i++)
for(j=0;j<cols;j++)
{
if(arr1[i][j]==' ')
return 'k';
}
}
return 'm';//棋盘满了,平局
}
void game()
{
char ret;
char arr[3][3];
memset(arr,' ',sizeof(char)*3*3);
qipan(arr,3,3);
while(1)
{
people(arr,3,3);
ret=judge(arr,3,3);
qipan(arr,3,3);
if(ret!='k')
break;
computer(arr,3,3);
ret=judge(arr,3,3);
qipan(arr,3,3);
if(ret!='k')
break;
}
if(ret=='*')
printf("玩家赢。\n");
if(ret=='@')
printf("电脑赢。\n");
if(ret=='m')
printf("平局。\n");
}
int main()
{
int c;
int i=0;
int j=0;
do
{
menu();
scanf("%d",&c);
if(c==1)
{
game();
}
else
break;
}while(c);
system("pause");
return 0;
}
三子棋
最新推荐文章于 2022-07-28 18:20:34 发布