题
我想提出一个圈与叉游戏(井字),在我的逻辑类别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,它是一种思维方式不同,它需要练习,所以练的多,你可以!
不隶属于 StackOverflow