Как я могу поменять местами строки в массиве 2d строки - PullRequest
0 голосов
/ 02 мая 2020

У меня есть домашняя работа, чтобы сделать нестандартную версию шахмат размером 6x6, и фигуры перемещаются определенным образом c. Но сейчас я пытаюсь выяснить, как выбрать кусок, а затем поместить его в другое место внутри 2-го массива, который я настроил, и поменять местами символы. На данный момент у меня есть:

public class Chess {

    static final int rows = 7;
    static final int columns = 7;

    public static void main(String[] args) {
        String[][] board = new String[rows][columns];
        fillBoard(board);
        enterMove();
    }
    public static void fillBoard(String[][] board){
        for (int row = 0; row < 7; row++) {
            for (int col = 0; col < 7; col++) {
                board[row][col] = " X ";
                outerShell(board);
                pawns(board);
                System.out.print(board[row][col]);
            }
            System.out.println();
        }
    }
    public static void outerShell(String[][] board){
        board[0][0] = "   ";
        board[0][1] = " A ";
        board[0][2] = " B ";
        board[0][3] = " C ";
        board[0][4] = " D ";
        board[0][5] = " E ";
        board[0][6] = " F ";
        board[1][0] = " 6 ";
        board[2][0] = " 5 ";
        board[3][0] = " 4 ";
        board[4][0] = " 3 ";
        board[5][0] = " 2 ";
        board[6][0] = " 1 ";
    }
    public static void pawns(String[][] board){
        //whitePawns
        board[1][1] = "wDw";
        board[1][2] = " wD";
        board[1][3] = " wQ";
        board[1][4] = " wK";
        board[1][5] = " wM";
        board[1][6] = " wDw ";
        //blackPawns
        board[6][1] = "bDw";
        board[6][2] = " bM";
        board[6][3] = " bK";
        board[6][4] = " bQ";
        board[6][5] = " bD";
        board[6][6] = " bDw";
    }
    public static void enterMove(){
        System.out.println("");
        System.out.println("Select the piece you want to move(Example a1) if you want to quit enter: q");
        Scanner gameInput  = new Scanner(System.in);
        String pieceSelect = gameInput.nextLine();
        if(pieceSelect.equals("q")){
            System.exit(0);
        }
        switch (pieceSelect){
            case "a1": 

        }
        System.out.println(" ");
        System.out.println("Now select a finishing position for the piece to move to");
        String piecePlace = gameInput.nextLine();
        switch (piecePlace){
            case "a2": 
        }
    }
}

В разделе enterMove() я пытаюсь сделать это с switch, но не знаю, как поменять две позиции в массиве. Я не зациклен на использовании switch, потому что я не уверен, возможно ли это вообще. Если кто-то может создать версию этого кода, в которой путем ввода указанных c координат (например, a1) выбирается bDw, затем вводится другая координата и выполняется замена bDw на X, который я использую в качестве индикатора для пустого пространства. и если возможно объяснить это, я был бы признателен.

1 Ответ

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

Я сделал шахматную программу раньше, и я использовал для хранения всех фигур в массиве (здесь в массиве 6x6), и я использовал значения индекса в качестве координат доски. Поэтому при выборе фигуры вызывается функция, которая показывает действительные ходы выбранной фигуры.

Действительные ходы могут быть сохранены в некотором массиве и могут быть проверены. Затем просто поменяйте местами значения внутри самого массива.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...