Исполнитель ‹‹Робот››


1. Введение

1.1. Обстановки Робота

Исполнитель Робот существует в некоторой обстановке – прямоугольном поле, разбитом на клетки, между которыми могут стоять стены. Обстановка, в которой находится Робот, называется текущей обстановкой Робота. Кроме того, определена еще одна обстановка Робота – стартовая обстановка.Выполнение программы начинается со Стартовой обстановки.

Робот может передвигаться по полю, закрашивать клетки, измерять температуру и радиацию. Робот не может проходить сквозь стены, но может проверять, есть ли рядом с ним стена. Робот не может выйти за пределы прямоугольника (по периметру стоит «забор»). Подробно система команд Робота описана ниже.

Удобно представлять себе, что Робот существует всегда. В частности, когда начинается сеанс работы системы Кумир, Робот уже существует и для него определены и текущая, и стартовая обстановка (они совпадают).

Обстановки Робота могут храниться в файлах специального формата (расширение .fil).

 

1.2. Окно наблюдения за Роботом

В Кумире есть специальное устройство – Окно наблюдения за Роботом (иногда для краткости будем говорить Окно Роботa). В этом окне всегда видна текущая обстановка Робота, включая положение самого Робота.

 

1.3. Управление Роботом из программы

Кумир-программа, управляющая Роботом, должна начинаться со строки использовать  Робот (подробнее – см. описание языка Кумир). При выполнении этой строки Кумир помещает Робота в некоторую заранее определенную обстановку. Эта обстановка и называется стартовой обстановкой Робота.

Таким образом, в каждый момент сеанса работы системы Кумир определены две обстановки Робота – текущая и стартовая. Текущая обстановка в любой момент показывается в окне наблюдения за Роботом.

Непосредственное управление Роботом из программы осуществляется с помощью команд Роботa.

 

1.4. Как установить стартовую обстановку

В системе Кумир есть средства, с помощью которых Школьник может задать нужную ему стартовую обстановку. Это можно сделать двумя способами. Один способ – загрузить стартовую обстановку из указанного Школьником файла. Другой способ – редактировать существующую стартовую обстановку с помощью специального редактора стартовых обстановок.

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

 

1.5. Ручное управление Роботом

В систему Кумир входит пульт ручного управления Роботом . Этот пульт позволяет вручную управлять Роботом – выдавать команды, входящие в систему команд Робота. Использовать пульт можно в любое время, кроме тех временных промежутков, когда происходит непрерывное выполнение Кумир-программы. В частности, Роботом можно управлять с пульта в те моменты, когда выполнение Кумир программы приостановлено (система Кумир находится в состоянии «Пауза»).

2. Окно наблюдения за Роботом

2.1. Видимое и скрытое состояние окна

Окно наблюдения за Роботом создается в момент начала сеанса работы системы Кумир и доступно до окончания сеанса. Во время сеанса работы окно может находиться в одном из двух состояний – видимо или скрыто (с отображением на панели задач или без).

В момент запуска Кумира окно наблюдения за Роботом скрыто. Чтобы сделать окно видимым, Школьник должен нажать кнопку Робот на панели инструментов или же кликнуть по соответственному пункту меню Окна. Кроме того, окно Робота автоматически становится видимым при запуске на выполнение программы, содержащей строку использовать Робот. Окно Робота становится видимым на том же месте, где оно находилось, когда его последний раз сделали скрытым.

 

2.2. Свойства окна наблюдения за Роботом

На окне наблюдения за Роботом нет ни меню, ни кнопок. Таким образом, в окне Робота есть только полоса заголовка и рабочее поле.

В левой части заголовка есть надпись «Робот», за которой следует имя файла, в котором хранится стартовая обстановка. Если такого файла нет, то вместо имени файла выводится слово «временная». Правила, определяющие привязку стартовой обстановки к определенному файлу, описаны ниже.

Размер окна наблюдения полностью определяется размерами стартовой обстановки. Пользователь не может менять размер окна с помощью стандартных средств, например, манипулируя мышью.

 

2.3. Режимы окна наблюдения за Роботом

Окно наблюдения за Роботом может находится в двух режимах:

  • обычном – применяется при наблюдении за Роботом во время исполнения программ или управлении с пульта,
  • редактирования – применяется при редактировании стартовой обстановки Робота.

 

2.4. Что входит в описание обстановки Робота

Обстановка Робота представляет собой прямоугольное поле, окруженное забором и разбитое на клетки. Говоря более точно, обстановка описывается следующими величинами:

  1. размеры обстановки — количество строк (1–128) и количество столбцов (1–255);
  2. для каждой клетки:
  • наличие стен вокруг клетки,
  • признак закрашенности,
  • уровень радиации (измеряется в условных единицах, может принимать любое вещественное значение от 0 до 99),
  • температура (измеряется в градусах Цельсия, может принимать любое целое значение от -273 до +233).

Примечание. Нижняя возможная температура – это (приблизительно) абсолютный ноль (0 градусов по шкале Кельвина). Верхняя температура – это температура, при которой горят книги (451 градус по Фаренгейту).

Система команд Робота позволяет ему определить значения всех этих характеристик клетки (см. ниже).

Кроме того, в клетке могут быть пометки, видимые наблюдателю, но не доступные «органам чувств» Робота:

  • символы в левом верхнем и левом нижнем углах,
  • точка в правом нижнем углу.

Частью описания обстановки является и положение Робота. Как и для чтения пометок, у Робота нет средств, чтобы определить свои координаты.

 

2.5. Изображение текущей обстановки в окне наблюдения

Изображение текущей обстановка по умолчанию полностью помещается в рабочем поле окна наблюдения за Роботом .

Фон рабочего поля — зеленый. Закрашенные клетки – серые. Между клетками тонкие жёлтые линии. Стены (в том числе – «забор» по периметру прямоугольника обстановки) изображаются толстыми желтыми линиями.

Примечание. Все цвета отображения обстановки являются настраиваемыми. Чтобы изменить тот или иной цвет, нужно использовать пункт настройки в меню программа.

В клетке рабочего поля окна наблюдения Робот изображается ромбиком. Температура и радиация не показываются, они могут быть только измерены Роботом. Символы в клетках, наоборот, видны человеку, но Робот не умеет их считывать.

Масштаб изображения обстановки можно изменить, используя колёсико мыши, предварительно сделав активным окно наблюдения за Роботом.

 

2.6. Когда и как меняется текущая обстановка Робота

Текущая обстановка изменяется при выполнении команд Робота, подаваемых из программы или с пульта .

Выполнение команд Робота влияет на текущую обстановку следующим образом. Команды перемещения и закрашивания отображаются в текущей обстановке естественно.

Если команда перемещения выдает отказ, то текущая обстановка не изменяется, а на экране (если он виден) соответствующий угол Робота закрашивается красным. Красный цвет снимается:

  • при выполнении команды использовать Робот,
  • при принудительном помещении Робота в стартовую обстановку (см. ниже).

Команды проверок и измерения радиации и температуры на текущую обстановку не влияют.

Кроме того, в двух случаях происходит принудительное помещение Робота в стартовую обстановку (текущая обстановка становится равной стартовой). Это происходит:

  • при запуске Кумир-программы, которая использует Робот (окно наблюдения при этом становится видимым, даже если оно было скрыто);
  • при изменении имени файла стартовой обстановки Робота (в этой ситуации невидимое окно остается невидимым).

3. Команды управления Роботом из программы

3.1. Общие сведения

Кумир-программа, управляющая Роботом, должна начинаться со строки использовать  Робот (подробнее – см. описание языка Кумир). При выполнении этой строки Кумир помещает Робота в стартовую обстановку.

Система команд исполнителя «Робот» включает:

  • 5 команд, вызывающих действия Робота (влево, вправо, вверх, вниз, закрасить);
  • 10 команд проверки условий:
    • 8 команд вида [слева/ справа/ сверху/ снизу] [стена/ свободно],
    • 2 команды вида клетка [закрашена/ чистая];
  • 2 команды измерения (температура, радиация).

Командам влево, вправо, вверх, вниз, закрасить соответствуют алгоритмы-процедуры языка КуМир. Остальным командам соответствуют алгоритмы-функции, тип этих функций указан ниже.

 

3.2. Команды-действия

3.2.1. влево


Синтаксис:

алг влево

Перемещает Робота на одну клетку влево. Если слева стена, выдает отказ.

3.2.2. вправо


Синтаксис:

алг вправо

Перемещает Робота на одну клетку вправо. Если справа стена, выдает отказ.

3.2.3. вверх


Синтаксис:

алг вверх

Перемещает Робота на одну клетку вверх. Если сверху стена, выдает отказ.

3.2.4. вниз


Синтаксис:

алг вниз

Перемещает Робота на одну клетку вниз. Если снизу стена, выдает отказ.

3.2.5. закрасить


Синтаксис:

алг закрасить

Делает клетку, в которой находится робот, закрашенной.

Ниже приведён пример использования команд-действий Роботa.

 

 Скопировать пример

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

 
алг
нач
 вправо
 вниз
 влево
 вверх
 закрасить
кон

Пример 1. Использование команд-действий Роботa

 

3.3. Команды-проверки

3.3.1. слева свободно


Синтаксис:

алг лог слева свободно

Возвращает да, если Pобот может перейти влево, иначе – нет.

3.3.2. справа свободно


Синтаксис:

алг лог справа свободно

Возвращает да, если Pобот может перейти вправо, иначе – нет.

3.3.3. сверху свободно


Синтаксис:

алг лог сверху свободно

Возвращает да, если Pобот может перейти вверх, иначе – нет.

3.3.4. снизу свободно


Синтаксис:

алг лог снизу свободно

Возвращает да, если Pобот может перейти вниз, иначе – нет.

3.3.5. слева стена


Синтаксис:

алг лог слева стена

Возвращает да, если слева от Pобота находится стена, иначе – нет.

3.3.6. справа стена


Синтаксис:

алг лог справа стена

Возвращает да, если справа от Pобота находится стена, иначе – нет.

3.3.7. сверху стена


Синтаксис:

алг лог сверху стена

Возвращает да, если сверху от Pобота находится стена, иначе – нет.

3.3.8. снизу стена


Синтаксис:

алг лог снизу стена

Возвращает да, если снизу от Pобота находится стена, иначе – нет.

3.3.9. клетка закрашена


Синтаксис:

алг лог клетка закрашена

Возвращает да, если клетка закрашена, иначе – нет.

3.3.10. клетка чистая


Синтаксис:

алг лог клетка чистая

Возвращает нет, если клетка закрашена, иначе – да.

 

3.4. Команды-измерения

3.4.1. радиация


Синтаксис:

алг вещ радиация

Возвращает значение радиации в клетке, где находится Pобот.

3.4.2. температура


Синтаксис:

алг вещ температура

Возвращает значение температуры в клетке, где находится Pобот.

4. Стартовая обстановка, ее изменение и связь с текущей обстановкой

4.1. Вводные сведения

Стартовая обстановка – это обстановка, в которую Робот будет помещен при запуске Кумир-программы, т. е. при выполнении команды использовать Робот.

Со стартовой обстановкой связана специальная настройка Кумира – текстовая строка, в которой записано имя некоторого файла, содержащего описание обстановки Робота. Как правило, в качестве стартовой настройки используется обстановка, хранящаяся в этом файле. Исключения описаны в следующей главе.

 

4.2. Как определяется стартовая обстановка

Как правило, стартовая обстановка — это обстановка, хранящаяся в файле стартовой обстановки (для краткости – ФСО).

Из этого правила есть два исключения. Одно из них связано с тем, что файл с указанным именем может не содержать корректного описания обстановки или вообще не существовать. Этот случай рассмотрен ниже в следующей главе.

Другое исключение связано с возможностью упрощенного внесения временных изменений в стартовую обстановку. А именно, если в данный момент в Кумир-системе происходит редактирование файла обстановки, то текущее промежуточное значение этой редактируемой обстановки считается временной стартовой обстановкой. Иными словами, действия пользователя по подготовке обстановки имеют приоритет над содержимым строки с именем ФСО.

 

4.3. Изменение имени файла стартовой обстановки

Общие сведения

Школьник может изменить файл стартовой обстановки (ФСО) двумя способами:

  • с помощью команды «Загрузить обстановку» меню Робота,
  • с помощью редактора стартовых обстановок.

Состояние окна наблюдения (видимо/скрыто) при этих действиях не меняется.

При изменении строки с именем ФСО, новая стартовая обстановка становится текущей, что отражается в окне наблюдения за Роботом.

Команда «Загрузить обстановку»

Изменение строки с именем ФСО происходит с помощью стандартного диалога выбора файла. При этом в качестве каталога по умолчанию предлагается каталог текущего файла стартовой обстановки. Если выбранный файл существует и содержит корректную обстановку, то эта обстановка считается стартовой. Она же объявляется текущей, т. е. Робот помещается в эту обстановку. Это отображается в окне наблюдения Робота. Имя файла стартовой обстановки (без директории) показывается в левой части заголовка окна наблюдения за Роботом.

Если с чтением обстановки из выбранного файла возникают какие-либо проблемы, пользователю выдаётся сообщение ‹‹Ошибка открытия файла››. При этом ни стартовая, ни текущая обстановки Роботa, а также имя ФСО не изменяются.

Изменение стартовой обстановки с помощью редактора стартовых обстановок Робота

Редактор стартовых обстановок Робота – составная часть системы Кумир. Он позволяет добавлять и удалять стены, менять размеры обстановки и т. п. Изменённая обстановка объявляется стартовой. Её можно сохранить в новый файл, а можно перезаписать текущий .

 

4.4. Создание новой стартовой обстановки

Для создания новой стартовой обстановки Робота нужно воспользоваться коммандой «Новая обстановка» меню Робот. При этом откроектся специальное окно, где можно будет ввести размер обстановки. После настройки размера и нажатия кнопки «Ок», новая обстановка сразу открывается в режиме редактирования .

 

4.5. Начальная установка имени файла стартовой обстановки

Запуск системы Кумир

Система Кумир при окончании сеанса работы запоминает в своих настройках значение имени файла со стартовой обстановкой. При новом запуске система Кумир проверяет, существует ли файл с запомненным именем. Если файл существует и содержит корректную обстановку, то эта обстановка считается стартовой. Она же объявляется текущей, т. е. Робот помещается в эту обстановку. Это отображается в окне наблюдения Робота. Имя файла стартовой обстановки (без директории) показывается в левой части заголовка окна наблюдения за Роботом.

Если с чтением обстановки из выбранного файла возникают какие-либо проблемы, то стартовой (и одновременно текущей) объявляется стандартная обстановка, хранящаяся в Кумире. В левой части заголовка окна наблюдения за Роботом появляется предупреждающая надпись – «нет файла». Никакой файл с обстановкой при этом не создается, а предыдущее значение имени файла стартовой обстановки не изменяется.

Установка имени файла стартовой обстановки при инсталляции системы Кумир

При инсталляции системы Кумир в качестве имени ФСО записывается имя файла со стандартной обстановкой, который входит в поставку Кумира (7×7.fil). Стандартной обстановкой является пустая обстановка размера 7×7 с Роботом в левом верхнем углу. Максимально допустимый размер обстановки составляет 128×255. Слово «пустая» означает:

  • в обстановке нет стен (кроме проходящего по периметру забора),
  • в клетках нет точек и символов,
  • во всех клетках радиация и температура установлены в 0.

5. Редактирование стартовой обстановки

5.1. Общие сведения

Редактор стартовых обстановок можно использовать:

  • для подготовки новых обстановок,
  • при отладке Кумир-программ для оперативного внесения небольших изменений в стартовую обстановку.

Запуск редактирования производится с помощью команды ‹‹Редактировать обстановку›› меню Роботa. По этой команде окно наблюдения переходит в специальный режим – режим редактирования стартовой обстановки (для краткости – режим редактирования). Завершить редактирование обстановки можно двумя способами:

  • снять галочку с пункта Редактирование меню Робота,
  • запустить на исполнение любую Кумир-программу, использующую Робот. Тогда окно наблюдения снова перейдёт в обычный режим.

В обоих случаях результаты редактирования сохранятся и стартовая обстановка Робота изменится.

Свойства окна наблюдения в режиме редактирования аналогичны свойствам окна наблюдения за Роботом. Основных отличий – два:

  • фон рабочего поля — синий,
  • в левом верхнем углу окна есть инструментальные кнопки, позволяющие изменять параметры клетки обстановки.

 

5.2. Главное меню окна наблюдения в режиме редактирования

Кнопки редактирования обстановки

Опишем кратко назначение кнопок редактирования обстановки по порядку слева направо.

  • Кнопка редактирования меток клетки. При нажати на эту кнопку в каждой клетке появляются два поля для ввода текста меток (одно вверху клетки, одно внизу). В каждое из этих полей можно ввести только один символ.
  • Кнопка редактирования уровня радиации. При нажати на эту кнопку справа от кнопок настройки появляется поле для редактирования уровня радиации в клетке. Значение по умолчанию в этом поле равно 55,00. Это значение можно изменять, кликая на верхний или нижний треугольник в этом поле. Также можно ввести своё собственное значение. Уровень радиации в клетке может колеблется в диапазоне от 0,00 до 99,00. После получения нужного числа в поле настройки уровня для применения настроек к выбранной клетке нужно просто кликнуть по ней левой кнопкой мыши.
  • Кнопка редактирования уровня температуры. Механизм редактирования температуры в клетке поностью аналогичен механизму редактирования уровня радиации. Значение по умолчанию в поле редактирования температуры равно 77. Температура в клетке может колебаться от -273 до 233.

 

5.3. Непосредственное редактирование обстановки

Основное редактирование обстановок Робота ведется непосредственно. Предусмотрены следующие операции непосредственного редактирования:

  • поставить/убрать стену – щелкнуть по границе между клетками,
  • закрасить/сделать чистой клетку – щелкнуть по клетке,
  • поставить/убрать точку – щелкнуть по клетке при нажатой клавише Ctrl,
  • переместить Робота – тащить мышью,
  • установить температуру, радиацию, метки – использовать соответственные кнопки в левом верхнем углу окна наблюдения в режиме редактирования обстановки.

 

5.4. Операции с файлами обстановок

Перечислим все операции с файлами обстановок (расширение .fil), предусмотренные в системе Кумир. Соответствующие им команды входят в меню «Робот» главного окна (команды «Сохранить обстановку» и «Загрузить обстановку»).

Система Кумир запоминает файлы, к которым применялись указанные операции. Список последних таких файлов доступен с помощью команды «Недавние обстановки» меню «Робот». Во всех перечисленных ниже операциях с файлами обстановок в качестве директории по умолчанию предлагается директория, использовавшаяся в последней по времени выполнения операции с файлами обстановок.

6. Пульт Робота

6.1. Общие сведения

Пульт Робота располагается в отдельном окне и предназначен для управления Роботом. С помощью пульта можно передавать команды Роботу. Он непосредственно выполняет эти команды.

Пользоваться пультом можно как при видимом окне наблюдения за Роботом, так и когда это окно скрыто (управление Роботом вслепую).

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

Окно Пульта создается при запуске системы Кумир. Свойства окна таковы:

  • при запуске системы КуМир пульт скрыт,
  • пользователь не может менять размеры окна пульта,

Чтобы сделать пульт видимым, нужно воспользоваться командой «Робот-Пульт» меню «Робот» или соответствующей инструментальной клавишей.

Связь Пульта с Роботом возможна всегда, кроме тех моментов, когда идет непрерывное выполнение программы, использующей Робот (т. е. программы, которая содержит строку использовать Робот). В частности, не имеет значения, идет редактирование стартовой обстановки или нет. О наличии связи свидетельствуют индикаторы в левом верхнем углу пульта.

 

6.2. Общий вид Пульта

На пульте Робота есть:

  • лампочки-индикаторы:
    • зелёная лампочка-индикатор Связь установлена ,
    • красная лампочка-индикатор Нет связи ;
  • табло для семи последних выполненных команд, разделенное на левую часть (собственно команда) и правую часть (реакция Робота);
  • вспомогательные кнопки табло:
    • Сброс табло и Скопировать в буфер – кнопки очистки и копирования, находящиеся справа от табло,
    • Прокрутка табло – две кнопки сверху и снизу;
  • кнопочная панель из 9 кнопок, служащая для передачи команд Роботу.

 

6.3. Кнопочная панель. Передача команд Роботу

На панели есть:

  • 4 кнопки-стрелки (они соответствуют командам передвижения Робота);
  • кнопка закрасить (в центре);
  • кнопки температура и радиация (в левом верхнем и левом нижнем углах);
  • две кнопки-префикса Стена/Закрашено и Свободно/Чисто (в правом верхнем и левом нижнем углах);

Для передачи команды действия (вверх, вниз, вправо, влево, закрасить, радиация, температура) достаточно нажать соответствующую кнопку.

Чтобы передать команду проверки нужно последовательно нажать две кнопки: сначала – префикс ( Стена/Закрашено и Свободно/Чисто ), а потом — основную (закрасить или одну из стрелок).

Примеры:

  1. Чтобы передать Роботу команду проверки слева свободно? нужно сначала нажать кнопку-префикс Свободно/Чисто , а затем кнопку влево .
  2. Чтобы передать Роботу команду проверки клетка закрашена? нужно сначала нажать кнопку-префикс Стена/Закрашено , а затем кнопку закрасить .

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

 

6.4. Использование табло

На табло выводятся все команды, передаваемые Роботу вместе с реакцией Робота на эти команды. В ответ на команды перемещения в правой части появляется надпись «ОК» или «Отказ». Если с Роботом нет связи, на табло выдается «Нет связи».

Вывод на табло при первом включении Пульта в сеансе работы системы Кумир или после нажатия кнопки Сброс табло начинается с верхней строки. Когда табло заполнилось, начинается прокрутка и вывод идет в последнюю строку табло. Выше и ниже табло есть две кнопки для прокрутки его содержимого на одну строку вверх/вниз.

7. Робот и главное меню

7.1. Общие сведения

К Роботу относится меню Робот главного окна системы «Кумир» (полностью), а также две команды из меню Окна . Для действий Показать поле Робота и Пульт Робота есть инструментальные кнопки на панели кнопок.

Ниже отдельно описана каждая из команд меню Робот .

 

7.2. Команды меню «Робот»

  • Загрузть обстановку – открывает диалог выбора ФСО.
  • Недавние обстановки – выводит список последних использовавшихся ФСО.
  • Вернуть исходную обстановку – делает текущей стартовую обстановку.
  • Сохранить обстановку – открывает диалог сохраниения обстановки в файл.
  • Редактировать обстановку – переводит окно наблюдения в режим редактирования стартовой обстановки.
  • Авто размер окна – устанавливает масштаб отображения обстановки по умолчанию.
  • Новая обстановка – открывает окно создания обстановки.

 

7.3. Команды меню «Окна»

  • Робот – открывает окно наблюдения за исполнителем Робот.
  • Робот - Пульт – открывает окно пульта исполнителя Робот.

Copyright ФГУ ФНЦ НИИСИ РАН © 2019