Игра "Жизнь" - VB

Узнай цену своей работы

Формулировка задачи:

Смысл игры в том, что пользователь должен задать какую-либо фигуру на поле, и нажать "Старт". Должны произойти следующие действия:если соседей у клетки <2 или >3 то она погибает, если соседей ровно 2 или 3, то рождается. Пользователь просто наблюдает за развитием событий. Вот, что у меня есть, но код почему-то не работает, помогите, пожалуйста, найти ошибку! Всё поле состоит из белых клеток, с помощью чёрных клеток строится фигура. Заранее большое спасибо!
Ещё один нюанс: вокруг клетки должно располагаться 8 других, из этих 8 и выбираются соседи. У меня в коде написано, что
, я не знаю, как по-другому определить соседа. Если есть мысли, выкладывайте, пожалуйста! Спасибо!

Решение задачи: «Игра "Жизнь"»

textual
Листинг программы
Private Sub tmrMain_Timer()
  Dim iI As Integer
  Dim iJ As Integer
  Dim iH As Integer
  '
  For iI = 1 To 20
    For iJ = 1 To 20
      iY(iI, iJ) = iX(iI, iJ)
    Next iJ
  Next iI
  For iI = 1 To 20
    iY(iI, 0) = iY(iI, 20)
    iY(iI, 21) = iY(iI, 1)
  Next iI
  For iJ = 0 To 21
    iY(0, iJ) = iY(20, iJ)
    iY(21, iJ) = iY(1, iJ)
  Next iJ
  For iI = 1 To 20
    For iJ = 1 To 20
      iH = 9 * iY(iI, iJ)
      iH = iH + iY(iI - 1, iJ - 1) + iY(iI - 1, iJ) + iY(iI - 1, iJ + 1) + iY(iI, iJ - 1)
      iH = iH + iY(iI, iJ + 1) + iY(iI + 1, iJ - 1) + iY(iI + 1, iJ) + iY(iI + 1, iJ + 1)
      iX(iI, iJ) = iL(iH)
    Next iJ
  Next iI
  lG = lG + 1
  lblG.Caption = "Поколение № " & Trim$(Str$(lG))
  picXY.Cls
  picXY.FillStyle = vbFSSolid
  picXY.FillColor = RGB(0, 255, 0)
  For iI = 1 To 20
    For iJ = 1 To 20
      If 1 = iX(iI, iJ) Then
        picXY.Circle ((CSng(iI) - 1) + 0.5, (CSng(iJ) - 1) + 0.5), 0.3, RGB(0, 255, 0)
      End If
    Next iJ
  Next iI
End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.667 из 5
Похожие ответы