Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
prolog_методичка.doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
225 Кб
Скачать
☆
  1. Игровая программа

Предлагается выбрать игру из класса игр двух лиц (игроков) с полной информацией [Братко, с.472-475], к которому относятся, например, шахматы и шашки. Игра должна быть достаточно сложной, чтобы практически исключалась возможность полного просмотра дерева игры и обнаружения выигрышной стратегии (если таковая существует), например, шашки без дамок, калах [Уэзерелл, с. 76-78], шахматный эндшпиль, реверси и крестики-нолики на неограниченной доске.

В таких играх для выбора компьютером очередного хода используется так называемая статическая оценочная функция, оценивающая позицию игры как таковую без учета ее продолжений, и альфа-бета процедура поиска наилучшего хода, исходя из заданной игровой позиции [Уэзерелл, с. 78-86; Братко, с. 479-484]. Альфа-бета процедура основана на частичном просмотре возможных продолжений игры на заданное количество D ходов игроков ( т.е. просмотре дерева игры от заданной игровой позиции на глубину D) и оценки возможных игровых позиций (вершин дерева) с помощью статической оценочной функции. В отличие от минимаксной процедуры, решающей ту же задачу, альфа-бета процедура выполняет просмотр дерева и оценку вершин более экономно.

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

В программе следует предусмотреть возможность изменения (перед началом игры) глубины D просмотра дерева игры альфа-бета процедурой (2D6, шаг глубины соответствует ходу одного игрока), а также  чтобы с программой было интересно играть, случайный выбор хода из нескольких равноценных.

  1. Программа генерации геометрических головоломок

В таких головоломках требуется найти закономерность в наборе из нескольких составных геометрических фигур. Составными элементами каждой фигуры могут быть: точка, квадрат, треугольник, прямоугольник, круг, различные отрезки линий и др. Такие элементы могут быть соединены в фигуре различным образом: они могут быть вложены друг в друга, могут пересекаться или соприкасаться [Стерлинг, с.182-184, 189]. Кроме того, контуры элементов могут быть разного цвета, а их внутренняя часть  заштрихованной или цветной. Примеры наборов таких составных фигур показаны на рисунках 6 и 7. Могут быть и более сложные фигуры  например, схематические изображения человечков или животных.

В

С

А

D

Рис. 6

1

2

3

4

5

6

Рис. 7

Рис. 8

Поиск закономерности предполагает обнаружение недостающей фигуры (обозначенной на рисунках вопросительным знаком). В первом случае (рис. 6) необходимо обнаружить аналогию, т.е. найти фигуру D, относящуюся к С, как фигура В  к фигуре А. Во втором случае (рис. 7) требуется найти фигуру, завершающую закономерность.

В обоих рассмотренных видах задачи поиска закономерностей предлагается несколько вариантов ответа , среди которых надо выбрать правильный. Например, возможный для задачи с рисунка 7 набор вариантов ответа показан на рис. 8, правильный ответ этой задачи  фигура 6 на рис. 8. Правильный ответ задачи с рисунка 6  фигура из треугольника, в который вписан круг.

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

Важно предусмотреть возможность решения пользователем за сеанс работы с программой нескольких задач  для этого программа при каждом обращении к ней должна порождать разные задачи, причем в разные сеансы последовательности генерируемых задач должны быть разными. Чтобы этого достичь, следует в некоторые моменты процесса генерации задачи производить случайный выбор составных элементов фигур и их конфигурации, используя датчик случайных величин и некоторое доступное программе значение, заранее неизвестное (дату и/или текущее время). Для представительности множества генерируемых задач необходимо, чтобы геометрические фигуры задачи включали не менее 5 различных элементов, включая цвет и штриховку.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]