簡體   English   中英

具有二維數組的 6x6 國際象棋。 移動數組中的元素。<java></java>

[英]6x6 Chess with two dimensional array. Moving elements in an array. <JAVA>

這是老師給我們的作業。 它基本上是一個 6x6 國際象棋,有 5 個棋子:2x 矮人、1x 驢、1x 迷你槍、1x 皇后和 1x 國王。 棋子可以按以下順序移動:

矮人 - 一次向前一個方格。 當它碰到棋盤的另一端時,它開始按照相同的規則向后移動。

驢 - 任何方向的兩個方格,但每三步只有一次。

迷你槍- 左/右或上/下一個方格

女王 - 對角線一個正方形

國王 - 任何方向的一個正方形

我的問題是如何讓它們在這個數組中移動? 我知道這對你們大多數人來說可能很容易,但我仍在學習編碼(不是專門針對 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(" ───────────────────────");



  }
  }

根據我從您的問題中了解到的情況,我的回答是

您可以創建一個值為 0 的 6x6 數組,並為每個部分賦予一個值,例如 dwarf:1, donkey:2, so n so。

當你想移動時,只需根據數組的索引值移動它們,例如,如果皇后在 arr[1][3] 中,它可以移動到 arr[0][2]、arr[0][4]、 arr[2][2] 和 arr[2][4]。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM