Предмет: Информатика, автор: aleksandrcamaro34

Исполнитель Робот умеет перемещаться по лабиринту, начерченному на плоскости,
разбитой на клетки. Между соседними (по сторонам) клетками может стоять стена, через
которую Робот пройти не может. У Робота есть четыре команды перемещения на одну
клетку: вверх, вниз, влево, вправо. Если Робот получит команду передвижения сквозь
стену, то он разрушится. Также у Робота есть команда закрасить, при которой
закрашивается клетка, в которой Робот находится в настоящий момент.
Составьте программу, с помощью которой Робот рисует узор (см. рисунок ниже).
Начальное положение Робота левом верхнем углу.​

Приложения:

Ziorar: это в Кумире нужно сделать?
aleksandrcamaro34: да
Ziorar: попробую тогда, правда это совсем не быстро будет, думаю
aleksandrcamaro34: ок

Ответы

Автор ответа: Ziorar
5

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

использовать Робот

алг

нач

цел ш,о,г=0,в=0

лог прав=да

нц

выбор

при mod(в,4)=0: ш:=4; о:=2

при mod(в,4)=2: ш:=4; о:=0

иначе ш:=2; о:=1

все

если mod(г,ш)=о то закрасить все

выбор

при прав и справа свободно: г:=г+1; вправо

при не прав и слева свободно: г:=г-1; влево

при в=8: выход

иначе в:=в+1; вниз; прав:=не прав

все

кц

вверх

кон

Приложения:

Ziorar: Вот кстати ещё один вариант программы. Рисунок даёт тот же самый, правда конечное положение робота не такое, как на вашей картинке (но, думаю это положение не важно, главное рисунок, а если уж нужно будет- то привести к нужному конечному положению не проблема):
Ziorar: использовать Робот
алг
нач
цел ц,г=0,в=0
лог прав=да,верх=да
нц для ц от 1 до 2
нц ц*2 раз
в:=в+1
вниз
кц
нц
закрасить
выбор
при прав и справа свободно: г:=г+1; вправо
при не прав и слева свободно: г:=г-1; влево
иначе прав:=не прав; если г=0 то выход иначе в:=в-1; вверх все
все
если верх и в=0 или не верх и в=8 то верх:=не верх все
если верх то в:=в-1; вверх иначе в:=в+1; вниз все
кц
кц
кон
Похожие вопросы