public Action getMove(CritterInfo info) {
count++;
Direction d = info.getDirection();
if (count < 100) {
if (info.getFront() == Neighbor.OTHER) {
return Action.INFECT;
} else {
return Action.RIGHT;
}
}
if (count >= 100) {
if (info.getFront() == Neighbor.OTHER) {
return Action.INFECT;
} else if (count/100.0 < 2.0 && count/100.0 >= 1.0 && !(d == Direction.EAST)) {
return Action.LEFT;
} else if (count/100.0 < 3.0 && count/100.0 >= 2.0 && !(d == Direction.WEST)) {
return Action.RIGHT;
} else {
return Action.HOP;
}
}
return Action.INFECT;
}
Прямо сейчас у меня есть этот код, который является частью моего критерия, и у меня проблемы с частью кода if (count >= 100)
. Я не могу уйти на восток и перейти на западный код, чтобы повторить его, потому что, когда я делю счет на 100.0, он работает только до 299, тогда он просто остается на запад, направляясь в стену. Я попытался установить инструкцию else if после моего кода на запад, указавКак сделать мой код повторяющимся?
} else if (count == 299) {
count = 0;
}
, но это также не решило мою проблему. Есть идеи? Я просто хочу, чтобы мой тварь снова и снова размахивал на восток и на запад.
Тривиальный (и, вероятно, бесполезный) ответ будет «вы можете повторить цикл« while ». Тем не менее, ваше фактическое намерение неясно, нам нужен больше контекста, чтобы дать реальный полезный ответ. – amit
Тривиальный или нет, похоже, вам нужен цикл «do-while». – Sipty
Странно, что вы используете тип с плавающей точкой для счетчика – talex