Форум сайта python.su
В Pascal'e и КуМир'e тоже есть робот исполнитель
И в них есть команды:
FreeFromRight – возвращает True если справа от Робота свободно; (Pascal)
если справа свободно то (КуМир)
Нужна точно такая же команда в Python3, которая будет проверять свободно ли с нужной мне стороны. Я же нашел только команду, которая проверяет есть ли стена wall_is_on_the_left() если слева стена, возвращает True, иначе — False
Есть идеи?
Заранее благодарен за помощь
Офлайн
В КуМире многие команды избыточны, то есть их можно заменить другими.
http://test.kumir.su/Syntax%20Kumir.htm
Так, например, если слева стена, то уже ясно, что слева не свободно. Зачем отдельную команду иметь “слева свободно”, если можно просто применить отрицание (даже не имея операции отрицания)? То есть система команд избыточна.
ProrokiusНу потому там и нет этой команды. Есть операция отрицания (not), которую можно применить к команде “слева стена”.
Я же нашел только команду, которая проверяет есть ли стена wall_is_on_the_left()
Отредактировано py.user.next (Июль 22, 2018 06:44:53)
Офлайн
py.user.next
В КуМире многие команды избыточны, то есть их можно заменить другими.http://test.kumir.su/Syntax%20Kumir.htmТак, например, если слева стена, то уже ясно, что слева не свободно. Зачем отдельную команду иметь “слева свободно”, если можно просто применить отрицание (даже не имея операции отрицания)? То есть система команд избыточна.
Офлайн
py.user.nextЗатем, что слева может быть ящик, другой робот и также стена. Ящик и робот могут переместиться, а со стеной это не произойдет и например, ждать бессмысленно. В крайнем случае в стене можно сделать проход, если это какая-то боевая симуляция. Так что отдельная функция просто необходима.
Так, например, если слева стена, то уже ясно, что слева не свободно. Зачем отдельную команду иметь “слева свободно”, если можно просто применить отрицание (даже не имея операции отрицания)? То есть система команд избыточна.
Отредактировано Vladimirv (Июль 22, 2018 17:53:35)
Офлайн
Исполнитель Робот
http://judge.mipt.ru/mipt_cs_on_python3/labs/lab2.html
Команды робота
Команда Описание
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
Отредактировано py.user.next (Июль 22, 2018 23:18:40)
Офлайн
py.user.nextЕще один вопрос по этому роботу
Исполнитель Роботhttp://judge.mipt.ru/mipt_cs_on_python3/labs/lab2.html
Отредактировано Prorokius (Июль 23, 2018 00:07:20)
Офлайн
Дойти до конца тупика. Тупик имеет форму буквы Г (влево или вправо). Размеры тупика не известны.Сначала надо пройти вверх до упора. Потом надо определить сторону, куда поворачивает тупик. Потом надо идти в правильную сторону.
while не_наверху
идти_вверх
if справа_свободно
while не_в_правом_конце
идти_вправо
else
while не_в_левом_конце
идти_влево
Отредактировано py.user.next (Дек. 19, 2019 14:47:50)
Офлайн
py.user.nextВсем привет. У меня возникли проблемы с задачей №10: task_8_3 (Закрасить клетки. Расстояние до стены не известно.) не получается сделать все правильно. Помогите с решением.
Исполнитель Робот
http://judge.mipt.ru/mipt_cs_on_python3/labs/lab2.html
Офлайн
sdl5Закрашиваются только те клетки, сверху или снизу которых есть стена.
У меня возникли проблемы с задачей №10: task_8_3 (Закрасить клетки. Расстояние до стены не известно.)
if сверху_стена or снизу_стена
закрасить_клетку
while справа_свободно
идти_вправо
if сверху_стена or снизу_стена
закрасить_клетку
Отредактировано py.user.next (Дек. 19, 2019 14:48:23)
Офлайн
Есть Задача №21: task_4_11. Нашел похожую для КуМира. А как будет выглядеть решение для задачи #21 на питоне?
Ряд { int n; направо; цикл ( n=1; n<=6; n=n+1 ) { повтори ( n ) { вперед ( 1 ); посади; } направо; вперед ( 1 ); налево; назад ( n ); } } направо; вперед ( 1 ); налево; назад ( n ); }
Прикреплённый файлы:
robot.jpg (38,0 KБ)
Офлайн