← Все вопросы

кумир робот команды движения и закрасить, как дойти до стены и закрасить

Задан 12 месяцев назад1.5к просмотров2 ответа
5

Задали: робот должен дойти до правой стены и закрасить ту клетку у стены. Я написал кучу вправо подряд, угадывал сколько клеток, иногда он врезается и пишет ошибку «робот разбился». Сколько именно писать вправо? Это вообще нормально что я гадаю?

2 ответа

10
✓ Принятый ответ — помог автору

Гадать не надо, как раз поэтому он и разбивается :) Если ты не знаешь сколько клеток до стены — нельзя писать фиксированное число вправо. Нужен цикл, который идёт пока справа свободно:

использовать Робот
алг
нач
  нц пока справа свободно
    вправо
  кц
  закрасить
кон

Что тут происходит: нц пока справа свободно — повторяй пока с правой стороны нет стены. Как только упёрся в стену — цикл закончится сам, и Робот закрасит клетку, где стоит.

Команды движения всего 4: вправо, влево, вверх, вниз. И закрасить — красит ту клетку, где Робот СЕЙЧАС стоит (не соседнюю!).

А «робот разбился» — это когда ты велел шагнуть в стену. Поэтому проверка справа свободно и спасает.

3

Запомни простое: закрасить красит клетку ПОД роботом, а не перед ним. Многие думают что красится соседняя и путаются.

И да — если количество клеток заранее неизвестно, всегда цикл нц пока ... свободно, а не пачка вправо.

Ваш ответ

Войдите, чтобы ответить на вопрос.
Поддержать проект