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

Жарков Валерий

Шрифт:

ArrPlayer.Add(New Player("AAA", "1500"))

ArrPlayer.Add(New Player("AAA", "1000"))

ArrPlayer.Add(New Player("AAA", "500"))

End Sub

Public Sub SaveScore

LoadScore

For i As Integer = 0 To 9

If CDbl(AddedPlayer.PlayerScore) >= _

CDbl(CType(ArrPlayer(i), Player).PlayerScore) Then

ArrPlayer.Insert(i, AddedPlayer)

Exit For

End If

Next

Dim FSW As New StreamWriter("Score.dat")

Dim s As String = "#Assignment Line#"

s += Chr(13) + Chr(10)

For i As Integer = 0 To 9

s += CType(ArrPlayer(i), Player).PlayerName + ";" + _

CType(ArrPlayer(i), Player).PlayerScore

s += Chr(13) + Chr(10)

Next

FSW.Write(s)

FSW.Close

End Sub

Public Sub PlashScreen

Me.BackgroundImage = Image.FromFile("GameOver.gif")

Application.DoEvents

Threading.Thread.Sleep(2000)

End Sub

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

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

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

ByVal 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. Запуск игры

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

  • Читать дальше
  • 1
  • ...
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

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