Как пользоваться редактором обстановок Робота
Этот интерактивный конструктор создаёт обстановки для задания 15 ЕГЭ и задания 19 ОГЭ по информатике — задач с исполнителем «Робот» на клетчатом поле со стенами. Готовый JSON загружается в автоматический проверяющий платформы и используется для массовой проверки программ учеников.
Быстрый старт за 5 шагов
- Задайте размер поля в правой панели (по умолчанию 10×10) и нажмите «Применить».
- Выберите инструмент на верхней панели:
гориз. — горизонтальная стена снизу клетки, верт. — вертикальная стена справа от клетки, цель — закрашиваемая клетка, робот — стартовая позиция, стереть — удаление всего в клетке.
- Кликайте по клеткам — элементы добавляются. Повторный клик по той же клетке с тем же инструментом удаляет элемент.
- Когда обстановка готова, нажмите Сохранить. Она появится в списке выше. Очистите холст и рисуйте следующую.
- Когда все обстановки собраны, нажмите Сгенерировать JSON → Копировать или Скачать. Полученный файл загружайте в задание на платформе.
Логика стен
Стены привязаны к клеткам, а не к рёбрам. гориз. рисует линию под выбранной клеткой (то есть между строкой r и строкой r+1). верт. рисует линию справа от клетки (между столбцом c и c+1). Поэтому стены нельзя поставить на нижней строке (для гориз.) и правом столбце (для верт.) — это границы поля и так непроходимы.
Пример: чтобы построить Г-образный угол в правом нижнем секторе, нарисуйте несколько горизонтальных стен в одной строке (например, под клетками (5,5), (5,6), (5,7)) и несколько вертикальных в одном столбце (справа от (5,7), (6,7), (7,7)). Получится карман, куда робот заходит сверху или слева.
Цели и робот
- Цели (зелёные клетки с «oo») — это клетки, которые программа ученика должна закрасить командой
закрасить. Обычно они расположены вдоль стены — с внутренней стороны (примыкают к стене со стороны, куда может зайти робот).
- Робот (синяя клетка с «R») — стартовая позиция. Её можно поставить только одну. Клик по уже отмеченной клетке инструментом «робот» снимает метку.
- Без робота и без хотя бы одной цели обстановка не сохранится — выйдет сообщение об ошибке.
Настройки проверки
В панели «Настройки» задаются параметры оценивания:
- Описание — текстовый заголовок, попадёт в JSON как поле
description. Обычно это формулировка задания из экзамена.
- Макс. пропущенных для «1» — сколько целевых клеток программа ученика может не закрасить, чтобы ещё получить 1 балл (на ЕГЭ обычно 1).
- Макс. лишних для «1» — сколько лишних (не целевых) клеток программа ученика может закрасить и всё равно получить 1 балл.
Для 2 баллов ученику нужно идеально закрасить все цели и ни одной лишней; 0 баллов — если превышен один из лимитов или программа упала с ошибкой.
Работа со списком обстановок
- Клик по строке в списке — загружает её на холст для редактирования.
- Крестик справа — удаляет обстановку из списка.
- Изменили загруженную обстановку и хотите сохранить как новую? Просто нажмите «Сохранить» ещё раз — добавится новая запись. Старую при необходимости удалите крестиком.
- Рекомендуется 3–5 обстановок на задание: одна простая (демо-режим), остальные — разные варианты начальных позиций и размеров лабиринта, чтобы программа не проходила по случайности.
Импорт существующего JSON
В нижней панели «Импорт» можно вставить ранее созданный JSON и нажать «Загрузить». Полезно, когда нужно отредактировать уже настроенное задание: добавить обстановку, изменить стены, поправить scoring. После правок — снова «Сгенерировать JSON» и сохранить.
Редактор также умеет читать старый формат type: "L" (Г-образные лабиринты с параметрами corner_r, corner_c и т. д.) — они автоматически конвертируются в универсальный формат custom со списками стен.
Структура выходного JSON
{ "description": "Задание 15 -- Робот", "scoring": { "max_missed_for_1": 1, "max_extra_for_1": 1 }, "mazes": [ { "type": "custom", "rows": 10, "cols": 10, "robot": [9, 0], "h_walls": [[5, 5], [5, 6], [5, 7]], "v_walls": [[5, 7], [6, 7], [7, 7]], "targets": [[6, 5], [6, 6], [6, 7], [5, 8], [6, 8], [7, 8]] } ] }
Координаты — [row, col], отсчёт от 0. Строка 0 — верхняя, столбец 0 — левый. Робот в примере стоит в левом нижнем углу (9, 0).
Частые вопросы
Почему стена не рисуется?
Проверьте, что выбран правильный инструмент вверху холста (активная кнопка подсвечена золотым). Горизонтальные стены нельзя ставить на последней строке, вертикальные — на последнем столбце: это уже граница поля.
Можно ли поставить робота на клетку со стеной или целью?
Да. В JSON они хранятся независимо: робот — одна координата, цели — список, стены — два списка. Визуально робот «перекрывает» цель, но при загрузке в проверку оба элемента учитываются.
Как сделать так, чтобы часть поля была отгорожена и недоступна?
Постройте замкнутый периметр из горизонтальных и вертикальных стен. Робот физически не сможет туда войти, если вы не поставите его внутрь при старте. Проверяющий считает, что обстановка невозможна для прохождения, только если целевые клетки попадают в недоступную область — в этом случае лучше перестроить лабиринт.
Сколько обстановок оптимально для одного задания?
Для 2 баллов на ЕГЭ задании 15 обычно хватает 3 обстановок: демо-режим (ровно как в условии) и 2 контрольных с разными размерами/сдвигами. Если хотите гарантировать, что программа универсальна — добавьте 5–6 вариантов с разной длиной «коридоров».
Можно ли использовать редактор для задания 19 ОГЭ?
Да, формат задач на исполнителя «Робот» в ОГЭ совпадает по структуре. Разница только в сложности лабиринтов и количестве целевых клеток. Тот же JSON принимается проверяющим для обоих типов заданий.
Работает ли редактор на мобильном телефоне?
Да, при ширине экрана меньше 900 пикселей сайдбар переносится под холст. Но рисовать обстановки удобнее на компьютере или планшете — мелкие клетки сложно точно тапать пальцем.
Что делать, если JSON не импортируется?
Проверьте, что вставили валидный JSON (можно прогнать через jsonlint.com). Частые ошибки: лишняя запятая в конце массива, одинарные кавычки вместо двойных, обрезанный текст. Редактор покажет конкретную ошибку парсинга в красной плашке внизу.