2014-10-17 4 views
0

мне нужна помощь с игрой я делаю:Проверка симметрии в сетке с Java

Игра заключается в следующем, Есть два игрока, «B» и «N». Существует сетка символов. Оба игрока поворачиваются, чтобы поместить символ (B или N в зависимости от того, кто они) на сетке. Каждый раз, когда они помещают символ, я должен проверить, существует ли симметрия. Например. Существуют различные типы симметрий. Горизонтальная и вертикальная в каждом квадрате 2 * 2, 3 * 3 и 4 * 4, который содержит только что размещенный символ. В случае симметрии 3 * 3 средний ряд или столбец не имеет места в симметрии.

Я сделал все до сих пор, кроме симметрии. У меня с трудом получается сделать это. У меня есть идея о том, как это сделать, но индивидуально. Кто-нибудь из вас знает, как я могу делать симметрии только в одном методе?

+1

Вопрос немного широк. Что вы до сих пор пытаетесь решить проблему? –

+0

У меня есть для каждой возможной симметрии метод их решения. Например, для симметрии 2x2 я спрашиваю: , если помеченный символ совпадает с надписью, расположенной над ним, выполните следующие действия: , если символ справа от него совпадает с символом над ним: действителен симметрия , если символ слева от него совпадает с символом, указанным выше: действительная симметрия , если помеченный символ совпадает с тем, который находится под ним, выполните следующие действия: , если символ справа на нем то же, что и над ним, действительная симметрия , если символ слева от него такой же, как и над ним, действительная симметрия – Narkast

ответ

0

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; 
} 

Подобного рода вещи будут необходимы для вертикальной функции симметрии.