кумир робот команды движения и закрасить, как дойти до стены и закрасить
Задали: робот должен дойти до правой стены и закрасить ту клетку у стены. Я написал кучу вправо подряд, угадывал сколько клеток, иногда он врезается и пишет ошибку «робот разбился». Сколько именно писать вправо? Это вообще нормально что я гадаю?
2 ответа
Гадать не надо, как раз поэтому он и разбивается :) Если ты не знаешь сколько клеток до стены — нельзя писать фиксированное число вправо. Нужен цикл, который идёт пока справа свободно:
использовать Робот
алг
нач
нц пока справа свободно
вправо
кц
закрасить
кон
Что тут происходит: нц пока справа свободно — повторяй пока с правой стороны нет стены. Как только упёрся в стену — цикл закончится сам, и Робот закрасит клетку, где стоит.
Команды движения всего 4: вправо, влево, вверх, вниз. И закрасить — красит ту клетку, где Робот СЕЙЧАС стоит (не соседнюю!).
А «робот разбился» — это когда ты велел шагнуть в стену. Поэтому проверка справа свободно и спасает.
Запомни простое: закрасить красит клетку ПОД роботом, а не перед ним. Многие думают что красится соседняя и путаются.
И да — если количество клеток заранее неизвестно, всегда цикл нц пока ... свободно, а не пачка вправо.