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

на главную

Жанры

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

ptfGradientStart, Color.MediumSlateBlue, _

Color.GhostWhite)

gr.DrawString(strText, fnt, lbrTitle, startPoint.X – 2, _

startPoint.Y + 2)

intCurrentGradientShift += intGradiantStep

If intCurrentGradientShift = 400 Then

intGradiantStep = -5

ElseIf intCurrentGradientShift = -400 Then

intGradiantStep = 5

End If

End Sub

Ниже формы Form2 дважды щёлкаем по значку второго таймера Timer. Появляется шаблон метода, который после записи нашего кода принимает следующий вид.

Листинг 21.14. Метод-обработчик события Tick.

Private Sub Timer2_Tick(ByVal sender As System.Object, _

ByVal e As System.EventArgs) Handles Timer2.Tick

'showScore

Dim g As Graphics = CreateGraphics

Dim fnt As New Font("Courier New", 20, FontStyle.Bold, _

GraphicsUnit.Point)

Dim startPoint As PointF = New PointF(20, 80)

Dim nextPoint As PointF = _

New PointF(startPoint.X + colW1, 80)

Dim ptfGradientStart As New PointF(intCurrentGradientRow, _

startPoint.X)

Dim ptfGradientEnd As New PointF(nextPoint.Y, _

intCurrentGradientRow)

lbrBoard = New LinearGradientBrush(ptfGradientStart, _

ptfGradientEnd, Color.GreenYellow, Color.SlateGray)

Dim PlayerNames As String = "Name" + Chr(13) + Chr(10)

Dim PlayerScores As String = "Score" + Chr(13) + Chr(10)

For i As Integer = 0 To 9

PlayerNames += CType(ArrPlayer(i), Player).PlayerName _

+ Chr(13) + Chr(10)

PlayerScores += CType(ArrPlayer(i), Player).PlayerScore _

+ Chr(13) + Chr(10)

Next

g.DrawString(PlayerNames, fnt, lbrBoard, startPoint)

g.DrawString(PlayerScores, fnt, lbrBoard, nextPoint)

intCurrentGradientRow += intGradiantStep

End Sub

В

случае необходимости, методика добавления в проект звукового сигнала Beep (по-русски: Бип) описана ранее.

21.5. Запуск игры

Строим и запускаем программу на выполнение обычным образом:

Build, Build Selection; Debug, Start Without Debugging.

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

Игрок периодически щёлкает по выбранному им мячу и по клетке, в которую мяч перемещается. А искусственный интеллект периодически размещает в пустующие клетки следующие 3 больших мяча произвольных цветов.

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

По методике данной главы можно разрабатывать самые разнообразные игры с использованием искусственного интеллекта по сборке линий

одного цвета из разноцветной палитры разнообразных фигур.

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

Глава 22. Методика программирования искусственного интеллекта в сюжетных играх на примере сюжета о пещерных людях Адаме и Еве

22.1. Общие сведения

Опишем методику проектирования и программирования типичной и распространённой ролевой (Role-playing game – RPG) сюжетной игры и использованием искусственного интеллекта, когда игрок в роли пещерного человека Адама собирает на земле горящие факелы для Евы (чтобы согреть её в пещере).

Данную игру мы будем разрабатывать, следуя проекту в заархивированном виде CaveManHank.zip (Пещерный человек Хэнк) автора Ivo Salmre от 27.6.2002 с сайта gotdotnet.com для устаревшей версии Visual Studio, причём, для карманного компьютера (КПК), но с нашими усовершенствованиями для современной версии Visual Studio, причём для настольного компьютера или планшета.

В панели Solution Explorer (нашего будущего проекта) или в папке с именем проекта дважды щёлкаем по имени графического файла Hank_FacingForward1.bmp (загруженного, например, из Интернета) для изображения пещерного мужчины с именем Хэнк (у нас он будет зваться, как Адам). Появляется собственный графический редактор Visual Studio с изображением этого мужчины, причём инструментами этого редактора можно редактировать это изображение (рис. 22.1) применительно к нашим задачам.

Аналогично в панели Solution Explorer дважды щёлкаем по имени графического файла Jane_FacingForward1a.bmp для изображения пещерной женщины с именем Джейн (у нас она будет зваться, как Ева). Появляется редактор Visual Studio с изображением этой женщины (рис. 22.2). Аналогично можно открыть и редактировать остальные графические файлы проекта.

Рис. 22.1. Пещерный мужчина Адам. Рис. 22.2. Пещерная женщина Ева.

Как уже и ранее было рассказано, и в этой методической игре поле игры состоит из нескольких слоёв (layers) изображений.

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

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

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

Черный Маг Императора 9

Герда Александр
9. Черный маг императора
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Черный Маг Императора 9

Не грози Дубровскому! Том II

Панарин Антон
2. РОС: Не грози Дубровскому!
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Не грози Дубровскому! Том II

Идеальный мир для Социопата 7

Сапфир Олег
7. Социопат
Фантастика:
боевая фантастика
6.22
рейтинг книги
Идеальный мир для Социопата 7

Бремя империи

Афанасьев Александр
Бремя империи - 1.
Фантастика:
альтернативная история
9.34
рейтинг книги
Бремя империи

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

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

Мастер...

Чащин Валерий
1. Мастер
Фантастика:
героическая фантастика
попаданцы
аниме
6.50
рейтинг книги
Мастер...

Эфемер

Прокофьев Роман Юрьевич
7. Стеллар
Фантастика:
боевая фантастика
рпг
7.23
рейтинг книги
Эфемер

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

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

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

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

Дракон

Бубела Олег Николаевич
5. Совсем не герой
Фантастика:
фэнтези
попаданцы
9.31
рейтинг книги
Дракон

Не грози Дубровскому! Том V

Панарин Антон
5. РОС: Не грози Дубровскому!
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Не грози Дубровскому! Том V

Первый пользователь. Книга 2

Сластин Артем
2. Первый пользователь
Фантастика:
боевая фантастика
рпг
4.80
рейтинг книги
Первый пользователь. Книга 2

Последний попаданец 9

Зубов Константин
9. Последний попаданец
Фантастика:
юмористическая фантастика
рпг
5.00
рейтинг книги
Последний попаданец 9

Запретный Мир

Каменистый Артем
1. Запретный Мир
Фантастика:
фэнтези
героическая фантастика
8.94
рейтинг книги
Запретный Мир