Чтение онлайн

на главную - закладки

Жанры

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

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

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

В этой игре для отображения поля игры не используются графические файлы (такие файлы формата (.bmp) применяются только для подсчёта очков),

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

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

New Size(transwidth, transheight)))

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

20.2. Правила игры

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 секунд) дополняет палитру новыми разноцветными кругами (произвольным образом).

Игрой можно управлять не только мышью, но и клавишами клавиатуры. Клавиша M (первая буква английского слова Menu) раскрывает и закрывает меню Game, а клавиша P (первая буква английского слова Pause) приостанавливает и запускает игру вновь. После нажатия клавиши Alt вместе с клавишей с подчёркнутой буквой (английского алфавита) в команде меню Game или Help, выполняется соответствующая команда.

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

Для каждого сеанса (попытки) игры одного или нескольких игроков задано определённое время, в данном примере, 60 секунд, по истечении которого звучит мелодия файла win.wav.

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

5. В данной игре игрок может не только увидеть, но задокументировать заработанные им очки. Для этого он щёлкает на форме или элемент управления PictureBox с рисунком в виде надписи New или в меню Game выбирает команду New Game.

Только при соблюдении двух условий:

– если это первая, вторая или третья попытка;

– если в данной попытке набрано больше очков, чем в предыдущих более чем трёх попытках,

появляется библиотечная (которую мы не будем проектировать) панель InputBox с информацией о заработанных очках (рис. 20.5).

Во всех остальных случаях панель InputBox не появится, что означает проигрыш в игре.

Рис. 20.5. Панель InputBox с информацией о заработанных очках.

В эту панель InputBox игрок с радостью (он вошёл в тройку призёров) записывает своё имя (русскими или английскими буквами) и щёлкает кнопку OK. Панель InputBox закрывается.

6. Имя игрока с выбитыми им очками заносятся в таблицу результатов Options (ее мы будем проектировать вместе с основной формой), которую можно увидеть, если на форме выбрать или элемент управления PictureBox с рисунком в виде надписи Options или в меню Game – команду Options. В таблицу Options искусственный интеллект заносит три лучших результата (рис. 20.6), причём на первом месте всегда будет игрок с наибольшим количеством выбитых очков (high score) независимо от количества попыток.

Поделиться:
Популярные книги

Цеховик. Книга 1. Отрицание

Ромов Дмитрий
1. Цеховик
Фантастика:
попаданцы
альтернативная история
5.75
рейтинг книги
Цеховик. Книга 1. Отрицание

Безымянный раб [Другая редакция]

Зыков Виталий Валерьевич
1. Дорога домой
Фантастика:
боевая фантастика
9.41
рейтинг книги
Безымянный раб [Другая редакция]

Игрок, забравшийся на вершину. Том 8

Михалек Дмитрий Владимирович
8. Игрок, забравшийся на вершину
Фантастика:
фэнтези
рпг
5.00
рейтинг книги
Игрок, забравшийся на вершину. Том 8

Сумеречный Стрелок 2

Карелин Сергей Витальевич
2. Сумеречный стрелок
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Сумеречный Стрелок 2

Диверсант

Вайс Александр
2. Фронтир
Фантастика:
боевая фантастика
космическая фантастика
5.00
рейтинг книги
Диверсант

Приручитель женщин-монстров. Том 2

Дорничев Дмитрий
2. Покемоны? Какие покемоны?
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Приручитель женщин-монстров. Том 2

Приручитель женщин-монстров. Том 4

Дорничев Дмитрий
4. Покемоны? Какие покемоны?
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Приручитель женщин-монстров. Том 4

Путь (2 книга - 6 книга)

Игнатов Михаил Павлович
Путь
Фантастика:
фэнтези
6.40
рейтинг книги
Путь (2 книга - 6 книга)

Эксперимент

Юнина Наталья
Любовные романы:
современные любовные романы
4.00
рейтинг книги
Эксперимент

Начальник милиции

Дамиров Рафаэль
1. Начальник милиции
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Начальник милиции

Ты нас предал

Безрукова Елена
1. Измены. Кантемировы
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Ты нас предал

Восход. Солнцев. Книга VII

Скабер Артемий
7. Голос Бога
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Восход. Солнцев. Книга VII

Идеальный мир для Лекаря 20

Сапфир Олег
20. Лекарь
Фантастика:
фэнтези
юмористическое фэнтези
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 20

Тринадцатый

NikL
1. Видящий смерть
Фантастика:
фэнтези
попаданцы
аниме
6.80
рейтинг книги
Тринадцатый