Необходимо провести робота по коридору шириной в одну клетку из начального положения до...

0 голосов
1.4k просмотров

Необходимо провести робота по коридору шириной в одну клетку из начального положения до конца коридора, закрашивая при этом все клетки коридора которые имеют выход.


image

Информатика (12 баллов) | 1.4k просмотров
Дан 1 ответ
0 голосов

Насколько я понял, это в системе Кумир.

У меня в общем то получилась универсальная программа прохождения такого типа лабиринтов- в одну клетку, из конца в конец, без "дырок" в угловых и крайних клетках.

Для данного лабиринта при желании её можно упростить- убрать движение вправо (в этом лабиринте оно не используется) а также начальный выбор направления (оставив просто "цел н=3").


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


алг

нач

цел н

выбор

при сверху свободно: н:=1

при справа свободно: н:=2

при снизу свободно: н:=3

при слева свободно: н:=4

иначе стоп

все


нц

выбор

при н=1: |идём вверх

выбор

при сверху стена:

выбор

при справа свободно: вправо; н:=2

при слева свободно: влево; н:=4

иначе стоп

все

при справа свободно или слева свободно: закрасить; вверх

иначе вверх

все


при н=2: |идём вправо

выбор

при справа стена:

выбор  

при сверху свободно: вверх; н:=1

при снизу свободно: вниз; н:=3

иначе стоп

все

при сверху свободно или снизу свободно: закрасить; вправо

иначе вправо

все


при н=3: |идём вниз

выбор

при снизу стена:

выбор  

при справа свободно: вправо; н:=2

при слева свободно: влево; н:=4

иначе стоп

все

при справа свободно или слева свободно: закрасить; вниз

иначе вниз

все


при н=4: |идём влево

выбор

при слева стена:

выбор  

при сверху свободно: вверх; н:=1

при снизу свободно: вниз; н:=3

иначе стоп

все

при сверху свободно или снизу свободно: закрасить; влево

иначе влево

все

все

кц

кон



image
(5.3k баллов)