使用java检查网格中的对称性

时间:2014-10-17 16:53:59

标签: java static grid char symmetry

我需要帮助我正在做的游戏:

游戏如下, 有两个球员,' B'和' N' 有一个字符网格。 两个玩家轮流在网格上放置一个字符(B或N取决于他们是谁)。 每次放置一个炭,我都要检查是否存在对称性。例如。存在不同类型的对称性。每个2 * 2,3 * 3和4 * 4正方形中的水平和垂直,包含刚刚放置在此处的字符。在3 * 3对称的情况下,中间行或列不会在对称中发生。

除了对称性之外,我已经完成了所有工作。我在做这些方面有些困难。我有一个关于如何做到这一点的想法,但个别。你们中的任何人都知道如何才能在一种方法中做对称吗?

1 个答案:

答案 0 :(得分:0)

类似于你所描述的n大小网格的java代码将类似于:

boolean isHorizontallySymmetrical(char[][] grid, int n){
    int across = n / 2;

    for(int i = 0; i < n; i++){
        int right = 0
        for(int left = 0; left < across; left++){
            right = n - left - 1;

            if(grid[i][left] != grid[i][right]){
                return false;
            }
        }
    }

    return true;
}

垂直对称函数需要类似的东西。