Как выполнить эту задачу на алгоритмы?

Есть такая задача на алгоритмы, уже второй день голову над ней ломаю. Нужно из правой нижней клетки добраться до верхней левой используя повторяющийся алгоритм из 6 действий (все они есть на фото).
0. вернуться к началу/ начать алгоритм заново
1. шаг вперёд
2. повернуть налево
3. повернуть направо
4-6. Цвета
7-9. Окрасить клетку на которой находишься в конкретный цвет.
Изначально тело смотрит налево.
Так же клетки могут быть изначально окрашены в 1 из 3 цветов. И вместе с ними можно строить условия как: "если клетка фиолетовая > шаг вперёд" или "если клетка оранжевая > окрась её в голубой".
Важно отметить! Алгоритм не будет работать если он не встретит команду "0" так что он в конце всегда должен стоять что по итогу ограничивает количество действий до 5. Нельзя давать действиям более одного условия. Либо действие на всех цветах либо действия только на одном из них.

601ba7c224d14579784133.png
  • Вопрос задан
  • 931 просмотр
Пригласить эксперта
Ответы на вопрос 1
@Loim
Я не слишком понял, что именно означают эти команды внизу. Следовало описать их подробно, так как вряд ли кто открывал это и пробовал. Или дать ссылку на возможность самому пройти эту задачу.
Если чёрные клетки - смерть и перекрасить их нельзя, то стоит идти только по дорожке.
Когда наступишь на фиолетовую метку, поменять flag на обратный.
Если flag = 0 (изначальному значению) и ты на синей клетке, идёшь прямо.
Если ты на фиолетовый, flag = 1
Если ты на синей клетки и flag = 1: то переменно поворачиваешь:
сначала налево, потом направо
Если бы это был язык программирования, прибавлял бы к переменной +1 и проверял условие a % 2 == 1 или a % 2 == 0. И в зависимости от этого действовал.
Здесь очевидная идея: после фиолетовой клетки меняется принцип работы
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы