Валерий Алексеевич Жарков

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


Скачать книгу

= height – topleft.Y

      Return newPoint

      End Function

      Public Shared Function TranslateToTL(ByVal bottomleft As Point) _

      As Point

      Dim newPoint As Point

      newPoint.X = bottomleft.X

      newPoint.Y = height – bottomleft.Y

      Return newPoint

      End Function

      End Class

      После этих добавлений ( Block.vb, Grid.vb, HighScore.vb, HighScores.vb, PointTranslator.vb) в панели Solution Explorer должны быть файлы, показанные выше. Дважды щёлкая по имени файла, любой файл можно открыть, изучить и редактировать.

      Теперь в наш проект добавляем переменные и методы, связанные с формой Form2 для вывода результатов игры.

      Открываем файл Form2.vb (например, по схеме: File, Open, File) и в классе Form2 нашего проекта записываем следующее свойство.

      Листинг 20.21. Свойство.

      Public Property SoundOn() As Boolean

      Get

      Return Me.isSoundOn.Checked

      End Get

      Set(ByVal Value As Boolean)

      Me.isSoundOn.Checked = Value

      End Set

      End Property

      В панели Properties (для Form2) на вкладке Events дважды щёлкаем по имени события Load (Загрузка). Появившийся шаблон метода Form2_Load после записи нашего кода принимает следующий вид.

      Листинг 20.22. Метод для загрузки результатов игры.

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

      ByVal e As System.EventArgs) Handles MyBase.Load

      Me.DataGridView1.DataSource = HighScores.GetHighScores()

      End Sub

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

      Листинг 20.23. Метод-обработчик щелчка кнопки.

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

      ByVal e As System.EventArgs) Handles Button1.Click

      HighScores.ResetScores()

      Me.DataGridView1.DataSource = HighScores.GetHighScores()

      End Sub

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

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

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

      Build, Build Selection; Debug, Start Without Debugging.

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

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

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

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

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

      Глава 21. Методика программирования искусственного интеллекта в игре по сборке прямых из 5 и более объектов одинакового цвета

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

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