Kamis, 05 November 2015

Jack Onil Bab-9 Matriks

Game pada buku ini benar-benar ogut rancang untuk pemula, untuk itu ogut tidak akan menggunakan matematika yang rumit untuk perhitungannya.

Matriks telah dipelajari Anda semenjak duduk di sekolah lanjutan atas, matriks akan ogut pergunakan pada game ini, dan matriks yang digunakan bukan matriks tingkat tinggi seperti invers matriks, adjoint  atau matriks LU, tetapi sebuah matriks yang sangat sederhana.


Contoh di atas adalah sebuah matriks dengan jumlah baris matriks = 10 dan jumlah kolom matriks = 5, sedangkan 0 dan 1 adalah elemen-elemen dari matriks.

Matriks seperti di atas ogut gunakan untuk membatasi pergerakan  Onil di screen game, mengatur posisi item logistik yang jatuh serta untuk proses deteksi tabrakan antara Onil dan item logistik pada saat Onil menangkap item logistik.

9.1 Matriks Onil
Pada game di buku ini ogut menggunakan matriks berordo 70x29, dan pada baris ke-70 semua elemen matriks bernilai 1 sedangkan elemen lainnya bernilai 0(nol).


Elemen bernilai 1 artinya Onil bisa bergerak di posisi tersebut, bila elemen pada baris ke-70 diisi dengan 0(nol) maka Onil tidak bisa bergerak.

9.2 Matriks di Visual Basic
Untuk membuat  matriks di Visual Basic bisa digunakan array dua dimensi, untuk mendeklarasikan matriks onil berordo 70x29 dapat dilakukan dengan cara seperti di bawah.

Option Explicit

'Matriks
Public Const Baris_M = 70
Public Const Kolom_M = 29 'harus ganjil

Public Matriks_Onil(Baris_M - 1, _
                    Kolom_M - 1) As Integer

Array pada Visual Basic dimulai dari indeks 0(nol), untuk membuat array yang mampu menampung 10 buah nilai integer maka deklarasi array menjadi seperti berikut.


Perhatikanlah contoh di atas agar tidak membingungkan Anda pada saat pemrograman.

Dengan contoh seperti gambar di atas maka indeks baris untuk matriks onil dimulai dari 0 sampai dengan 69 dan 0 sampai dengan 28 untuk indeks kolom.

9.3 Pemrograman Matriks
Untuk menyimpan matriks onil ogut menggunakan sebuah file teks Matriks_Onil.txt, Anda dapat menemukan file ini di folder yang ogut sertakan.

Agar matriks onil bisa digunakan matriks tersebut harus ditempatkan(load) ke array.

Public Function Load_Matriks( _
                    Matriks_P() As Integer, _
                    Filename As String) As Boolean

    Dim My_Free_File As Integer
    Dim Text_Line As String
    Dim i As Integer
    
    
    My_Free_File = FreeFile()
    
    On Error Resume Next
    
    Open Filename For Input As #My_Free_File
    
    If Err.Number <> 0 Then
        MsgBox "Reading file error, " + _
                "Program terminated", _
                vbOKOnly, Filename
                
        Close #My_Free_File
        Load_Matriks = False
        On Error GoTo 0
        
        Exit Function
    End If
    
    i = 0
    Do While Not EOF(1)
        'baca file teks perbaris
        Line Input #My_Free_File, Text_Line
        
        'data string yang didapat dari file teks
        'diuraikan menjadi matriks Onil
        Get_matriks_Member Matriks_P, i, Text_Line
        
        i = i + 1
    Loop

    Close #My_Free_File
    
    On Error GoTo 0
    
    Load_Matriks = True

End Function

Pada proses load dari file Matriks_Onil.txt data dibaca perbaris(tipe data string), sehingga diperlukan sub untuk menguraikan satu data string menjadi elemen-elemen matriks.

Proses menguraikan ini juga tidak sulit karena Visual Basic telah menyediakan fungsi-fungsi untuk operasi string.


Private Sub Get_matriks_Member( _
                        Matriks_P() As Integer, _
                        i_p As Integer, _
                        Matriks_String As String)
    Dim j As Integer
    Dim Panjang_String
    
    For j = 0 To Kolom_M - 1
    
        'ubah data string jadi integer
        Matriks_P(i_p, j) = _
                        Val(Left(Matriks_String, 1))
        
        Panjang_String = Len(Matriks_String) - 2
        
        'buang string dari data yang sudah
        'diubah menjadi matriks
        Matriks_String = Right(Matriks_String, _
                                Panjang_String)
                                
    Next

End Sub


Salam Jack Onil


Heriady
heriady.yoh@gmail.com


Artikel terkait

Membuat Game dengan VB 6

Tidak ada komentar:

Posting Komentar