Общее:
1) В документации процедуры обвязаны ссылками от навигатора (из бывшего SP4). Неплохо бы их убрать.
2) Автокоманда: исполняется автоматом при открытии документа. Когда открываем руками это может и хорошо, а при поиске в документации (попробуйте) - когда среда открывает документы из лаб, они начинают исполнятся. Предложение: пусть запускаются в документе по особой команде, напр. "Выполнить все"
3) Вставка задачи не обёрнута в Models.BeginScript...Models.EndScript.
Черепаха:
1) Пробовали печатать черепашьи рисунки. Вот тут проявился растр - в универсальных единицах на бумаге рисунки получились очень маленькими. Нужно бы как то масштабировать растр при отображении на "printer frame".
Робот:
1) Сообщение "робот разбился об стену" заменить на что-то вроде "робот отказался разбиваться об стену". В соответствии с Кушниренковской классификацией ошибок - исполнитель отказывается исполнять невыполнимую команду, но не исполняет её с самоубийственными для себя последствиями.
2) Убрать безразмерное поле для робота. Пусть количество клеток задаётся явно и робот за пределы поля не выходит.
При решении задач из Кушниренки:
а) На практике заметил проблему с изменением размеров поля - вроде размер отображения изменил под какие надо, а лабиринт "ускакал" за пределы видимого поля. Алгоритм выбора видимой части при уменьшении
не улавливается (похоже как-то завязан на то, что робот должен остаться видимым), что и вызывает трудности при оперировании с размером поля.
б) Некоторые задачи при безразмерном поле будут иметь неоднозначное решение супротив однозначного при ограниченном поле (например, вертикальная стена через всё поле с одним проходом внизу; при безразмерном поле её можно обойти сверху). Не знаю как в Кумире, но кажется, что там робот за пределы поля не пойдет.
3) Стоит добавить на клетки поля пометки для закраски (у Кушниренки точки)?
4) Логические ошибки в "устройстве" робота (так "дитю" и объяснял, виды ошибок мы разбирали; он даже сам предложил мне документ с задачками и косячными роботами забрать
).
Мы вместо того, чтобы вставлять новую задачу и нового робота, копировали старую и меняли номер и правили поле робота.
а) В одной из задач робот стал биться об стену при движении вверх (стены не было). После вырезания вставки робота воспроизводиться перестала.
б) NIL dereference при закраске. На моём компе воспроизвелась:
Вложение:
4.8-8.odc [1.57 КБ]
Скачиваний: 737
. Возможна проблема в сохранении/загрузке (вставляем нового робота - работает, сохраняем, открываем - NIL der-ce).