Deutsch

Аркада Win16 27.02.2025

27.02.25 16:29
Re: Аркада Win16 27.02.2025
 
uscheswoi_82 патриот

Я переделал игру тараканьи бега см. Тараканьи бега 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



Вуаля! А вот так игра работает:




Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение
 

Перейти на