Исполнитель "Робот"

Govard

Новичок
Пользователь
Апр 21, 2020
22
4
3
Здравствуйте. Снова обращаюсь к Вам за помощью. Как и говорил до этого, учу питон и нашел хорошие практические задания. Не могу разобраться в задачи, а именно -
Задача №8: task_5_7
Выйти из коридора. Есть проёмы сверху или снизу.

task_5_7.png

Каждый раз спавн рандомится.

Вот чего я смог только сделать приближенно к правильному коду(наверно).

Python:
#!/usr/bin/python3

from pyrob.api import *


@task
def task_5_7():

    while not wall_is_above():
        move_right()
    else:
        while wall_is_above():
            move_right()
        else:
            while not wall_is_beneath():
                move_right()
            else:
                while wall_is_beneath():
                    move_right()




if __name__ == '__main__':
    run_tasks()

Помогите пожалуйста доставить робота по коридору к точке :)
В Поиске инфы не нашел, так же сам сидел пыхтел уже пару часов, без толку ((
 
Последнее редактирование:

Govard

Новичок
Пользователь
Апр 21, 2020
22
4
3
Команды робота
КомандаОписание
move_left(n=1)Пройти n клеток влево (по умолчанию n = 1)
move_right(n=1)Пройти n клеток вправо (по умолчанию n = 1)
move_up(n=1)Пройти n клеток вверх (по умолчанию n = 1)
move_down(n=1)Пройти n клеток вниз (по умолчанию n = 1)
wall_is_above()если сверху стена, возвращает True, иначе — False
wall_is_beneath()если снизу стена, возвращает True, иначе — False
wall_is_on_the_left()если слева стена, возвращает True, иначе — False
wall_is_on_the_right()если справа стена, возвращает True, иначе — False
fill_cell()Закрасить текущую клетку
cell_is_filled()Возвращает True, если текущая клетка закрашена
mov(r, v)Поместить значение v в регистр r
 

Rud356

Модератор
Команда форума
Модератор
Апр 5, 2020
44
21
8
Оформляйте, пожалуйста, код с помощью специальной вставки в верхней панели у сообщения рядом с эмоджи.
 

Вложения

  • chrome_voSAyyivH2.png
    chrome_voSAyyivH2.png
    7,5 КБ · Просмотры: 2
  • Мне нравится
Реакции: Govard

Govard

Новичок
Пользователь
Апр 21, 2020
22
4
3
Проблема решена!

Код:
from pyrob.api import *


@task
def task_5_7():

    while wall_is_above() or wall_is_beneath():
        move_right()


if __name__ == '__main__':
    run_tasks()
 
  • Мне нравится
Реакции: Student

borntohack

змееуст
Команда форума
Модератор
Апр 22, 2020
78
62
18
39
Москва, РФ
в таком варианте просто
Python:
while True:
    move_right()
 

Форум IT Специалистов