Игра "Жизнь" - 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д