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

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

СКАЧАТЬ style="font-size:15px;">      End While

      End Sub

      ''' <summary>

      ''' Look to the blocks on each side.

      ''' </summary>

      ''' <remarks></remarks>

      Private Sub FindNeighbors()

      ' Take the first block out of the arraylist and examine it.

      Dim location As Point = CType(blocksToExamine(0), Point)

      Dim currentBlock As Block = matrix(location.X, location.Y)

      Dim row As Integer = location.X

      Dim column As Integer = location.Y

      blocksToExamine.RemoveAt(0)

      Dim nextRow As Integer

      Dim nextCol As Integer

      Dim selected As Block

      ' look up

      If row < matrix.GetLength(0) – 1 Then

      nextRow = row + 1

      selected = matrix(nextRow, column)

      ExamineNeighbor(selected, nextRow, column, _

      currentBlock.Color)

      End If

      ' look down

      If row > 0 Then

      nextRow = row – 1

      selected = matrix(nextRow, column)

      ExamineNeighbor(selected, nextRow, column, _

      currentBlock.Color)

      End If

      ' look left

      If column > 0 Then

      nextCol = column – 1

      selected = matrix(row, nextCol)

      ExamineNeighbor(selected, row, nextCol, _

      currentBlock.Color)

      End If

      ' look right

      If column < matrix.GetLength(1) – 1 Then

      nextCol = column + 1

      selected = matrix(row, nextCol)

      ExamineNeighbor(selected, row, nextCol, _

      currentBlock.Color)

      End If

      End Sub

      ''' <summary>

      ''' If the neighbor is the same color, add it to the blocks

      ''' to examine.

      ''' </summary>

      ''' <param name="selected"></param>

      ''' <param name="row"></param>

      ''' <param name="column"></param>

      ''' <param name="color"></param>

      ''' <remarks></remarks>

      Private Sub ExamineNeighbor(ByVal selected As Block, _

      ByVal row As Integer, ByVal column As Integer, _

      ByVal color As Color)

      If Not selected Is Nothing Then

      If selected.Color.Equals(color) Then

      If Not selected.MarkedForDeletion Then

      selected.MarkedForDeletion = True

      blocksToExamine.Add(New Point(row, column))

      End If

      End If

      End If

      End Sub

      End Class

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

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

      ''' <summary>

      ''' Represents one high score.

      ''' </summary>

      ''' <remarks></remarks>

      Public Class HighScore

      Implements IComparable

      Public nameValue As String

      Public scoreValue As Integer

      Public Property Name() As String

      Get

      Return nameValue

      End Get

      Set(ByVal Value As String)

      nameValue = Value

      End Set

      End Property

      Public Property Score() As Integer

      Get

      Return scoreValue

      End Get

      Set(ByVal Value As Integer)

      scoreValue = Value

      End Set

      End Property

      Public Overrides Function ToString() As String

      Return Name & ":" & Score

      End Function

      Public Sub New(ByVal saved As String)

      Name СКАЧАТЬ