用java检查网格中的对称性
我正在做的游戏需要帮助: 游戏如下:, 有两个玩家,‘B’和‘N’。 有一个网格的字符。 两个玩家轮流放置字符B或N,具体取决于他们在网格上的身份。 每次他们放置一个字符,我都要检查是否有对称发生。例如对称有不同的类型。每2*2、3*3和4*4个方格中的水平和垂直方向,其中包含刚才放置在此处的字符。在3*3对称的情况下,中间的行或列不发生在对称中用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
到目前为止,除了对称性,我什么都做过。我很难做到这些。我有一个关于如何做的想法,但是个别的。你们知道我如何只用一种方法实现对称吗?类似于您描述的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对称,我问:如果放置的字符与上面的字符相同,请执行以下操作:如果右侧的字符与上面的字符相同:如果左侧的字符与上面的字符相同,则为有效对称:如果放置的字符与下面的字符相同,则为有效对称,执行以下操作:如果右侧的字符与其上方的字符相同,则为有效对称如果左侧的字符与其上方的字符相同,则为有效对称