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

на главную - закладки

Жанры

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

Private sign As Integer

#Region "Property Declaration"

Public Sub New(ByVal eSize As Size, ByVal eLocation As Point)

Me.Size = eSize

Me.Location = eLocation

picWidth = Me.Width

picHeight = Me.Height

picTop = Me.Top

picLeft = Me.Left

picState = BallState.NO_BALL

picIndex = -1

End Sub

Public ReadOnly Property MPState As Integer

Get

Return picState

End Get

End Property

Public ReadOnly Property MPIndex As Integer

Get

Return picIndex

End Get

End Property

Public Sub Init

Me.Init(CInt(Rnd * 12))

End Sub

#End Region

Public Sub Init(ByVal value As Integer)

picIndex = value

picState = BallState.ZOOMING_BALL

Dim i As Integer = ImgList(value).LastIndexOf("\")

Me.Tag = ImgList(value).Substring(i + 1, _

ImgList(value).Length – i – 5)

ZoomIn

End Sub

Private Sub ZoomIn

Me.Top = picTop + (picHeight – 4) \ 2

Me.Left = picLeft + (picWidth – 4) \ 2

Me.Width = 4

Me.Height = 4

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

AddHandler myTimer.Tick, AddressOf TimerEventZoomIn

myTimer.Interval = 10

myTimer.Start

End Sub

Private Sub TimerEventZoomIn(ByVal myObject As Object, _

ByVal myEventArgs As EventArgs)

If Me.Top > picTop And Me.Width < picWidth Then

Me.Top -= 2

Me.Left -= 2

Me.Width += 4

Me.Height += 4

Else

myTimer.Enabled = False

picState = BallState.NORMAL_BALL

RemoveHandler myTimer.Tick, AddressOf TimerEventZoomIn

End If

End Sub

Public Sub Jump

If picState = BallState.NORMAL_BALL Then

sign = 1

picState = BallState.JUMPING_BALL

AddHandler myTimer.Tick, AddressOf TimerEventJump

myTimer.Interval = 20

myTimer.Start

ElseIf picState = BallState.JUMPING_BALL Then

StopJump

End If

End Sub

Public Sub StopJump

If picState = BallState.JUMPING_BALL Then

picState = 0

myTimer.Enabled = False

RemoveHandler myTimer.Tick, AddressOf TimerEventJump

Me.Top = picTop

Me.Left = picLeft

Me.Height = picHeight

Me.Width = picWidth

End If

End Sub

Private Sub TimerEventJump(ByVal myObject As Object, _

ByVal myEventArgs As EventArgs)

Me.Height -= sign * 1

Me.Top = picTop + (Me.Height – picHeight) \ 4

If Me.Height = picHeight Or Me.Height <= 3 * picHeight / 4 Then

sign *= -1

End If

End Sub

Public Sub Destroy

If picState = BallState.JUMPING_BALL Then

StopJump

End If

picState = BallState.DESTROYING_BALL

AddHandler myTimer.Tick, AddressOf TimerEventDestroy

Me.Top = picTop + 1

Me.Left = picLeft + 1

Me.Width = picWidth – 2

Me.Height = picHeight – 2

myTimer.Interval = 10

myTimer.Start

End Sub

Private Sub TimerEventDestroy(ByVal myObject As Object, _

ByVal myEventArgs As EventArgs)

If Me.Top > picTop And Me.Width > 0 Then

Me.Top += 2

Me.Left += 2

Me.Width -= 4

Me.Height -= 4

Else

Me.Image = Nothing

Me.Top = picTop

Me.Left = picLeft

Me.Width = picWidth

Me.Height = picHeight

myTimer.Enabled = False

Me.picState = BallState.NO_BALL

Me.picIndex = -1

Me.Tag = ""

RemoveHandler myTimer.Tick, AddressOf TimerEventDestroy

End If

End Sub

Public Sub Reset

While Me.picState = BallState.DESTROYING_BALL

Application.DoEvents

End While

If Me.picState = BallState.JUMPING_BALL Then

StopJump

End If

While Me.picState = BallState.ZOOMING_BALL

Application.DoEvents

End While

Me.Image = Nothing

Me.picIndex = -1

Me.picState = BallState.NO_BALL

Me.Tag = ""

End Sub

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) и вверху записываем директивы для подключения требуемых пространств имен:

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

Свет во мраке

Михайлов Дем Алексеевич
8. Изгой
Фантастика:
фэнтези
7.30
рейтинг книги
Свет во мраке

Целитель. Книга вторая

Первухин Андрей Евгеньевич
2. Целитель
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Целитель. Книга вторая

Мое ускорение

Иванов Дмитрий
5. Девяностые
Фантастика:
попаданцы
альтернативная история
6.33
рейтинг книги
Мое ускорение

Инферно

Кретов Владимир Владимирович
2. Легенда
Фантастика:
фэнтези
8.57
рейтинг книги
Инферно

Тринадцатый

NikL
1. Видящий смерть
Фантастика:
фэнтези
попаданцы
аниме
6.80
рейтинг книги
Тринадцатый

Шведский стол

Ланцов Михаил Алексеевич
3. Сын Петра
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Шведский стол

Объединитель

Астахов Евгений Евгеньевич
8. Сопряжение
Фантастика:
боевая фантастика
постапокалипсис
рпг
5.00
рейтинг книги
Объединитель

Кровь и Пламя

Михайлов Дем Алексеевич
7. Изгой
Фантастика:
фэнтези
8.95
рейтинг книги
Кровь и Пламя

Герцогиня в ссылке

Нова Юлия
2. Магия стихий
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Герцогиня в ссылке

Столичный доктор. Том II

Вязовский Алексей
2. Столичный доктор
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Столичный доктор. Том II

Последний попаданец 11. Финал. Часть 1

Зубов Константин
11. Последний попаданец
Фантастика:
фэнтези
юмористическое фэнтези
рпг
5.00
рейтинг книги
Последний попаданец 11. Финал. Часть 1

Новый Рал

Северный Лис
1. Рал!
Фантастика:
фэнтези
попаданцы
5.70
рейтинг книги
Новый Рал

Горькие ягодки

Вайз Мариэлла
Любовные романы:
современные любовные романы
7.44
рейтинг книги
Горькие ягодки

Разведчик. Заброшенный в 43-й

Корчевский Юрий Григорьевич
Героическая фантастика
Фантастика:
боевая фантастика
попаданцы
альтернативная история
5.93
рейтинг книги
Разведчик. Заброшенный в 43-й