2014-07-09 233 views
-6

XO遊戲C++井字棋遊戲的C++

此代碼僅返回「這是一個領帶!」 ..我的代碼中有什麼錯誤?

#include <stdio.h> 

int main() 
{ 
char a1,b1,c1,a2,b2,c2,a3,b3,c3; 

scanf("%c%c%c\n%c%c%c\n%c%c%c",&a1,&b1,&c1,&a2,&b2,&c2,&a3,&b3,&c3); 

if(a1==b1==c1=='X'||a2==b2==c2=='X'||a3==b3==c3=='X'||a1==a2==a3=='X' 
    ||b1==b2==b3=='X'||c1==c2==c3=='X'||a1==b2==c3=='X'||c1==b2==a3=='X'){ 

    printf("X wins\n"); 

    } 

if(a1==b1==c1=='O'||a2==b2==c2=='O'||a3==b3==c3=='O'||a1==a2==a3=='O' 
    ||b1==b2==b3=='O'||c1==c2==c3=='O'||a1==b2==c3=='O'||c1==b2==a3=='O'){ 

    printf("O wins\n"); 

    } 

if(a1!=b1!=c1||a2!=b2!=c2||a3!=b3!=c3||a1!=a2!=a3 
    ||b1!=b2!=b3||c1!=c2!=c3||a1!=b2!=c3||c1!=b2!=a3){ 

    printf("It’s a Tie !!\n"); 

    } 
} 
+6

很簡單:'A1 == == B1 C1 =='X''甚至不遠程做你期待什麼。 – stefan

+0

當所有的最後一次測試結果爲真時,它確實是一個聯繫,而不僅僅是一個 – Revive

+0

請參閱_related_問題下的右側。 – P0W

回答

0
a1==b1==c1=='X' 

這不會做你認爲它。它將a1b1==c1=='X'的布爾結果進行比較,可能會給出false

要檢查它們是否都是平等的,你需要

a1=='X' && b1=='X' && c1=='X'