<pre name="code" class="cpp"># include <stdio.h>
void init_chessboard(char arr[3][3]);
void print(char arr[3][3]);
char check(char arr[3][3]);
void player_move(char arr[3][3]);
void computer_move(char arr[3][3]);
int main()
{
char arr[3][3] = {0};
char done= ' ';
init_chessboard(arr);
do
{
print(arr);
player_move(arr);
done = check(arr);
if (done != ' ')
break;
computer_move(arr);
done = check(arr);
}while (done == ' ');
if (done == 'X')
printf("玩家贏了!\n");
else
printf("電腦贏了!\n");
print(arr);
return 0;
}
void init_chessboard(char arr[][3])
{
int i = 0;
int j = 0;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
arr[i][j]=' ';
}
}
}
void print(char arr[][3])
{
int i=0;
for(i=0;i<3;i++)
{
printf(" %c | %c | %c \n",arr[i][0],arr[i][1],arr[i][2]);
if (i != 2)
printf("---|---|---\n");
}
}
void player_move(char arr[3][3])
{
int x = 0;
int y = 0;
printf("input x and y:");
scanf("%d%d",&x,&y);
x = x-1;
y = y-1;
if (arr[x][y] == ' ')
{
arr[x][y] = 'X';
}
else
{
printf("input error!\n");
player_move(arr);
}
}
void computer_move(char arr[][3])
{
int i = 0;
int j = 0;
for (i=0;i<3;i++)
{
for (j=0;j<3;j++)
{
if (arr[i][j] == ' ')
break;
}
if (arr[i][j] == ' ')
break;
}
if (i*j == 9)
printf("平局\n");
else
arr[i][j] = '0';
}
char check(char arr[][3])
{
int i = 0;
for(i=0;i<3;i++)
{
if(arr[i][0]==arr[i][1] && arr[i][1]==arr[i][2])
{
if (arr[i][0]!=' ')
return arr[i][0];
}
}
for (i=0;i<3;i++)
{
if (arr[0][i]==arr[1][i] && arr[1][i]==arr[2][i])
{
if (arr[0][i]!=' ')
return arr[0][i];
}
}
if (arr[0][0]==arr[1][1] && arr[1][1]==arr[2][2])
{
if (arr[0][0]!=' ')
return arr[1][1];
}
if (arr[0][2]==arr[1][1] && arr[1][1]==arr[2][0])
{
if (arr[0][2]!=' ')
return arr[1][1];
}
return ' ';
}
c語言棋盤遊戲
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.