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

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

Шрифт:

Protected Overrides Sub OnMouseMove(ByVal e As _

System.Windows.Forms.MouseEventArgs)

If picState = BallState.NORMAL_BALL Or _

picState = BallState.JUMPING_BALL Then

Me.Image = Image.FromFile(ImgList(picIndex + 1))

End If

End Sub

Protected Overrides Sub OnMouseLeave( _

ByVal e As System.EventArgs)

If picState = BallState.NORMAL_BALL Or picState = _

BallState.JUMPING_BALL Then

Me.Image = Image.FromFile(ImgList(picIndex))

End If

End Sub

End Class

После этих добавлений (DPaint.vb, mModule.vb, MotionPic.vb, open.ico, save.ico) в панели Solution Explorer должны быть файлы, показанные выше. Дважды щёлкая по имени файла, любой файл можно открыть, изучить и редактировать.

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

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

Imports System.Drawing.Drawing2D

Imports System.Drawing.Text

Imports System.IO

Теперь в классе Form2 нашего проекта записываем следующие переменные и методы.

Листинг 21.12. Переменные и методы.

Dim gr As Graphics

Dim lbrTitle As LinearGradientBrush

Dim lbrBoard As LinearGradientBrush

Dim midPoint As Point

Dim startPoint As PointF

Dim intGradiantStep As Integer = 5

Dim intCurrentGradientShift As Integer = 0

Const colW1 As Integer = 250

Const colW2 As Integer = 150

Const rowH As Integer = 30

Dim AddedPlayer As New Player("", "-1")

Dim ArrPlayer As New ArrayList

Dim intCurrentGradientRow As Integer = 110

Public WriteOnly Property AddPlayer As Player

Set(ByVal Value As Player)

If Value.PlayerName.Length > 14 Then

Value.PlayerName = _

Value.PlayerName.Substring(0, 14)

End If

AddedPlayer = Value

End Set

End Property

Public Sub drawTable

Me.BackgroundImage = Nothing

Me.BackColor = Color.Moccasin

Application.DoEvents

Dim g As Graphics = CreateGraphics

Dim tpen1 As New Pen(Color.Red, 1)

Dim tpen2 As New Pen(Color.Black, 1)

Dim P1 As New Point(2, 80)

Dim P2 As New Point(400, 80)

For i As Integer = 0 To 11

g.DrawLine(tpen1, P1, P2)

P1.Y += 1

P2.Y += 1

g.DrawLine(tpen2, P1, P2)

P1.Y += rowH – 1

P2.Y += rowH – 1

Next

P1.Y = 80

P2.X = P1.X

P2.Y -= rowH

g.DrawLine(tpen2, P1, P2)

P1.X += 1

P2.X += 1

g.DrawLine(tpen1, P1, P2)

P1.X += colW1

P2.X += colW1

g.DrawLine(tpen2, P1, P2)

P1.X += 1

P2.X += 1

g.DrawLine(tpen1, P1, P2)

P1.X += colW2 – 3

P2.X += colW2 – 3

g.DrawLine(tpen1, P1, P2)

P1.X += 1

P2.X += 1

g.DrawLine(tpen2, P1, P2)

SaveScore

LoadScore

Timer1.Enabled = True

Timer2.Enabled = True

End Sub

Public Sub LoadScore

If Not File.Exists("Score.dat") Then

GoTo newScore

End If

Dim FSR As New StreamReader("Score.dat")

Dim s As String

s = FSR.ReadLine

If Trim(s) <> "#Assignment Line#" Then

FSR.Close

GoTo newScore

End If

For i As Integer = 0 To 9

s = FSR.ReadLine

Dim PlayerName As String = s.Split(CChar(";"))(0)

Dim PlayerScore As String = s.Split(CChar(";"))(1)

ArrPlayer.Add(New Player(PlayerName, PlayerScore))

Next

FSR.Close

Exit Sub

newScore:

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

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

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

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

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

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

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

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

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

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

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

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