Форум сайта python.su
Sevastian
Реализуйте элементарный алгоритм выхода из любого лабиринта - правило одной руки - и вы решите сразу все подобные задачи
Офлайн
FishHookправило это работает только когда мы заходим в лабиринт с какой то заданной точки, а по заданию робот уже в лабиринте и выход есть, знаем что он сверху но не знаем где
SevastianРеализуйте элементарный алгоритм выхода из любого лабиринта - правило одной руки - и вы решите сразу все подобные задачи
Отредактировано Sevastian (Янв. 22, 2020 15:41:04)
Офлайн
Sevastian
а как правильно с задачей 18 справиться?
цикл пока справа_нет_стены выполнять
шагнуть вправо
конец цикла
цикл пока слева_нет_стены выполнять
если сверху_нет_стены то
выйти из цикла
конец если
шагнуть влево
конец цикла
цикл пока сверху_нет_стены выполнять
шагнуть вверх
конец цикла
цикл пока слева_нет_стены выполнять
шагнуть влево
конец цикла
[guest@localhost pyrob]$ python3 task_18.py
INFO:pyrob:Starting task task_8_28
INFO:pyrob:Task task_8_28 finished: +
INFO:pyrob:Total: 1/1
[guest@localhost pyrob]$
Офлайн
SevastianА если хорошо подумать, то всё прекрасно работает.
Офлайн
py.user.nextне работает в случае если выход находится сразу над роботом, как обойти?
Офлайн
SevastianЧего не работает? Скидывай код сюда.
не работает в случае если выход находится сразу над роботом, как обойти?
Офлайн
Увидел, тут люди скидывали свои варианты решения Задача №30: task_9_3
Решил поделиться своим
from pyrob.api import * @task(delay=0.15) def task_9_3(): # Check size x = 0 while not wall_is_on_the_right(): move_right() x += 1 else: move_left(x) ############ base = x while x > 1: for i in range (x): move_right() if not i == x-1: fill_cell() for i in range (x): move_down() if not i == x-1: fill_cell() for i in range (x): move_left() if not i == x-1: fill_cell() for i in range (x): move_up() if not i == x-1: fill_cell() move_down() move_right() x -= 2 else: move_down(int(base/2)) move_left(int(base/2)) if __name__ == '__main__': run_tasks()
Офлайн
Здравствуйте! не могу решить задачу, застрял https://mipt-cs.github.io/python3-2017-2018/labs/lab2.html#o13-task-8-10 (Задача №13: task_8_10)
вот мой код
когда две стенки сверху и снизу он перепрыгивает на след., не могу понять как нужно исправить
while wall_is_beneath() and wall_is_above():
move_right()
if wall_is_above():
move_down()
fill_cell()
move_up()
elif wall_is_beneath():
move_up()
fill_cell()
move_down()
elif not wall_is_beneath() and not wall_is_above():
move_down()
fill_cell()
move_up(2)
fill_cell()
move_down()
while not wall_is_on_the_right():
move_right()
if wall_is_beneath() and wall_is_above():
move_right()
elif wall_is_above():
move_down()
fill_cell()
move_up()
elif wall_is_beneath():
move_up()
fill_cell()
move_down()
elif not wall_is_beneath() and not wall_is_above():
move_down()
fill_cell()
move_up(2)
fill_cell()
move_down()
Большое спасибо!
Офлайн
Офлайн
Большое вам спасибо!!
Офлайн