#import <Foundation/Foundation.h>
#import <stdio.h>
#import <string.h>
int main()
{
int player = 0; //玩家 1 或者 2
int winner = 0; // 赢家
int row = 0; // 行
int rank = 0; // 列
int choice = 0; //选择
/**
* 创建棋盘
*/
char board[3][3]={
{'1','2','3'},
{'4','5','6'},
{'7','8','9'}
};
for (int i = 0;i < 9 && winner == 0 ;i++)
{ player = (i % 2)+1;
//打印棋谱
printf("\n\n");
printf("+---+---+---+\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]);
printf("+---+---+---+\n");
printf("现在是玩家%d选择下你的棋子,%c\n",player,player == 1?'X':'O');
// printf("要下在第几行?");
// scanf("%d",&row);
// row--;
// printf("要下在第几列?");
// scanf("%d",&rank);
// rank-- ;
// 选择下棋位置
printf("请选择下棋位置,位置为盘上的数字:\n");
there:scanf("%d",&choice);
//选手的下棋位置
rank = choice % 3;
rank--;
row = choice /3;
//判断 该位置是否已经落子
if((board[row][rank]=='X')||(board[row][rank]=='O'))
{
printf("该位置已经落子,请从新选择下棋位置\n");
goto there;
}
//判断输入的数字是否在1 - 9 范围内
if(choice <1 || choice > 9)
{
printf("请输入1-9范围内的数字\n");
goto there;
}
//相应的位置落下玩家的棋子
board[row][rank] = 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 (int 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("+---+---+---+\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]);
printf("+---+---+---+\n");
if (winner == 0)
{
printf("平局\n");
}
else
printf("玩家%d获胜\n",winner);
return 0;
}
PS. 这是在这里面发的第一个帖子
好神奇 为什么别人的代码可以是彩色的 我的就是黑白的!!
goto 这个关键字 其实老师教的时候说过 最好不要用 会带来意想不到的问题 我为什么会用呢
因为任性
|
|