Код: Выделить всё
public void deploy(){
while (true) {
if (isFrontClear() && !isBoundary()) {
move();
System.out.println("basic moving");
while(isFacingNorth() || isFacingSouth() || isFacingWest()){
System.out.println("entering first while loop");
if(!isBottomWall() && isFrontClear() || !isBottomWall() && isFrontWall()){
turnRight();
move();
}
if (isBottomWall() && isFrontClear()) {
move();
while(isFacingEast() || isFacingNorth()){
System.out.println("entering if state in for loop");
System.out.println("entering do while");
if (isFrontWall() && isBottomWall()){
turnLeft();
System.out.println("turningLeft");
} else if (isBottomWall() && isFrontClear()){
move();
System.out.println("moving");
} else {
turnRight();
move();
}
}
} else if(isBottomWall() && isFrontWall()){
turnLeft();
} else {
break;
}
}
} else if (isFrontWall() && !isBoundary()) {
turnLeft();
System.out.println("basicturnLeft");
} else {
break;
}
}
}
public void task(){
deploy();
}
public static void main(String[] args) {
Boxing boxy = new Boxing();
boxy.runTask();
}
}
Код работает хорошо, весь код 2d робот и некоторые команды, я плохо разбираюсь в структурах кода, я просто вставил несколько циклов и вложил их, только одна основная проблема при его выполнении. Я ожидаю, что он запустит внутренний цикл и условие внутри него, но выполняет только внешние условия. .
У меня есть вложенные циклы, все условия работают, за исключением того, что он пропускает поведение, как будто он должен выполнять оператор условия внутри цикла while, но выполняет только внешний условный оператор
Пс. У него есть карта, я попробовал 4maps, и его код работает хорошо, я создал еще одну карту, затем возникает проблема: она не обнаруживается по пути или, я мог бы сказать, пропускает процесс, который, как я ожидал, он выполнит
Подробнее здесь: https://stackoverflow.com/questions/789 ... ne-of-code