Programovanie makier v LibreOffice: Dvojrozmerné polia (2)

LibreOffice Pokračujeme v predstavovaní dvojrozmerných polí a to s využitim v nejakej zvolenej aplikácii. V minulom diele bola zvolená aplikácia hod kocky, tentoraz dvojrozmerné polia nasadíme v simulácii pohybu hráča.   

Simulácia pohybu hráča

Našou víziou je využiť dvojrozmerné polia v už naprogramovanom makre v tomto dieli. Vykreslenie pohybu hráča nebude len obyčajné nasekanie veci do reťazca, ale interaktívnejšim spôsobom s pomocou dvojrozmerných polí. Ok, poďme nato!

1. program: Interaktívnejšia simulácia pohybu hráča

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
        Dim vychodziaPoloha(1 To 7, 1 To 7)
        Dim dvojPole(1 To 7, 1 To 7)
        
        pocetKrokov = Int((3-1+1)*Rnd+1)   REM pohyb je zalozeny na nahode
        smer = Int((4-1+1)*Rnd+1)
        
        REM ideme vykreslit pohyb
        
        For i = 1 To 7
                For j = 1 To 7
                        If (i = 4 AND j = 4) Then
                                vychodziaPoloha(i, j) = "+"
                        Else vychodziaPoloha(i, j) = "*"
                        End If
                Next
        Next
        
        If smer = 1 Then
                If pocetKrokov = 1 Then
                                For i = 1 To 7
                                        For j = 1 To 7
                                                If (i = 3 AND j = 4) Then
                                                dvojPole(i, j) = "+"
                                                Else dvojPole(i, j) = "*"
                                                End If
                                        Next
                               Next
                End If
        End If

        If smer = 1 Then
                If pocetKrokov = 2 Then
                                For i = 1 To 7
                                        For j = 1 To 7
                                                If (i = 2 AND j = 4) Then
                                                dvojPole(i, j) = "+"
                                                Else dvojPole(i, j) = "*"
                                                End If
                                        Next
                               Next
                End If
        End If
        
        If smer = 1 Then
                If pocetKrokov = 3 Then
                                For i = 1 To 7
                                        For j = 1 To 7
                                                If (i = 1 AND j = 4) Then
                                                dvojPole(i, j) = "+"
                                                Else dvojPole(i, j) = "*"
                                                End If
                                        Next
                               Next
                End If
        End If
        
        If smer = 2 Then
                If pocetKrokov = 1 Then
                                For i = 1 To 7
                                        For j = 1 To 7
                                                If (i = 4 AND j = 5) Then
                                                dvojPole(i, j) = "+"
                                                Else dvojPole(i, j) = "*"
                                                End If
                                        Next
                               Next
                End If
        End If  
        
        If smer = 2 Then
                If pocetKrokov = 2 Then
                                For i = 1 To 7
                                        For j = 1 To 7
                                                If (i = 4 AND j = 6) Then
                                                dvojPole(i, j) = "+"
                                                Else dvojPole(i, j) = "*"
                                                End If
                                        Next
                               Next
                End If
        End If
        
        If smer = 2 Then
                If pocetKrokov = 3 Then
                                For i = 1 To 7
                                        For j = 1 To 7
                                                If (i = 4 AND j = 7) Then
                                                dvojPole(i, j) = "+"
                                                Else dvojPole(i, j) = "*"
                                                End If
                                        Next
                               Next
                End If
        End If
        
        If smer = 3 Then
                If pocetKrokov = 1 Then
                                For i = 1 To 7
                                        For j = 1 To 7
                                                If (i = 5 AND j = 4) Then
                                                dvojPole(i, j) = "+"
                                                Else dvojPole(i, j) = "*"
                                                End If
                                        Next
                               Next
                End If
        End If
        
        If smer = 3 Then
                If pocetKrokov = 2 Then
                                For i = 1 To 7
                                        For j = 1 To 7
                                                If (i = 6 AND j = 4) Then
                                                dvojPole(i, j) = "+"
                                                Else dvojPole(i, j) = "*"
                                                End If
                                        Next
                               Next
                End If
        End If  
        
        If smer = 3 Then
                If pocetKrokov = 3 Then
                                For i = 1 To 7
                                        For j = 1 To 7
                                                If (i = 7 AND j = 4) Then
                                                dvojPole(i, j) = "+"
                                                Else dvojPole(i, j) = "*"
                                                End If
                                        Next
                               Next
                End If
        End If  
        
        If smer = 4 Then
                If pocetKrokov = 1 Then
                                For i = 1 To 7
                                        For j = 1 To 7
                                                If (i = 4 AND j = 3) Then
                                                dvojPole(i, j) = "+"
                                                Else dvojPole(i, j) = "*"
                                                End If
                                        Next
                               Next
                End If
        End If
        
        If smer = 4 Then
                If pocetKrokov = 2 Then
                                For i = 1 To 7
                                        For j = 1 To 7
                                                If (i = 4 AND j = 2) Then
                                                dvojPole(i, j) = "+"
                                                Else dvojPole(i, j) = "*"
                                                End If
                                        Next
                               Next
                End If
        End If  
                        
        If smer = 4 Then
                If pocetKrokov = 3 Then
                                For i = 1 To 7
                                        For j = 1 To 7
                                                If (i = 4 AND j = 1) Then
                                                dvojPole(i, j) = "+"
                                                Else dvojPole(i, j) = "*"
                                                End If
                                        Next
                               Next
                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
        
        nultaPozicia = vychodziaPoloha(1,1) & vychodziaPoloha(1,2) & vychodziaPoloha(1,3) & vychodziaPoloha(1,4) & vychodziaPoloha(1,5) & vychodziaPoloha(1,6) & vychodziaPoloha(1,7) & Chr(10) & vychodziaPoloha(2,1) & vychodziaPoloha(2,2) & vychodziaPoloha(2,3) & vychodziaPoloha(2,4) & vychodziaPoloha(2,5) & vychodziaPoloha(2,6) & vychodziaPoloha(2,7) & Chr(10) & vychodziaPoloha(3,1) & vychodziaPoloha(3,2) & vychodziaPoloha(3,3) & vychodziaPoloha(3,4) & vychodziaPoloha(3,5) & vychodziaPoloha(3,6) & vychodziaPoloha(3,7) & Chr(10) & vychodziaPoloha(4,1) & vychodziaPoloha(4,2) & vychodziaPoloha(4,3) & vychodziaPoloha(4,4) & vychodziaPoloha(4,5) & vychodziaPoloha(4,6) & vychodziaPoloha(4,7) & Chr(10) & vychodziaPoloha(5,1) & vychodziaPoloha(5,2) & vychodziaPoloha(5,3) & vychodziaPoloha(5,4) & vychodziaPoloha(5,5) & vychodziaPoloha(5,6) & vychodziaPoloha(5,7) & Chr(10) & vychodziaPoloha(6,1) & vychodziaPoloha(6,2) & vychodziaPoloha(6,3) & vychodziaPoloha(6,4) & vychodziaPoloha(6,5) & vychodziaPoloha(6,6) & vychodziaPoloha(6,7) & Chr(10) & vychodziaPoloha(7,1) & vychodziaPoloha(7,2) & vychodziaPoloha(7,3) & vychodziaPoloha(7,4) & vychodziaPoloha(7,5) & vychodziaPoloha(7,6) & vychodziaPoloha(7,7)

        vykreslenePole = dvojPole(1,1) & dvojPole(1,2) & dvojPole(1,3) & dvojPole(1,4) & dvojPole(1,5) & dvojPole(1,6) & dvojPole(1,7) & Chr(10) & dvojPole(2,1) & dvojPole(2,2) & dvojPole(2,3) & dvojPole(2,4) & dvojPole(2,5) & dvojPole(2,6) & dvojPole(2,7) & Chr(10) & dvojPole(3,1) & dvojPole(3,2) & dvojPole(3,3) & dvojPole(3,4) & dvojPole(3,5) & dvojPole(3,6) & dvojPole(3,7) & Chr(10) & dvojPole(4,1) & dvojPole(4,2) & dvojPole(4,3) & dvojPole(4,4) & dvojPole(4,5) & dvojPole(4,6) & dvojPole(4,7) & Chr(10) & dvojPole(5,1) & dvojPole(5,2) & dvojPole(5,3) & dvojPole(5,4) & dvojPole(5,5) & dvojPole(5,6) & dvojPole(5,7) & Chr(10) & dvojPole(6,1) & dvojPole(6,2) & dvojPole(6,3) & dvojPole(6,4) & dvojPole(6,5) & dvojPole(6,6) & dvojPole(6,7) & Chr(10) & dvojPole(7,1) & dvojPole(7,2) & dvojPole(7,3) & dvojPole(7,4) & dvojPole(7,5) & dvojPole(7,6) & dvojPole(7,7)     
        
        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

Výsledok makra Výsledok makra



(Jako ve škole) Průměr: 1.67 | Hodnotilo: 3
 

Přidat názor

 

Nejsou podporovány žádné značky, komentáře jsou jen čistě textové. Více o diskuzích najdete v nápovědě. Diskuzi můžete sledovat pomocí RSS kanálu.

 
Eduard Boldižár

Eduard Boldižár

Som redaktorom stránky astrotech.cz. Mám 24 rokov. Čas trávim v IT škole. Medzi moje záľuby patrí astronómia, sci-fi literatúra a programovanie.

 
 
 
woo jaw demo hz