我想提出一个圈与叉游戏(井字),在我的逻辑类别i表示与二维数组的游戏的状态,但是这是问题,即时消息检查,像这样的阵列

 if(gameModel[0][0] == gameModel[1][1] && gameModel[0][0] == gameModel[2][2]){
     return true;
    }
 if(gameModel[2][0] == gameModel[1][1] && gameModel[2][0] == gameModel[0][2]){
     return true;
    }

等所有8个条件,然而,阵列被初始化以在开始的0的所有值,所以它总是发现3个匹配值,我怎样才能克服这个问题,而无需改变我的代码的整个

感谢

有帮助吗?

解决方案

在这种情况下,你只需要添加一个检查,如果值设置:

if (   gameModel[0][0] == gameModel[1][1] 
    && gameModel[0][0] == gameModel[2][2] 
    && gameModel[0][0] != 0) {
 return true;
}

其他提示

这是在我这个跳出的一件事是你为什么要使用int,而不是一个类来表示呢?真正的这是一个简单的游戏,而是一块类似乎跳出一个相当明显的阶级有。

此外,与诠释你真的有3个国家,大概是这样的:

0 = empty
1 = X
2 = Y

所以,你应该费心去检查,如果他们是相同的值,这将是更快之前检查0(空)(谁真正关心不过,这并不需要要快),并让更多的逻辑意义(是正方形空?如果是这样则不用检查如果平方保持相同的值)。

即使是这样简单的事情,尤其是当你刚刚起步的,试图拥抱OOP,它是一种思维方式不同,它需要练习,所以练的多,你可以!

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top