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

Чтение книги онлайн.

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

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

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

Set

      End Property

      Public Property MarkedForDeletion() As Boolean

      Get

      Return deletionValue

      End Get

      Set(ByVal Value As Boolean)

      deletionValue = Value

      End Set

      End Property

      Public Sub New(ByVal newColor As Color)

      colorValue = newColor

      End Sub

      Public Sub New(ByVal colors() As Color)

      Dim ncolors As Integer = colors.Length

      Dim pickedColor As Integer

      pickedColor = rand.Next(0, ncolors)

      colorValue = colors(pickedColor)

      End Sub

      Public Sub Draw(ByVal graphics As Graphics, ByVal point As Point)

      Dim brush As System.Drawing.Drawing2D.LinearGradientBrush = _

      CreateTheBrush(point)

      DrawTheCircle(graphics, brush, point)

      End Sub

      Private Sub DrawTheCircle(ByVal graphics As Graphics, _

      ByVal brush As LinearGradientBrush, ByVal location As Point)

      Dim topleft As Point = location

      Dim bottomright As Point = New Point(location.X + _

      BlockSize, location.Y + BlockSize)

      Dim transTopLeft As Point = PointTranslator.TranslateToBL( _

      topleft)

      Dim transBottomRight As Point = _

      PointTranslator.TranslateToBL(bottomright)

      Dim transwidth As Integer = transBottomRight.X – transTopLeft.X

      Dim transheight As Integer = _

      transBottomRight.Y – transTopLeft.Y

      graphics.FillEllipse(brush, New Rectangle(transTopLeft, _

      New Size(transwidth, transheight)))

      End Sub

      Private Function CreateTheBrush(ByVal location As Point) As _

      LinearGradientBrush

      Dim transLocation As Point = _

      PointTranslator.TranslateToBL(location)

      Dim brushpt1 As Point = transLocation

      Dim brushpt2 As New Point(transLocation.X + Block.BlockSize _

      + 4, transLocation.Y – BlockSize – 4)

      Dim brush As New LinearGradientBrush(brushpt1, _

      brushpt2, Me.Color, System.Drawing.Color.White)

      Return brush

      End Function

      End Class

      По второму варианту, в панели Solution Explorer выполняем правый щелчок по имени проекта и в контекстном меню выбираем Add, New Item, в панели Add New Item выделяем шаблон Code File, в окне Name записываем имя Grid.vb и щёлкаем кнопку Add. В проект (и в панель Solution Explorer) добавляется этот файл, открывается пустое окно редактирования кода, в которое записываем код со следующего листинга.

      Листинг 20.17. Новый файл.

      ''' <summary>

      ''' This class represents the grid of blocks. It handles most of

      ''' the game play.

      ''' </summary>

      ''' <remarks></remarks>

      Public Class Grid

      ' The grids is 12 columns and 15 rows of Block objects.

      Dim matrix(11, 14) As Block

      ''' <summary>

      ''' Creates a few rows of blocks to start the game.

      ''' Game starts with Red, Blue, and Green blocks.

      ''' </summary>

      ''' <param name="nrows">Number of rows of blocks to create

      ''' to start the game.</param>

      ''' <remarks></remarks>

      Public Sub New(ByVal nrows As Integer)

      If nrows > matrix.GetLength(0) Then

      Throw New Exception("Must start with " & _

      matrix.GetLength(0) & " or fewer rows.")

      End If

      Dim row As Integer

      Dim column As Integer

      For row = 0 To nrows – 1

      For column = 0 To matrix.GetLength(1) – 1

      matrix(row, column) = New Block( _

      New Color() {Color.Red, Color.Blue, Color.Green})

      Next

      Next

      For row = nrows To matrix.GetLength(0) – 1

      For column = 0 To matrix.GetLength(1) – 1

      matrix(row, column) = Nothing

      Next

      Next

      End Sub

      ''' <summary>

      ''' A new row may be added at any time. New rows have Gray

      ''' blocks in addition

      ''' to Red, Blue, and Green. This makes the game more difficult.

      '''

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