Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用java检查网格中的对称性_Java_Static_Grid_Char_Symmetry - Fatal编程技术网

用java检查网格中的对称性

用java检查网格中的对称性,java,static,grid,char,symmetry,Java,Static,Grid,Char,Symmetry,我正在做的游戏需要帮助: 游戏如下:, 有两个玩家,‘B’和‘N’。 有一个网格的字符。 两个玩家轮流放置字符B或N,具体取决于他们在网格上的身份。 每次他们放置一个字符,我都要检查是否有对称发生。例如对称有不同的类型。每2*2、3*3和4*4个方格中的水平和垂直方向,其中包含刚才放置在此处的字符。在3*3对称的情况下,中间的行或列不发生在对称中 到目前为止,除了对称性,我什么都做过。我很难做到这些。我有一个关于如何做的想法,但是个别的。你们知道我如何只用一种方法实现对称吗?类似于您描述的n×n

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

游戏如下:, 有两个玩家,‘B’和‘N’。 有一个网格的字符。 两个玩家轮流放置字符B或N,具体取决于他们在网格上的身份。 每次他们放置一个字符,我都要检查是否有对称发生。例如对称有不同的类型。每2*2、3*3和4*4个方格中的水平和垂直方向,其中包含刚才放置在此处的字符。在3*3对称的情况下,中间的行或列不发生在对称中


到目前为止,除了对称性,我什么都做过。我很难做到这些。我有一个关于如何做的想法,但是个别的。你们知道我如何只用一种方法实现对称吗?

类似于您描述的n×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;
}

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

问题有点大。到目前为止,你们有什么办法来解决这个问题呢?对于每一种可能的对称性,我都有一种方法来解决它们。例如,对于2x2对称,我问:如果放置的字符与上面的字符相同,请执行以下操作:如果右侧的字符与上面的字符相同:如果左侧的字符与上面的字符相同,则为有效对称:如果放置的字符与下面的字符相同,则为有效对称,执行以下操作:如果右侧的字符与其上方的字符相同,则为有效对称如果左侧的字符与其上方的字符相同,则为有效对称