编写了五个函数,再用主函数调用:
#include<stdio.h>
#include<stdlib.h>
char arr[3][3];
void print()
{
int i = 0;
for (i = 0; i<3; i++)
{
printf("%c|%c|%c|\n", arr[i][0], arr[i][1], arr[i][2]);
printf("_|_|_|\n");
}
}
void init_arr()
{
int i = 0;
int j = 0;
for (i = 0; i<3; i++)
{
for (j = 0; j<3; j++)
{
arr[i][j] = ' ';
}
}
}
void player()
{
int i = 0;
int j = 0;
printf("输入i,j:\n");
scanf("%d %d", &i, &j);
i--;
j--;
if (arr[i][j] != ' ')
{
printf("此格已输入,请重新输入i,j:\n");
player();
}
else
{
arr[i][j] = 'X';
}
}
void computer_move()
{
int i = 0;
int j = 0;
for (i = 0; i<3; i++)
{
for (j = 0; j<3; j++)
{
if (arr[i][j] == ' ')
{
arr[i][j] = '0';
break;
}
}
break;
}
}
char win()
{
int i = 0;
for (i = 0; i<3; i++)
{
if ((arr[i][0] == arr[i][1]) &&
(arr[i][1] == arr[i][2]))
{
return arr[i][0];
}
}
for (i = 0; i<3; i++)
{
if ((arr[0][i] == arr[1][i]) &&
(arr[1][i] == arr[2][i]))
{
return arr[0][i];
}
}
}
int main()
{
int i = 0;
int j = 0;
char done = ' ';
init_arr();
printf("棋盘游戏:\n");
do
{
print();
player();
done = win();
if (done != ' ')
{
break;
}
computer_move();
done = win();
} while (done == ' ');
if (done == '0')
{
printf("电脑赢\n");
}
else
{
printf("玩家赢\n");
}
print();
system("pause");
return 0;
}