Предыдущий цикл статей, в котором давались советы относительно того как выходить из лабиринта не закончился самым главным - там было объяснено правило правой руки, давался обзор тактик решения задачи для средней категории World Robot Olympiad 2011, советы по тому, какими датчиками и как пользоваться, но так и не было рассмотрено, как написать самую простую программу. Настало время наверстать этот момент.
Итак, сперва следует напомнить, какие же основные блоки определяют поведение робота в лабиринте:
Движение прямо с опросом датчиков, обнаруживающих проход справа, и датчиков, обнаруживающих столкновение с преградой
Поворот направо, в случае обнаружения прохода
Поворот налево, в случае обнаружения препятствия
В общем случае обычное движение прямо - не самый сложный элемент в программе. Теми нюансами, которые появляются в ходе такого движения, на первых порах можно пренебречь, сфокусировавшись на других основных элементах алгоритма - выполнении поворотов.
Здесь следует ненадолго остановиться и опять вернуться к рассмотрению конструкции робота.
Первый случай - поворот направо. Подразумевается, что он происходит после срабатывания датчика смотрящего в сторону.
Предположим, что за столом есть хотя бы один рыцарь. Тогда с одной стороны от него сидит лжец, а с другой – рыцарь (-РРЛ-). Но тогда рядом со вторым рыцарем должен сидеть один лжец (-ЛРРЛ-). Поскольку лжецы всегда говорят неправду и рядом с ними сидят рыцари, то и с другой стороны тоже должны быть рыцари (-РЛРРЛР-). Тогда седьмой человек должен быть сидеть между двумя рыцарями. Если это лжец, то окружающие его рыцари лгут (они будут сидеть между двумя лжецами) , если это рыцарь, то он тоже лжет (сидит между двумя рыцарями) . Получили противоречие с нашим предположением. Значит, рыцарей за этим круглым столом быть не может. Такая ситуация возможна. ответ: 0 рыцарей.
Предыдущий цикл статей, в котором давались советы относительно того как выходить из лабиринта не закончился самым главным - там было объяснено правило правой руки, давался обзор тактик решения задачи для средней категории World Robot Olympiad 2011, советы по тому, какими датчиками и как пользоваться, но так и не было рассмотрено, как написать самую простую программу. Настало время наверстать этот момент.
Итак, сперва следует напомнить, какие же основные блоки определяют поведение робота в лабиринте:
Движение прямо с опросом датчиков, обнаруживающих проход справа, и датчиков, обнаруживающих столкновение с преградой
Поворот направо, в случае обнаружения прохода
Поворот налево, в случае обнаружения препятствия
В общем случае обычное движение прямо - не самый сложный элемент в программе. Теми нюансами, которые появляются в ходе такого движения, на первых порах можно пренебречь, сфокусировавшись на других основных элементах алгоритма - выполнении поворотов.
Здесь следует ненадолго остановиться и опять вернуться к рассмотрению конструкции робота.
Первый случай - поворот направо. Подразумевается, что он происходит после срабатывания датчика смотрящего в сторону.
Объяснение:
Если не поняла пиши в мне.
ОК?Предположим, что за столом есть хотя бы один рыцарь. Тогда с одной стороны от него сидит лжец, а с другой – рыцарь (-РРЛ-). Но тогда рядом со вторым рыцарем должен сидеть один лжец (-ЛРРЛ-). Поскольку лжецы всегда говорят неправду и рядом с ними сидят рыцари, то и с другой стороны тоже должны быть рыцари (-РЛРРЛР-). Тогда седьмой человек должен быть сидеть между двумя рыцарями. Если это лжец, то окружающие его рыцари лгут (они будут сидеть между двумя лжецами) , если это рыцарь, то он тоже лжет (сидит между двумя рыцарями) . Получили противоречие с нашим предположением. Значит, рыцарей за этим круглым столом быть не может. Такая ситуация возможна. ответ: 0 рыцарей.
Объяснение: