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

Читать онлайн книгу Справочник Жаркова по проектированию и программированию искусственного интеллекта. Том 6: Программирование на Visual Basic искусственного интеллекта. Продолжение 2 - Валерий Алексеевич Жарков страница 33

СКАЧАТЬ e As System.EventArgs) Handles Timer1.Tick

      gr = CreateGraphics()

      midPoint = New Point(Me.Width \ 2, 10)

      Dim strText As String = "Score Board"

      Dim fnt As New Font("Microsoft Sans Serif", 30, _

      FontStyle.Bold, GraphicsUnit.Point)

      Dim strSize As New SizeF(gr.MeasureString(strText, fnt))

      Dim ptfGradientStart As New _

      PointF(intCurrentGradientShift, 0)

      Dim ptfGradientEnd As New PointF(0, intCurrentGradientRow)

      lbrTitle = New LinearGradientBrush(ptfGradientStart, _

      ptfGradientEnd, Color.SteelBlue, Color.Brown)

      startPoint = New PointF(midPoint.X – _

      CInt(strSize.Width / 2), midPoint.Y)

      gr.DrawString(strText, fnt, lbrTitle, startPoint)

      ptfGradientStart = New PointF(0, intCurrentGradientShift)

      ptfGradientEnd = New PointF(intCurrentGradientRow, 0)

      lbrTitle = New LinearGradientBrush(ptfGradientEnd, _

      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 больших мяча произвольных цветов.

      Как только игрок соберёт горизонтальную, вертикальную или диагональную прямую линию СКАЧАТЬ