2011-04-05 98 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 
相關問題