<span style="font-size:18px;">//小时候经常被村头老头血虐的游戏
//写程序累的时候可以玩一下
//独特的 x o 标示, 跟妹子更配哦
#import <Foundation/Foundation.h>
int main(void) {
int player = 0;
int winner = 0; //获胜者识别
int choice = 0; //数字标记选中的方格
int row = 0; //行索引
int colum = 0; //列索引
int line = 0;
char board[3][3] ={{'1','2','3'},{'4','5','6'},{'7','8','9'}};
for (int i = 0; i<9 && winner==0; i++) {
printf("\n\n");
printf(" %c | %c | %c\n",board[0][0],board[0][1],board[0][2]);
printf("---+---+---\n");
printf(" %c | %c | %c\n",board[1][0],board[1][1],board[1][2]);
printf("---+---+---\n");
printf(" %c | %c | %c\n",board[2][0],board[2][1],board[2][2]);
player = i%2 + 1;
/***** 获取玩家有效的方格选择 *****/
do {
printf("\nplayer %d,请输入想要落子的方格数 %c: ",player,(player == 1) ? 'x' : 'o');
scanf("%d",&choice);
row = --choice/3; //获取行
colum = choice%3; //获取列
} while (choice < 0 || choice > 9 || board[row][colum] > '9');
board[row][colum] = (player == 1) ? 'x' :'o'; //输入玩家符号
/***** 检查获胜线 对角线优先 *****/
if ((board[0][0] == board[1][1] && board[0][0] == board[2][2]) ||(board[0][2] == board[1][1] && board[0][2] == board[2][0])) {
winner = player;
}
/****** 检查行 列,获胜线 *****/
else {
for (line = 0; line <= 2; line++) {
if ((board[line][0] == board[line][1] && board[line][0] == board[line][2]) ||(board[0][line] == board[1][line] && board[0][line] == board[2][line])) {
winner = player;
}
}
}
}
/****** 游戏结束 显示结果 *****/
printf("\n\n");
printf(" %c | %c | %c\n",board[0][0],board[0][1],board[0][2]);
printf("---+---+---\n");
printf(" %c | %c | %c\n",board[1][0],board[1][1],board[1][2]);
printf("---+---+---\n");
printf(" %c | %c | %c\n",board[2][0],board[2][1],board[2][2]);
if (winner == 0)
printf("\n好无聊,是平局 .T_T.\n");
else {
printf("\n祝贺玩家 %d,胜出.\n",winner);
}
return 0;
}</span>
`