6x6 Шахматы с двумерным массивом. Перемещение элементов в массиве. <JAVA> - PullRequest
0 голосов
/ 03 мая 2020

Это домашняя работа, которую учитель дал нам. В основном это шахматы 6x6 с 5 фигурами: 2x Гном, 1x Осел, 1x Мини-пушка, 1x Королева и 1x Король. Части могут двигаться в следующем порядке:

Гном - один квадрат вперед за раз. Когда он попадает на другой конец доски, он начинает двигаться назад по тому же правилу.

Осел - два квадрата в любом направлении, но только один раз за каждый третий ход.

Mini-gun- Один квадрат влево / вправо или вверх / вниз

Королева - один квадрат по диагонали

Король - один квадрат в любом направлении

Мой вопрос заключается в том, как заставить их двигаться в этом массиве ? Я знаю, что это, вероятно, очень легко для большинства из вас, но я все еще учусь кодировать (не только на java, но вообще).

public class TheONEChessGameYouNEVER_EXPECTED {

public static void main(String[] args) {
    String[][] board = new String[6][6];
    for (int i = 0; i < 6; i++) {
        for (int j = 0; j < 6; j++) {
            board[i][j] = "   ";
        }
    }
    for (int i = 0; i < 5; i++){
        for (int j = 1; j < 4; j++){
            board[i][j] = "   ";
        }
    }

    // Dwarfs
    board[0][0] = "wD1";
    board[0][5] = "wD2";
    board[5][0] = "bD1";
    board[5][5] = "bD2";
    // Machine-guns
    board[0][4] = "wMG";
    board[5][1] = "bMG";
    // Donkeys
    board[0][1] = "wDK";
    board[5][4] = "bDK";
    //Queens
    board[0][2] = "wQN";
    board[5][3] = "bQN";
    // Kings
    board[0][3] = "wKG";
    board[5][2] = "bKG";


    System.out.println(" ───────────────────────");
    System.out.println("│" + board[0][0] + "│" + board[0][1] + "│" + board[0][2] + "│" + board[0][3] + "│" + board[0][4] + "│" + board[0][5] + "│");
    System.out.println("-------------------------");
    System.out.println("│" + board[1][0] + "│" + board[1][1] + "│" + board[1][2] + "│" + board[1][3] + "│" + board[1][4] + "│" + board[1][5] + "│");
    System.out.println("-------------------------");
    System.out.println("│" + board[2][0] + "│" + board[2][1] + "│" + board[2][2] + "│" + board[2][3] + "│" + board[2][4] + "│" + board[2][5] + "│");
    System.out.println("-------------------------");
    System.out.println("│" + board[3][0] + "│" + board[3][1] + "│" + board[3][2] + "│" + board[3][3] + "│" + board[3][4] + "│" + board[3][5] + "│");
    System.out.println("-------------------------");
    System.out.println("│" + board[4][0] + "│" + board[4][1] + "│" + board[4][2] + "│" + board[4][3] + "│" + board[4][4] + "│" + board[4][5] + "│");
    System.out.println("-------------------------");
    System.out.println("│" + board[5][0] + "│" + board[5][1] + "│" + board[5][2] + "│" + board[5][3] + "│" + board[5][4] + "│" + board[5][5] + "│");
    System.out.println(" ───────────────────────");



  }
  }

1 Ответ

0 голосов
/ 04 мая 2020

Из того, что я понял из вашего вопроса, мой ответ состоит в том, что

вы можете создать массив 6x6 со значениями 0 и дать каждому фрагменту значение типа dwarf: 1, donkey: 2, так что n так.

когда вы хотите переместить, просто переместите их на основе значений индекса массива, например, если ферзь находится в arr [1] [3], она может перейти в arr [0] [2], arr [0 ] [4], arr [2] [2] и arr [2] [4].

...