For 循环和 if 语句表现奇怪
For loop and if statements acting odd
我正在制作国际象棋游戏,到目前为止一切都很好,我现在正在编写每件棋子的规则。问题是 for 循环的行为很奇怪。它是给主教的,所以 x 下降,y 上升。此时,每当我尝试将点添加到可能的移动时,它都会表现得很奇怪
for (int i = 0; i < 8; i++) {
Point newLoc = new Point(x-i, y+i);
if(team.equals("white")) {
if(containsPiece(newLoc)) {
if(ChessBoard.black.containsKey(newLoc)) {
possibilities.put(newLoc, rating);
break;
}
else {
break;
}
} else
possibilities.put(newLoc, rating);
}
containsPiece()
工作正常,possibilities
是 HashMap
我正在存储可能的移动。
我认为它应该是完美的,因为如果 newLoc
处的方块是白色的,则不应将其添加到可能的移动中并停止在该方向之后进行任何移动。有没有人明白为什么它似乎放弃了添加到 possibilities
的所有先前可能的移动
i
应该从 1
开始,而不是 0
,因为当 i==0
时,newLoc
是主教的位置((x-0,y+0)
), 所以你从循环中跳出,因为象是一个白色的方块。
我正在制作国际象棋游戏,到目前为止一切都很好,我现在正在编写每件棋子的规则。问题是 for 循环的行为很奇怪。它是给主教的,所以 x 下降,y 上升。此时,每当我尝试将点添加到可能的移动时,它都会表现得很奇怪
for (int i = 0; i < 8; i++) {
Point newLoc = new Point(x-i, y+i);
if(team.equals("white")) {
if(containsPiece(newLoc)) {
if(ChessBoard.black.containsKey(newLoc)) {
possibilities.put(newLoc, rating);
break;
}
else {
break;
}
} else
possibilities.put(newLoc, rating);
}
containsPiece()
工作正常,possibilities
是 HashMap
我正在存储可能的移动。
我认为它应该是完美的,因为如果 newLoc
处的方块是白色的,则不应将其添加到可能的移动中并停止在该方向之后进行任何移动。有没有人明白为什么它似乎放弃了添加到 possibilities
i
应该从 1
开始,而不是 0
,因为当 i==0
时,newLoc
是主教的位置((x-0,y+0)
), 所以你从循环中跳出,因为象是一个白色的方块。