我正在C中完成一项家庭作业,我们需要制作一个可以在两个玩家之间玩的井字游戏。我的所有代码都在这一点上工作,除了检查找到胜利者的功能。这是我测试过的游戏结果的一个例子:
0 1 2
0 |x|
-----
1 |o|
-----
2 |x|
Congratulations to player 1! You won!
我说,不。不,球员1肯定没赢。我的检查是(原谅我)一系列嵌套的if语句,如:
...
else if (gameboard[0][1] != ' ')
if (gameboard[1][1] == gameboard[0][1])
if(gameboard[2][1] == gameboard[1][1])
return 1;
...
gameboard [0] [1]是'x'
值,但比较表明gameboard [1] [1]等于它。为什么会发生这种情况?如何解决?
答案 0 :(得分:1)
您的游戏板的设置可能与您的想法不同。
#include <stdio.h>
int main()
{
char gameboard[3][3] =
{ {' ', 'x', ' '},
{' ', 'o', ' '},
{' ', 'x', ' '}
};
if (gameboard[0][0] == ' ')
{
printf("0,0 is empty\n");
}
if (gameboard[0][1] != ' ')
{
printf("0,1 has %c\n", gameboard[0][1]);
}
if (gameboard[1][1] == gameboard[0][1])
{
printf("1,1 equals 0,1\n");
}
else
{
printf("1,1 is different from 0,1\n");
}
}
<强>输出:强>
0,0 is empty
0,1 has x
1,1 is different from 0,1