2011-04-05 121 views
2

我正在做一个C作业,我们需要制作一个可以在两个玩家之间玩的井字游戏。在这一点上,我的所有代码都在工作,除了查找获胜者的函数之外。下面是我测试过的游戏结果的一个例子:如何将一个char变量与另一个char变量进行比较?

0 1 2 
0 |x| 
    ----- 
1 |o| 
    ----- 
2 |x| 
Congratulations to player 1! You won! 

对此我说,不。不,玩家1肯定没有赢。我的检查是如果(原谅)一系列嵌套语句,像这样:

... 
else if (gameboard[0][1] != ' ') 
    if (gameboard[1][1] == gameboard[0][1]) 
     if(gameboard[2][1] == gameboard[1][1]) 
      return 1; 
... 

游戏键盘[0] [1]是一种'x'值,但比较说,游戏键盘[1] [1]等于它。为什么会发生这种情况,我该如何解决?

+0

你可能有一个'='这应该是一个''==在你的代码 - 你复制/粘贴,这里摘录或重新输入呢?我们需要看到更多的细节来告诉你哪里出了问题。没有什么东西看起来明显错了,你已经显示出来了。 – 2011-04-05 01:02:05

+0

您将需要发布代码,显示如何声明/创建'gameboard'以及如何为其分配内容。 '=='当然是你如何比较两个'char'值。 – 2011-04-05 01:03:42

+0

让您的程序打印出游戏板[0]和游戏板[1],以便您可以验证字符串是您认为应该是的。 – 2011-04-05 01:04:31

回答

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 
相关问题