我正在用Java编写井字游戏,但不确定是否有更快/更容易的方法来检查获胜者。

if ( boardArray[0][0] == boardArray[0][1] && boardArray[0][0] == boardArray[0][2]) {
        System.out.println("The wimmer is: " + boardArray[0][0]);
    } else if ( boardArray[1][0] == boardArray[1][1] && boardArray[1][0] == boardArray[1][2]) {
        System.out.println("The wimmer is: " + boardArray[1][0]);
    } else if ( boardArray[2][0] == boardArray[2][1] && boardArray[2][0] == boardArray[2][2]) {
        System.out.println("The wimmer is: " + boardArray[2][0]);
    } else if ( boardArray[0][0] == boardArray[1][0] && boardArray[0][0] == boardArray[2][0]) {
        System.out.println("The wimmer is: " + boardArray[0][0]);
    }else if ( boardArray[0][1] == boardArray[1][1] && boardArray[0][1] == boardArray[2][1]) {
        System.out.println("The wimmer is: " + boardArray[0][1]);
    } else if ( boardArray[0][2] == boardArray[1][2] && boardArray[0][2] == boardArray[2][2]) {
        System.out.println("The wimmer is: " + boardArray[0][2]);
    } else if ( boardArray[0][0] == boardArray[1][1] && boardArray[0][0] == boardArray[2][2]) {
        System.out.println("The wimmer is: " + boardArray[0][0]);
    } else if ( boardArray[0][2] == boardArray[1][1] && boardArray[0][2] == boardArray[2][0]) {
        System.out.println("The wimmer is: " + boardArray[1][1]);
    } else {
        System.out.println("ITS A DRAW");
    }


我知道我可以使用for循环遍历不同的索引,但这只会使代码行减少约2/3,因此不会有太大的不同

最佳答案

我知道我可以使用for循环遍历不同的索引,但这只会使代码行减少约2/3,因此不会有太大的区别。


您可以继续使用循环来改进代码,因为它不仅可以减少代码行数,而且还可以为您带来很多好处。它可以改善您的:


可维护性

要编辑代码,您只需要编辑一次即可,而不是进行n次编辑,其中n是它应该经历的迭代次数。
可扩展性

这可能不是一个很好的例子,但是假设您想将电路板更改为4 x4。使用循环,您可能只需要更新电路板尺寸即可。所有其他代码几乎都保持不变。
可读性

该代码的一个实例比多行重复更容易阅读。
减少打字错误的机会

更少的代码,更少的印刷错误。
使调试更容易

由于提高了可读性,错误查找和调试实际上将更加容易。

07-24 14:53