Вход на сайт
Аркада Win16 27.02.2025
212 просмотров
Перейти к просмотру всей ветки
в ответ uscheswoi_82 27.02.25 13:39
Я переделал игру тараканьи бега см. Тараканьи бега 09.05.2024 под Win16 / Windows 3.11. Писал на Visual Basic 4.0 :
Вот так выглядет проект:
Вот так выглядет диалоговое окно игры:
Алгоритм frmGame.frm:
Attribute VB_Name = "frmGame" Attribute VB_Creatable = False Attribute VB_Exposed = False Dim stavka_tarakan As Integer Const cnt_tarakany As Integer = 5 Private Sub cmdStart_Click() On Error Resume Next Do While Not (stavka_tarakan >= 1 And stavka_tarakan <= 6) stavka_tarakan = CInt(InputBox("Which tarakan (1-6)?")) Loop lbTarakan(stavka_tarakan).ForeColor = vbRed cmdStart.Enabled = False cmdStop.Enabled = True tmTimer.Enabled = True tmTimer.Interval = 100 End Sub Private Sub cmdStop_Click() Dim i As Integer tmTimer.Enabled = False tmTimer.Interval = 0 For i = 0 To cnt_tarakany lbTarakan(i).Left = 8 lbTarakan(i).ForeColor = vbBlack Next i stavka_tarakan = 0 End Sub Private Sub Form_Load() Randomize Timer cmdStart.Enabled = False cmdStop.Enabled = False End Sub Private Sub popupAbout_Click() MsgBox "Author uscheswoi_82", vbOKOnly + vbInformation End Sub Private Sub popupNewGame_Click() tmTimer.Enabled = False cmdStart.Enabled = True cmdStop.Enabled = True tarakan_stavka = 0 End Sub Private Sub popupQuit_Click() Unload Me End Sub Private Sub tmTimer_Timer() Dim i As Integer For i = 0 To cnt_tarakany Move_Tarakan lbTarakan(i), Int((10 * Rnd()) + 1) If get_position_tarakan(lbTarakan(i)) >= lbFinish.Left Then If stavka_tarakan = i Then tmTimer.Interval = 0 tmTimer.Enabled = False MsgBox "You Won!" Exit Sub Else tmTimer.Interval = 0 tmTimer.Enabled = False MsgBox "You Lose!" Exit Sub End If End If Next i End Sub
Алгоритм modMain.bas:
Attribute VB_Name = "modMain" Public Function get_position_tarakan(tarakan_id As Label) get_position_tarakan = tarakan_id.Left End Function Public Sub Move_Tarakan(id As Label, step As Integer) id.Left = id.Left + step End Sub
Вуаля! А вот так игра работает:
Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение