Давно не
было в рассылке какой-нибудь игры на 1С. Исправим этот недостаток прямо сейчас
маленькой логической игрой, в которой вам предстоит проявить собразительность
и математический склад ума. Итак, приступаем...
Игра
"Охота на лис"
Взрослые
отличаются от детей только ценой их игрушек.
Постановка
задачи
Требуется
создать средствами 1С игру "Охота на лис". Правила игры следующие.
Цель игры
состоит в том, чтобы как можно быстрее найти всех лис на игровом поле.
Игровое поле состоит
из информационого и игрового полей.
Игрок имеет возможность открыть любую клетку, щелкнув ее левой кнопкой мыши.
Если в клетке находится лиса, то она показывается.
Если лисы нет, в клетке появится цифра, которая указывает, сколько лис находится
на горизонтали, вертикали и диагоналях клетки. Игра заканчивается после поимки
всех лис.
Объекты
конфигурации
Игра реализована
в виде внешнего отчета (ert-файл). Поэтому игру можно подключить к любой конфигурации
и доставить радость вашим пользователям!
Технические
подробности
Игровое поле
реализовано в виде множества кнопок на трех слоях формы. Текущая игровая ситуация
хранится в массиве Поле[100]. Число 0 означает куст, 1 - скрытую лису, 2-
пойманную лису, 3 - число. В процедуре ОбновитьПоле выводится игровое поле
на форме в соответствии с этим массивом.
Кнопка Игра,
вызывает процедуру Игра(), которая начинает новую игру: расставляет на поле
лис с помощью функции СлучайноеЧисло(). Кстати, очень полезная функция, но
1С ее почему-то не реализовала. Наверное, думала, что в бухгалтерии "ничто
не случайно".
При нажатии
на кнопку с лисой вызывается процедура ЛисаПоле(), при нажатии на кнопку с
кустом или скрытой лисой вызывается процедура КустПоле. Если на поле скрытой
лисы не было, то отображается число лис же горизонтали, вертикали и диагоналях
клетки. Это число подсчитывается процедурой КоличествоЗапеленгованныхЛис().
Если количество
пойманных лис (переменная ПЛ) равняется количеству всех лис (переменная ВЛ),
то игра заканчивается. Если ходов было сделано меньше, чем в рекорде, то победителю
придлагается увековечить свое достижение (процедура Увековечить).
Домашнее
задание
Заставьте
компьютер играть в эту игру. Придумайте алгоритм для поиска всех лис за минимальное
число ходов.