#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int x,y;
void playermove(char board[x][y],int x,int y)
{
int m,n;
printf("玩家回合\n");
while(1)
{
printf("请输入坐标");
scanf("%d%d",&m,&n);
if(m>=1&&m<=x&&n>=1&&n<=y)
{
if(board[m-1][n-1]==' ')
{
board[m-1][y-1]=='$';
break;
}
else
{
printf("该坐标被占用\n");
}
}
else
{
printf("坐标非法\n");
}
}
}
void computermove(char board[x][y],int x,int y)
{
printf("电脑回合\n");
int m,n;
m=rand()%x;
n=rand()%y;
while(1)
{
if(board[m][n]==' ')
{
board[m][n]='#';
break;
}
}
}
void display(char board[x][y],int x,int y)
{
int i;
for(i=0;i<x;i++)
{
int j;
for(j=0;j<y;j++)
{
printf(" %c ",board[i][j]);
if(j<y-1)
{
printf("|");
}
}
printf("\n");
if(i<x-1)
{
int j;
for(j=0;j<y;j++)
{
printf("---");
if(j<y-1)
{
printf("|");
}
}printf("\n");
}
}
}
void InitBoard(char board[x][y],int x,int y)
{
int z,s;
for(z=0;z<x;z++)
{
for(s=0;s<y;s++)
{
board[z][s]=' ';
}
}
}
void manu()
{
printf("~~~~~~~~~~~~~~~~~~~\n");
printf("press 1 start game\n");
printf("press 0 exit game\n");
printf("~~~~~~~~~~~~~~~~~~~\n");
}
int isfull(char baord[x][y],int x,int y)
{
int m,n;
for(m=0;m<x;m++)
{
for(n=0;n<y;n++)
{
return 0;
}
}
return 1;
}
char iswin(char board[x][y],int x,int y)
{
int m,n;
for(m=0;m<x;m++)
{
if(board[m][0]==board[m][1]==board[m][2]&&board[1][0]!=0)
{
return board[m][1];
}
}
for(m=0;m<y;m++)
{
if(board[0][m]==board[1][m]==board[2][m]&&board[1][m]!=0)
{
return board[1][m];
}
}
if(board[1][1]==board[0][0]==board[2][2]&&board[1][1]!=0)
{
return board[1][1];
}
if(board[0][2]==board[1][1]==board[2][0]&&board[1][1]!=0)
{
return board[1][1];
}
if(1==isfull(board,x,y))
{
return 'q';
}
return 'c';
}
void game()
{
char ret=0;
int x=3,y=3;
char board[x][y];
InitBoard(board,x,y);
display(board,x,y);
while(1)
{
playermove(board,x,y);
display(board,x,y);
if(ret!='c')
{
break;
}
computermove(board,x,y);
display(board,x,y);
ret=iswin(board,x,y);
if(ret!='c')
{
break;
}
}
if(ret=='*')
{
printf("玩家赢了\n");
}
else if(ret=='#')
{
printf("电脑赢了\n");
}
else
{
printf("平局\n");
}
}
int main () {
int input;
srand((unsigned int)time(NULL));
do
{
manu();
printf("please decide 1 or 0\n");
scanf("%d",&input);
switch(input)
{
case 1:
printf("start game\n");
game();
break;
case 0:
printf("exit game\n");
break;
default:
printf("unknow wrong");
break;
}
}while(input);
return 0;
}