Hod kockou
Začneme typickým problémom náhody, hod kocky.
1. program: Hod kockou
Sub hodKocky REM začiatok procedúry Dim vstup As String REM deklarácie premenných Dim tip As Integer Dim hod As Integer Dim kocka As String Dim oznamVitaz As String vstup = InputBox("Ideme si hodiť kockou! Skús tipnuť, aké číslo dostaneme pri hode kockou? Tipujte štandardne od 1 do 6") If IsNull(vstup) Then MsgBox "Nič si nezadal!" Exit Sub End If If Len(Trim(vstup)) = 0 Then MsgBox "Nič si nezadal!" Exit Sub End If If Int(Trim(vstup)) <= 0 OR Int(Trim(vstup)) >= 7 Then MsgBox "Zadal si mimo intervál hodu kocky!" Exit Sub End If tip = Int(vstup) hod = Int((6-1+1)*Rnd+1) REM hadžeme imaginárnou kockou If hod = 1 Then kocka = "-----" & Chr(10) & " " & Chr(10) & " * " & Chr(10) & " " & Chr(10) & "-----" End If If hod = 2 Then kocka = "-----" & Chr(10) & " * " & Chr(10) & " " & Chr(10) & " * " & Chr(10) & "-----" End If If hod = 3 Then kocka = "-----" & Chr(10) & " * " & Chr(10) & " * " & Chr(10) & " * " & Chr(10) & "-----" End If If hod = 4 Then kocka = "-----" & Chr(10) & " * * " & Chr(10) & " " & Chr(10) & " * * " & Chr(10) & "-----" End If If hod = 5 Then kocka = "-----" & Chr(10) & " * * " & Chr(10) & " * " & Chr(10) & " * * " & Chr(10) & "-----" End If If hod = 6 Then kocka = "-----" & Chr(10) & " *** " & Chr(10) & " " & Chr(10) & " *** " & Chr(10) & "-----" End If If hod = tip Then oznamVitaz = "Uhadol si, blahoželám" Else oznamVitaz = "Neuhadol si, smola" End If MsgBox "Hadžem kockou" & Chr(10) & Chr(10) & kocka & Chr(10) & Chr(10) & oznamVitaz End Sub REM koniec procedúry
Simulácia pohybu hráča
Budeme simulovať náhodný pohyb hráča. Smer aj počet krokov sa určí náhodne. Poďme sa pozrieť na implementáciu.
2. program:
Sub pohyb REM začiatok procedúry Dim pocetKrokov As Integer REM deklaracie premennych Dim smer As Integer Dim nultaPozicia As String Dim vykreslenePole As String Dim smerSlovom As String Dim test As Integer pocetKrokov = Int((3-1+1)*Rnd+1) REM pohyb je zalozeny na nahode smer = Int((4-1+1)*Rnd+1) REM ideme vykreslit pohyb nultaPozicia = "*******" & Chr(10) & "*******" & Chr(10) & "*******" & Chr(10) & "***+***" & Chr(10) & "*******" & Chr(10) & "*******" & Chr(10) & "*******" If smer = 1 Then If pocetKrokov = 1 Then vykreslenePole = "*******" & Chr(10) & "*******" & Chr(10) & "***+***" & Chr(10) & "*******" & Chr(10) & "*******" & Chr(10) & "*******" & Chr(10) & "*******" End If End If If smer = 1 Then If pocetKrokov = 2 Then vykreslenePole = "*******" & Chr(10) & "***+***" & Chr(10) & "*******" & Chr(10) & "*******" & Chr(10) & "*******" & Chr(10) & "*******" & Chr(10) & "*******" End If End If If smer = 1 Then If pocetKrokov = 3 Then vykreslenePole = "***+***" & Chr(10) & "*******" & Chr(10) & "*******" & Chr(10) & "*******" & Chr(10) & "*******" & Chr(10) & "*******" & Chr(10) & "*******" End If End If If smer = 2 Then If pocetKrokov = 1 Then vykreslenePole = "*******" & Chr(10) & "*******" & Chr(10) & "*******" & Chr(10) & "****+**" & Chr(10) & "*******" & Chr(10) & "*******" & Chr(10) & "*******" End If End If If smer = 2 Then If pocetKrokov = 2 Then vykreslenePole = "*******" & Chr(10) & "*******" & Chr(10) & "*******" & Chr(10) & "*****+*" & Chr(10) & "*******" & Chr(10) & "*******" & Chr(10) & "*******" End If End If If smer = 2 Then If pocetKrokov = 3 Then vykreslenePole = "*******" & Chr(10) & "*******" & Chr(10) & "*******" & Chr(10) & "******+" & Chr(10) & "*******" & Chr(10) & "*******" & Chr(10) & "*******" End If End If If smer = 3 Then If pocetKrokov = 1 Then vykreslenePole = "*******" & Chr(10) & "*******" & Chr(10) & "*******" & Chr(10) & "*******" & Chr(10) & "***+***" & Chr(10) & "*******" & Chr(10) & "*******" End If End If If smer = 3 Then If pocetKrokov = 2 Then vykreslenePole = "*******" & Chr(10) & "*******" & Chr(10) & "*******" & Chr(10) & "*******" & Chr(10) & "*******" & Chr(10) & "***+***" & Chr(10) & "*******" End If End If If smer = 3 Then If pocetKrokov = 3 Then vykreslenePole = "*******" & Chr(10) & "*******" & Chr(10) & "*******" & Chr(10) & "*******" & Chr(10) & "*******" & Chr(10) & "*******" & Chr(10) & "***+***" End If End If If smer = 4 Then If pocetKrokov = 1 Then vykreslenePole = "*******" & Chr(10) & "*******" & Chr(10) & "*******" & Chr(10) & "**+****" & Chr(10) & "*******" & Chr(10) & "*******" & Chr(10) & "*******" End If End If If smer = 4 Then If pocetKrokov = 2 Then vykreslenePole = "*******" & Chr(10) & "*******" & Chr(10) & "*******" & Chr(10) & "*+*****" & Chr(10) & "*******" & Chr(10) & "*******" & Chr(10) & "*******" End If End If If smer = 4 Then If pocetKrokov = 3 Then vykreslenePole = "*******" & Chr(10) & "*******" & Chr(10) & "*******" & Chr(10) & "+******" & Chr(10) & "*******" & Chr(10) & "*******" & Chr(10) & "*******" End If End If If smer = 1 Then smerSlovom = "sever" End If If smer = 2 Then smerSlovom = "východ" End If If smer = 3 Then smerSlovom = "juh" End If If smer = 4 Then smerSlovom = "západ" End If REM a všetko to vypíšeme MsgBox "Začiatočná pozícia" & Chr(10) & Chr(10) & nultaPozicia & Chr(10) & Chr(10) & "Smer: " & smerSlovom & Chr(10) & "Počet krokov: " & pocetKrokov & Chr(10) & Chr(10) & vykreslenePole End Sub REM koniec procedúry