Я делаю шахматную игру, и до сих пор все хорошо, и сейчас я пишу правила каждой части. Проблема состоит в том, что цикл for работает нечетно. Его для епископа, так что х идет вниз, а 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
Почему существует перерыв в обоих предложениях внутреннего большинства if/else? –
Вы выходите из цикла, как только обнаруживаете черный кусок - обе ветви имеют «разрыв». – dasblinkenlight
Черным нужен перерыв таким образом, что он не добавляет никаких деталей после этого, а белый нуждается в нем, поэтому он не позволяет белой части взять белый кусок. – TheGamerPlayz