我正在尝试制作一个国际象棋棋盘,当我尝试插入一块棋子时,之前插入的棋子将替换为新插入的棋子。
例如,如果我插入一个塔然后插入一匹马,则该塔会变成一匹马。 (我看不到错误)。
public Board() {
this.board = new Position[row][columns];
}
for (int i = 0; i <= 1; i++) {
for (int j = 0; j <= 3; j++) {
if (i == 0) {
switch (j) {
case 0 : pieza0 = new Pieza (PiezasTipo.TORRE,PiezasColor.NEGRO);
pieza0.setId();
this.tablero[i][j].setPieza(pieza0);
pieza0 = new Pieza(PiezasTipo.TORRE, PiezasColor.NEGRO);
pieza0.setId();
this.tablero[i][fila-j].setPieza(pieza0);
pieza0 = new Pieza(PiezasTipo.TORRE, PiezasColor.BLANCO);
pieza0.setId();
this.tablero[columna-i][j].setPieza(pieza0);
pieza0 = new Pieza(PiezasTipo.TORRE, PiezasColor.BLANCO);
pieza0.setId();
this.tablero[columna-i][fila-j].setPieza(pieza0);
case 1 : pieza0 = new Pieza(PiezasTipo.CABALLO, PiezasColor.NEGRO);
pieza0.setId();
this.tablero[i][j].setPieza(pieza0);
pieza0 = new Pieza(PiezasTipo.CABALLO, PiezasColor.NEGRO);
pieza0.setId();
this.tablero[i][fila-j].setPieza(pieza0);
pieza0 = new Pieza(PiezasTipo.CABALLO, PiezasColor.BLANCO);
pieza0.setId();
this.tablero[columna-i][j].setPieza(pieza0);
pieza0 = new Pieza(PiezasTipo.CABALLO, PiezasColor.BLANCO);
pieza0.setId();
this.tablero[columna-i][fila-j].setPieza(pieza0);
我插入所有塔(4:两个黑色和两个白色),然后插入的马和塔变成马。这是实例问题还是所有片段都具有相同的存储方向?我不知道。
答案 0 :(得分:2)
我认为PiezasTipo.TORRE
在您的预期输出中转换为PiezasTipo.CABALLO
的原因(或至少原因之一)是由于{{ 1}}块。如果没有break;
语句,则在执行完case
代码块后,它将继续进入break
块。
Here is a link for a more thorough overview of the switch statement。