gpt4 book ai didi

java - 需要java国际象棋程序的帮助

转载 作者:行者123 更新时间:2023-11-30 05:21:04 24 4
gpt4 key购买 nike

我有一个项目要做,但我完全陷入困境,对如何继续我的代码没有想法和灵感。我有关于如何编写代码的某些任务和规范。这意味着代码应该至少包含以下类和方法:

  1. 2 个枚举,一个用于颜色(白色和黑色),一个称为 ClassPieceType,表示 KING、QUEEN...
  2. ChessPiece,这是一个抽象类,以及继承自 ChessPiece 的 King、queen 等类型的所有类。
  3. 代表棋盘的棋盘,上面有棋盘上的所有数字。但不知怎的,我无法在董事会上取得进展,而且我不知道如何实现这些方法。
package chess;

public class Board {

public static String[][] chessBoard2() {
String[][] board = new String[8][8];

char letter = 'a';
int number;

for (int row = 0; row < board.length; row++) {
number = 8;
for (int column = 0; column < board[0].length; column++) {
board[row][column] = Character.toString(letter) + number;
number--;
}
letter++;
}
return board;
}
}

这是我的创建板方法的想法。但任务说

  1. Method has to be public Board() which creates the board in his normal state, and with unicode you have to add the pieces.

但我也不知道如何实现 unicode。它又是如何被称为公共(public)董事会的呢?没有返回类型。我只是不知道更多了。我希望有极大耐心的人可以帮助我。我实在是太无能了,不会编程,几天后我们就得交任务了。

最佳答案

"1. Method has to be public Board() which creates the board in his normal state [...]"

令人困惑的是,这样的东西不被称为“方法”,而是被称为“构造函数”。它初始化您要创建的对象。目标是,当您编写 new Board() 时,它会使用国际象棋的起始位置初始化棋盘,类似于您使用 chessBoard2() 方法尝试的操作。 Board 类可以如下所示:

public class Board {
private final String[][] board;

public Board() {
this.board = new String[8][8];

Board.fillFirstLine(this.board, 8, Color.BLACK);
Board.fillPawnLine(this.board, 7, Color.BLACK);
Board.fillPawnLine(this.board, 2, Color.WHITE);
Board.fillFirstLine(this.board, 1, Color.WHITE);
}

private static void fillFirstLine(String[][] board, int rowNumber, Color color) {
// ...
}

private static void fillPawnLine(String[][] board, int rowNumber, Color color) {
// ...
}
}

然后你在其他地方写

Board board = new Board();

并且您已经有了一个完全初始化的板可以使用。

"[...] and with unicode you have to add the pieces."

棋子图标存在于 unicode 字符集中,请参阅 Chess symbols in Unicode 。这意味着您可以将字符串 "\u2654" 或字符串 "♔" 保存在数组内,以使该片段位于给定位置。

关于java - 需要java国际象棋程序的帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59561934/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com