Как проверить свою программу для Робота, не запуская на всех вариантах поля?
Задание 15.1 ОГЭ: программа должна работать на любом поле с любой длиной стен, а не только на том, что в примере. Как мне самому убедиться, что она правильная, если я не могу перебрать все возможные поля?
2 ответа
Полностью перебрать поля и не нужно — достаточно проверить граничные и хитрые случаи мысленно или прямо в КуМире, изменив обстановку. Вот чек-лист, которым стоит «обстрелять» свою программу:
- Минимальный случай — стена/коридор длиной 1 клетка. Часто тут вылезает «закрасил на одну больше/меньше».
- Длинный случай — растяни стену побольше. Проверяет, что цикл реально зависит от условия, а не от фиксированного числа.
- Робот у самого края поля — не пытается ли он шагнуть в границу.
- Условие выполняется сразу ложно — например, справа сразу стена. Цикл вообще должен не выполниться.
Главный принцип: если в программе нет ни одного нц N раз с конкретным числом, а все циклы — нц пока с проверкой обстановки, то она почти наверняка обобщается на любое поле. Жёстко прописанные числа («пройди 7 клеток») — первый признак, что решение не универсально.
Практический приём прямо в КуМире: вручную перетащи стены в редакторе обстановки, сделай поле другой формы и запусти ту же программу. Если она отработала на 3–4 разных полях без правок — это хороший знак. Особенно проверяй «несимметричные» поля, где слева и справа всё по-разному.