我想提出一個國際象棋比賽,到目前爲止,一切都很好,現在我寫每一條規則語句。問題在於for循環奇怪地行事。它的主教,所以x正在下降,y正在上升。在這一點上它的行爲很奇怪,每當我試着點添加到一個可能的移動For循環,如果行事古怪
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
爲什麼會出現在最內層的if/else的兩個條款休息一下? –
只要發現一塊黑色的碎片,你就會跳出循環 - 兩個分支都有一個「中斷」。 – dasblinkenlight
黑色需要休息一下,它不會在那個之後添加任何碎片,而白色需要它,所以它不允許白色碎片取白色。 – TheGamerPlayz