2014-07-09 187 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'