圈叉棋游戏c语言编写圈叉棋游戏c语言编写
/*
圈叉棋练习
*/
#include
int main() {
int map[3][3] = {}; /*纪录棋盘状态的二维数组
每个变量对应一个位置
0表示空位置 1表示第一个棋手的棋子 2表示第二个棋手的棋子*/
int num = 0; //棋盘上的棋子个数
int posy = 0 /*下一个棋子的行号*/,
posx = 0/*下一个棋子的列号*/;
int player = 1; /*下一个棋手,
1表示第一个棋手,
2表示第二个棋手...
圈叉棋游戏c语言编写
/*
圈叉棋练习
*/
#include
int main() {
int map[3][3] = {}; /*纪录棋盘状态的二维数组
每个变量对应一个位置
0示空位置 1表示第一个棋手的棋子 2表示第二个棋手的棋子*/
int num = 0; //棋盘上的棋子个数
int posy = 0 /*下一个棋子的行号*/,
posx = 0/*下一个棋子的列号*/;
int player = 1; /*下一个棋手,
1表示第一个棋手,
2表示第二个棋手*/ int win = 0; /*纪录比赛结果
0表示和棋
1表示第一个棋手赢
2表示第二个棋手赢*/
int row = 0, col = 0; //循环变量
printf("***\n***\n***\n");
//每循环一次游戏进行一步
for (num = 0;num <= 8;num++) { //获得下一个棋子的位置
do {
printf("请输入下一个棋子的位置:");
scanf("%d %d", &posy, &posx);
posx--;
posy--;
} while (posx < 0 || posx > 2 || posy < 0 || posy > 2 || map[posy][posx]);
//修改数组中纪录的棋盘状态
map[posy][posx] = player;
//打印变化后的棋盘
for (row = 0;row <= 2;row++) {
for (col = 0;col <= 2;col++) {
if (!map[row][col]) {
printf("*");
}
else if (map[row][col] == 1) {
printf("O");
}
else {
printf("X");
}
}
printf("\n");
}
//修改当前棋手
player = 3 - player;
//判断输赢
if (map[0][0] && map[0][0] == map[0][1]
&& map[0][1] == map[0][2]) {
win = map[0][0];
break;
}
if (map[1][0] && map[1][0] == map[1][1] && map[1][1] == map[1][2]) {
win = map[1][0];
break;
}
if (map[2][0] && map[2][0] == map[2][1]
&& map[2][1] == map[2][2]) {
win = map[2][0];
break;
}
if (map[0][0] && map[0][0] == map[1][0]
&& map[1][0] == map[2][0]) { win = map[0][0];
break;
}
if (map[0][1] && map[0][1] == map[1][1]
&& map[1][1] == map[2][1]) {
win = map[0][1];
break;
}
if (map[0][2] && map[0][2] == map[1][2]
&& map[1][2] == map[2][2]) {
win = map[0][2];
break;
}
if (map[0][0] && map[0][0] == map[1][1] && map[1][1] == map[2][2]) {
win = map[0][0];
break;
}
if (map[0][2] && map[0][2] == map[1][1]
&& map[1][1] == map[2][0]) {
win = map[0][2];
break;
}
}
//提示游戏结果
if (!win) {
printf("和棋\n");
}
else if (win == 1) {
printf("O赢了\n");
}
else {
printf("X赢了\n");
}
return 0;
}
本文档为【圈叉棋游戏c语言编写】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。