Membuat Game Teka-Teki Angka 15 dengan Visual Basic 6.0 (VB6)

Di tengah gempuran engine modern dan bahasa pemrograman kekinian, Visual Basic 6.0 (VB6) ternyata masih punya tempat tersendiri di hati banyak developer. Terutama bagi yang ingin bernostalgia sambil belajar logika pemrograman dasar lewat proyek ringan seperti Game sederhana. Yup, meski terkesan lawas, Game VB6 tetap asyik dibuat dan dimainkan, apalagi untuk tujuan edukasi atau sekadar iseng produktif di waktu luang.

Pada pertemuan sebelumnya beberapa hari yang lalu kita sudah mempelajari cara mencari angka yang duplikat dan dalam artikel itu juga disertakan kegunaan mengecek angka duplikat yang salah satunya adalah membuat Game dengan permainan yang berhubungan dengan angka.

Untuk dalam artikel kali ini Admin ingin menerapkan fungsi dari angka duplikat tersebut yang rancang dalam bentuk permainan Game yang saya beri nama Teka-Teki Angka 15.

Game Teka-Teki Angka 15


Konsep Dasar Game Sederhana di VB6

Logika Lebih Penting dari Grafis

Dalam dunia Game VB6, kekuatan utama ada pada logika permainan, bukan visual yang wah. Game sederhana biasanya fokus pada:

  • Interaksi pengguna (klik tombol, input angka, dll)
  • Pengolahan data dan kondisi
  • Feedback langsung ke pemain

Hal ini membuat VB6 ideal untuk game Teka Teki angka 15.

VB6 bekerja dengan konsep event-driven, artinya program berjalan berdasarkan aksi pengguna. Dalam konteks Game, event seperti klik tombol, input teks, atau timer sangat berperan dalam membangun alur permainan yang interaktif dan responsif.

Berikut adalah langkah-langkah pembuatan Game Teka-Teki Angka 15 

1. Buka Form VB6 Anda dengan Standar EXE

2. Tanamkan 1 TextBox di form, lalu copy Textbox menjadi 8 dengan urutan seperti dibawah ini dengan berbentuk array :

Text1(0), Text1(1), Text1(2), Text1(3), Text1(4), Text1(5), Text1(6), Text1(7), Text1(8).

3. Tambahkan 3 CommandButton :

Command1        Caption= "Cek"

Command2        Caption= "Reset"

Command3        Caption= "Cara main"

4. Tambahkan 1 buah Label dan Timer (interval=1000)

5. Desain Form seprti gambat dibawah ini :

Desain Form

6. Setelah mendesain form seperti diatas dengan sama persis, lalu Copy-Paste kode dibawah ini di jendela kode pada bagian General-Declarations :

Option Explicit
Dim daftarPola As Collection
Dim detik As Integer

'Kosongkan textbox
Sub kosong()
    Dim i As Integer
    For i = 0 To 8
        Text1(i).Text = ""
        Text1(i).BackColor = vbWhite
        Text1(1).MaxLength = 1
    Next i
End Sub

Sub ResetWarna()
    Dim i As Integer
    For i = 0 To 8
        Text1(i).BackColor = vbWhite
    Next i
End Sub

Sub WarnaiSalah(i1 As Integer, i2 As Integer, i3 As Integer)
    Text1(i1).BackColor = vbYellow
    Text1(i2).BackColor = vbYellow
    Text1(i3).BackColor = vbYellow
End Sub

Private Sub Command3_Click()
MsgBox "Cara Main :" + vbCrLf + "1. Masukan angka tiap kotak dari 1-9" + vbCrLf + "2. Jumlah harus 15 Mendatar,Menurun dan Miring," + vbCrLf + "3. Tidak boleh ada angka yang sama", vbInformation, "Cara Main"

End Sub

Private Sub Form_Load()
    Set daftarPola = New Collection
    kosong
    detik = 0
    Timer1.Enabled = True
    Label1.Caption = ""
End Sub

Private Sub Timer1_Timer()
    detik = detik + 1
    Label1.Caption = "Waktu: " & detik & " detik"
End Sub

'Hanya boleh angka saja
Private Sub Text1_KeyPress(Index As Integer, KeyAscii As Integer)
    If (KeyAscii < 48 Or KeyAscii > 57) And KeyAscii <> 8 Then
    MsgBox "Hanya boleh diisi dengan angka!!", vbExclamation, "Perhatian"
        KeyAscii = 0
        Exit Sub
    End If
    
    ' Izinkan angka 1–9 dan Backspace
    If (KeyAscii < 49 Or KeyAscii > 57) And KeyAscii <> 8 Then
    MsgBox "Anda menekan angka 0" + vbCrLf + "Hanya boleh diisi dengan angka 1-9!!", vbExclamation, "Perhatian"
        KeyAscii = 0
        Exit Sub
        End If
        
End Sub

Private Sub Text1_Change(Index As Integer)
    Text1(Index).BackColor = vbWhite
End Sub

Private Sub Command1_Click()

    Dim i As Integer, j As Integer
    Dim a(8) As Integer
    Dim cek(9) As Boolean
    Dim salah As Boolean
    Dim polaMenang As String
  
    ResetWarna

    ' Ambil & validasi
    For i = 0 To 8
        If Text1(i).Text = "" Then
            MsgBox "Semua kotak harus diisi!", vbExclamation, "Perhatian"
            Exit Sub
        End If

        a(i) = Val(Text1(i).Text)

        If a(i) < 1 Or a(i) > 9 Then
            MsgBox "Angka harus 1 - 9", vbInformation, "Informasi"
            Exit Sub
        End If

        If cek(a(i)) Then
            For j = 0 To i - 1
                If a(j) = a(i) Then
                    Text1(i).BackColor = vbRed
                    Text1(j).BackColor = vbRed
                End If
            Next j
            MsgBox "Angka tidak boleh sama!", vbCritical, "Informasi"
            Exit Sub
        End If

        cek(a(i)) = True
    Next i

    ' Cek baris, kolom, diagonal
    salah = False

    If a(0) + a(1) + a(2) <> 15 Then WarnaiSalah 0, 1, 2: salah = True
    If a(3) + a(4) + a(5) <> 15 Then WarnaiSalah 3, 4, 5: salah = True
    If a(6) + a(7) + a(8) <> 15 Then WarnaiSalah 6, 7, 8: salah = True

    If a(0) + a(3) + a(6) <> 15 Then WarnaiSalah 0, 3, 6: salah = True
    If a(1) + a(4) + a(7) <> 15 Then WarnaiSalah 1, 4, 7: salah = True
    If a(2) + a(5) + a(8) <> 15 Then WarnaiSalah 2, 5, 8: salah = True

    If a(0) + a(4) + a(8) <> 15 Then WarnaiSalah 0, 4, 8: salah = True
    If a(2) + a(4) + a(6) <> 15 Then WarnaiSalah 2, 4, 6: salah = True

    ' Hasil akhir
    If salah Then
    MsgBox "? Belum benar!"
Else
    
    Dim polaSekarang As String
    polaSekarang = AmbilPola(a)

    ' Jika pola sudah pernah menang ? GAGAL
    If PolaSudahMenang(polaSekarang) Then
        MsgBox "POLA INI SUDAH PERNAH ANDA DIMENANGKAN!" & vbCrLf & _
               "Gunakan pola yang berbeda."
        Exit Sub
    End If

    ' Simpan pola baru
    daftarPola.Add polaSekarang

    Timer1.Enabled = False
    

    MsgBox "YEY.....ANDA MENANG!" & vbCrLf & _
           "Pola baru!" & vbCrLf & _
           "Total pola unik: " & daftarPola.Count & vbCrLf & _
           "Waktu: " & detik & " detik", vbInformation, "SEALAMAT ANDA BERHASIL"
End If

End Sub

'Reset game
Private Sub Command2_Click()
    kosong
    detik = 0
    Label1.Caption = "Waktu: 0 detik"
    Timer1.Enabled = True
End Sub

Function AmbilPola(a() As Integer) As String
    Dim i As Integer, s As String
    s = ""
    For i = 0 To 8
        s = s & a(i)
    Next i
    AmbilPola = s
End Function

Function PolaSudahMenang(pola As String) As Boolean
    Dim i As Integer

    For i = 1 To daftarPola.Count
        If daftarPola(i) = pola Then
            PolaSudahMenang = True
            Exit Function
        End If
    Next i

    PolaSudahMenang = False
End Function

7. Jalankan Project Game Anda dan silahkan uji Game Anda apakah berjalan dengan baik.

Cara Main :
  • Masukan satu angka dari 1-9 didalam kotak kosong
  • Susun angka tersebut baik Mendatar, Menurun atau Miring kalau di jumlahkan angkanya 15
  • Tidak boleh ada angka yang sama
  • Jiksa sudah yakin klik tombol Cek
Info: mulai tahun 2026 kita akan sama-sama belajar Visual Basic .NET dan tidak lagi membahas Visual Basic 6.0.

SELAMAT TINGGAL VB6.........SELAMAT DATANG VB.NET

Post a Comment for "Membuat Game Teka-Teki Angka 15 dengan Visual Basic 6.0 (VB6)"