Читаем Справочник Жаркова по проектированию и программированию искусственного интеллекта. Том 13: Программирование на Visual Basic искусственного интеллекта. Издание 2. Продолжение 2 полностью

Часть IX. Методология программирования искусственного интеллекта в играх по сборке и выбиванию фигур одинакового цвета или геометрии

<p>Глава 20. Методика программирования искусственного интеллекта в игре по выбиванию фигур одинакового цвета</p><p><strong>20.1. Общие сведения</strong></p>

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

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

Искусственный интеллект же периодически дополняет палитру новыми разноцветными кругами (произвольным образом).

Данную игру мы будем разрабатывать, следуя игре Game с сайта microsoft.com. Авторы игры разработали её на устаревшей версии Visual Studio. Поэтому автор данной книги разработал эту игру на современной версии Visual Studio, исправил ошибки и дополнил её недостающими для типичной игры элементами, например, счётчиком секунд на форме и мелодией по окончании времени игры.

В этой игре для отображения поля игры не используются графические файлы (такие файлы формата (.bmp) применяются только для подсчёта очков), поэтому разноцветные круги (по-английски: circle) рисуются при помощи метода FillEllipse класса Graphics из пространства имён System.Drawing в строке:

graphics.FillEllipse(brush, New Rectangle(transTopLeft, _

New Size(transwidth, transheight)))

Напомним, что, если у эллипса (Ellipse) задать две одинаковые по длине оси, то эллипс будет рисоваться в виде окружности, а закрашенное поле внутри окружности – это круг.

<p>20.2. Правила игры</p>

1. После запуска игры на мониторе появляется основная форма (рис. 20.1).

2. Для начала игры щёлкаем или элемент управления PictureBox с рисунком в виде надписи New или в меню Game выбираем команду New Game.

На форме с белым фоном (типа Window) искусственный интеллект выводит палитру из 12 столбцов и 7 рядов (строк) кругов, которые случайным образом (при помощи г.с.ч.) закрашены в 4 цвета: Red – красный, Blue – синий, Green – зелёный и Gray – серый (рис. 20.2).

Если не предпринимать никаких действий, то постепенно через каждый заданный нами (при помощи первого таймера Timer1) интервал времени (в данном проекте, через 7000 миллисекунд или 7 секунд) палитра увеличится до максимального размера из 12 столбцов и 12 рядов разноцветных кругов (рис. 20.3).

Рис. 20.1. Исходная форма.

Рис. 20.2. Исходная палитра из разноцветных кругов.

Рис. 20.3. Максимальная палитра из разноцветных кругов.

Рис. 20.4. Конец игры.

Сразу же после начала игры начинается отсчёт времени (Time) в секундах в верхней части формы на поле для свойства Text при помощи второго таймера Timer2.

3. Смысл игры заключается в следующем.

Сразу же после начала игры игрок должен быстро щёлкать мышью по кругам.

Если игрок щёлкнет круг, вокруг которого находятся круги с цветом, отличным от цвета данного круга, то круг не уничтожается (не исчезает с палитры), а игроку начисляется 10 очков.

Если игрок щёлкнет круг, вокруг которого находятся другие круги с цветом данного круга, то круги одинакового цвета, соединённые между собой по горизонтали (по строке) и вертикали (по столбцу) удаляются, а игроку начисляются по 10 очков за каждый выбитый круг.

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

По такой схеме игрок быстро щёлкает мышью по кругам, стараясь за отведённое время выбить как можно больше кругов и соответственно очков. Каждое выбивание кругов сопровождается воспроизведением звукового файла Windows XP Balloon.wav (типа удара).

Искусственный интеллект же периодически через каждый заданный нами (при помощи первого таймера Timer1) интервал времени (в данном проекте, через 7000 миллисекунд или 7 секунд) дополняет палитру новыми разноцветными кругами (произвольным образом).

Перейти на страницу:

Похожие книги