0

宿題用にチェス ゲームを作成していますが、グリッドの作成に問題があります。私は周りを検索しましたが、特に探しているものを見つけることができませんでした。

チェス盤とチェスの駒を正常に作成できましたが、グリッドに 2 つの境界線 (テキストの水平線 (A から H) と垂直線 (8 から 1)) でラベルを付ける必要があります。水平方向の境界線を配置することはできましたが、垂直方向の境界線をチェス盤の適切な行に揃えることができません。写真をアップロードしますが、現在、評判ポイントはまだ十分です。これが役立つかどうかお知らせください。何か解決できます。

コードでわかるように、2D 配列を使用してグリッドを作成し、列挙型クラスを介してピースを割り当てました。enum クラスに境界線の値を追加し、チェスの駒に位置を割り当てるループ内にそれらを配置することを考えていましたが、これが私の講師の意図とは思えません。

提案やアドバイスをいただければ幸いです。

public class VirtualChess {

public enum Chessmen{
    WHITE_KING, 
    WHITE_QUEEN, 
    WHITE_ROOK, 
    WHITE_BISHOP, 
    WHITE_KNIGHT,
    WHITE_PAWN, 
    BLACK_KING, 
    BLACK_QUEEN, 
    BLACK_ROOK, 
    BLACK_BISHOP, 
    BLACK_KNIGHT, 
    BLACK_PAWN, 
    EMPTY
}

public static void printBoard (Chessmen [] [] chessboard){ //A method to print out chessboard
    System.out.println("\tA\tB\tC\tD\tE\tF\tG\tH"); //This the horizontal border of the grid
    System.out.println("1\n2\n3\n4\n5\n6\n7\n8"); //This the vertical border of the grid. This is faulty.
    for(int i = 0; i < chessboard.length; i ++){ 
        for (int j = 0; j < chessboard.length; j ++){
            switch (chessboard [i] [j]){
            case WHITE_KING: System.out.print("\u2654" + "\t"); break; //This places the Unicode characters of the chess pieces
            case WHITE_QUEEN: System.out.print("\u2655"+ "\t"); break;
            case WHITE_ROOK: System.out.print("\u2656" + "\t"); break;
            case WHITE_BISHOP:  System.out.print("\u2657" + "\t"); break;
            case WHITE_KNIGHT: System.out.print("\u2658" + "\t"); break;
            case WHITE_PAWN: System.out.print("\u2659" + "\t"); break;
            case BLACK_KING: System.out.print("\u265A" + "\t"); break;
            case BLACK_QUEEN: System.out.print("\u265B" + "\t"); break;
            case BLACK_ROOK:  System.out.print("\u265C" + "\t"); break;
            case BLACK_BISHOP: System.out.print("\u265D" + "\t"); break;
            case BLACK_KNIGHT:  System.out.print("\u265E"+ "\t"); break;
            case BLACK_PAWN:  System.out.print("\u265F" + "\t"); break;
            default: System.out.print(" " + "\t"); break;         
            }
       }    

            System.out.println("");

    }
}

public static void main(String[] args) {

    Chessmen[][] chessboard = new Chessmen[8][8];

    for(int i = 0; i < 8; i ++){ //Making the 8 x 8 chessboard
        for (int j = 0; j < 8; j ++){
            if ( (i >= 2 && i <= 5) && (j <= 7)){
                chessboard [i] [j] = Chessmen.EMPTY;        //Assigning the chess pieces their starting positions
            } else {

            chessboard [0] [0] = Chessmen.BLACK_ROOK;
            chessboard [0] [7] = Chessmen.BLACK_ROOK;
            chessboard [7] [0] = Chessmen.WHITE_ROOK;
            chessboard [7] [7] = Chessmen.WHITE_ROOK;

            chessboard [0] [1] = Chessmen.BLACK_KNIGHT;
            chessboard [0] [6] = Chessmen.BLACK_KNIGHT;
            chessboard [7] [1] = Chessmen.WHITE_KNIGHT;
            chessboard [7] [6] = Chessmen.WHITE_KNIGHT;

            chessboard [0] [2] = Chessmen.BLACK_BISHOP;
            chessboard [0] [5] = Chessmen.BLACK_BISHOP;
            chessboard [7] [2] = Chessmen.WHITE_BISHOP;
            chessboard [7] [5] = Chessmen.WHITE_BISHOP;

            chessboard [0] [3] = Chessmen.BLACK_QUEEN;
            chessboard [7] [3] = Chessmen.WHITE_QUEEN;

            chessboard [0] [4] = Chessmen.BLACK_KING;
            chessboard [7] [4] = Chessmen.WHITE_KING;

            chessboard [1] [0] = Chessmen.BLACK_PAWN;
            chessboard [1] [1] = Chessmen.BLACK_PAWN;
            chessboard [1] [2] = Chessmen.BLACK_PAWN;
            chessboard [1] [3] = Chessmen.BLACK_PAWN;
            chessboard [1] [4] = Chessmen.BLACK_PAWN;
            chessboard [1] [5] = Chessmen.BLACK_PAWN;
            chessboard [1] [6] = Chessmen.BLACK_PAWN;
            chessboard [1] [7] = Chessmen.BLACK_PAWN;

            chessboard [6] [0] = Chessmen.WHITE_PAWN;
            chessboard [6] [1] = Chessmen.WHITE_PAWN;
            chessboard [6] [2] = Chessmen.WHITE_PAWN;
            chessboard [6] [3] = Chessmen.WHITE_PAWN;
            chessboard [6] [4] = Chessmen.WHITE_PAWN;
            chessboard [6] [5] = Chessmen.WHITE_PAWN;
            chessboard [6] [6] = Chessmen.WHITE_PAWN;
            chessboard [6] [7] = Chessmen.WHITE_PAWN;
            }
        }
    } 
    printBoard(chessboard);
}

}

4

1 に答える 1

0

私は同じタスクを実行しており、私が見つけたラベリングの解決策は次のとおりです。

    System.out.println("\tA\tB\tC\tD\tE\tF\tG\tH");

      for(int i = 0; i < chessboard.length; i ++){ 

            System.out.print((i+1) + "\t");

      for (int j = 0; j < chessboard[0].length; j ++){ 
于 2013-10-13T16:11:09.027 に答える