我想提出一个国际象棋比赛,到目前为止,一切都很好,现在我写每一条规则语句。问题在于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