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

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

Шрифт:

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 = saved.Split(":".ToCharArray)(0)

Score = CInt(saved.Split(":".ToCharArray)(1))

End Sub

Public Function CompareTo(ByVal obj As Object) As Integer Implements System.IComparable.CompareTo

Dim other As HighScore

other = CType(obj, HighScore)

Return Me.Score – other.Score

End Function

End Class

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

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

Imports Microsoft.Win32

''' <summary>

''' Reads and writes the top three high scores to the registry.

''' </summary>

''' <remarks></remarks>

Public Class HighScores

''' <summary>

''' Read scores from the registry.

''' </summary>

''' <returns></returns>

''' <remarks></remarks>

Public Shared Function GetHighScores As HighScore

Dim tops(2) As HighScore

Dim scoreKey As RegistryKey = Registry.CurrentUser. _

CreateSubKey("Software\VBSamples\Collapse\HighScores")

For index As Integer = 0 To 2

Dim key As String = "place" & index.ToString

Dim score As New HighScore(CStr(scoreKey.GetValue(key)))

tops(index) = score

Next

scoreKey.Close

Return tops

End Function

''' <summary>

''' Update and write the high scores.

''' </summary>

  • Читать дальше
  • 1
  • ...
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • ...

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

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

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

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