look at me

SELAMAT DATANG MAS, MBAK, OM, TANTE, PAKDHE,BUDHE DAN SEMUANYA

Senin, 29 Oktober 2012

GAME PUZLE “TEKA-TEKI BINGUNG”

       Seperti yang saya janjikan di postingan sebelumnya, postingan kali ini saya akan membahas sebuah game puzle buatanku sendiri. Game ini saya beri nama “Teka-Teki Bingung”. Namanya saja “Teka-Teki Bingung”, ya game ini bukan game yang bisa dimainkan dengan mudah. Nah ini lah tampilan utama dari game ini
Mungkin bagi sebagian orang game di atas sudah sangat familiar dan dengan mudahnya dimainkan. Nah bagi yang belum pernah memainkannya, nih cara memainkannya cukup menyusun angka-angka yang sudah di acak-acak menjadi sebuah urutan angka 1 sampai delapan.

Dan jika pemain bisa memcahkan misteri “Teka-Teki Bingung” ini maka akan tampil dialog box seperti ini
 Game ini dilengkapi fitur timer untuk mengukur kecepatan pemain dalam menyusun angka-angka tersebut. Selain fungsi timer ada fitur langkah untuk menghitung langkah yang dilakukan oleh pemain untuk menyusun angka-angka tersebut, semakin sedikit langkah maka pemain semakin efisien dalam menyusun angka-angka tersebut.
Tombol reset digunakan untuk kembali mengacak angka dan mereset waktu serta dan jumlah langkah yang dilakukan jadi semuanya kembali ke awal, dan tombol “Keluar” tentu saja digunakan untuk keluar/ menutup game tersebut
Sebenarnya dalam pembuatan game ini cukup simple kalau kita mengetahui beberapa trik yang bisa digunakan. Trik-trik yang digunakan adalah sebagai berikut:

Penggunaan Rnd() untuk menghasilkan angka acak
Conntohnya :
Bt1.Text = Convert.ToInt32(Rnd() * 8)

Penggunaan If...ElseIf  serta pertukaran nilai untuk melakukan pengecekan serta melakukan pergeseran angka
Contohnya:
If (Bt2.Text = "") Then
            tampung = Bt1.Text
            Bt1.Text = Bt2.Text
            Bt2.Text = tampung
            move += 1
            Txtmove.Text = move

Nah itu tadi beberapa trik inti yang saya gunakan untuk membangun game “Teka-Teki Bingung” tersebut. Tetapi untuk lebih lengkapnya, berikut kode sumber yang saya gunakan untuk membangunnya
Public Class Form1
    Dim detik, menit, move As Integer
    Private Sub Bt1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Bt1.Click
        Dim tampung As String = ""

        If (Bt2.Text = "") Then
            tampung = Bt1.Text
            Bt1.Text = Bt2.Text
            Bt2.Text = tampung
            move += 1
            Txtmove.Text = move
        ElseIf (Bt4.Text = "") Then
            tampung = Bt1.Text
            Bt1.Text = Bt4.Text
            Bt4.Text = tampung
            move += 1
            Txtmove.Text = move
        End If
        If (Bt1.Text = "1" And Bt2.Text = "2" And Bt3.Text = "3" And Bt4.Text = "4" And Bt5.Text = "5" And Bt6.Text = "6" And Bt7.Text = "7" And Bt8.Text = "8" And Bt9.Text = "") Then
            Timer1.Enabled = False
            Dim Control As Windows.Forms.Control
            For Each Control In Me.GroupBox1.Controls
                Control.Enabled = False
            Next
            MsgBox("Selamat Anda berhasil", vbInformation + vbOKOnly, "Selamat !!!!")
        End If
    End Sub

    Private Sub Bt2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Bt2.Click
        Dim tampung As String = ""

        If (Bt1.Text = "") Then
            tampung = Bt2.Text
            Bt2.Text = Bt1.Text
            Bt1.Text = tampung
            move += 1
            Txtmove.Text = move
        ElseIf (Bt5.Text = "") Then
            tampung = Bt2.Text
            Bt2.Text = Bt5.Text
            Bt5.Text = tampung
            move += 1
            Txtmove.Text = move
        ElseIf (Bt3.Text = "") Then
            tampung = Bt2.Text
            Bt2.Text = Bt3.Text
            Bt3.Text = tampung
            move += 1
            Txtmove.Text = move
        End If
        If (Bt1.Text = "1" And Bt2.Text = "2" And Bt3.Text = "3" And Bt4.Text = "4" And Bt5.Text = "5" And Bt6.Text = "6" And Bt7.Text = "7" And Bt8.Text = "8" And Bt9.Text = "") Then
            Timer1.Enabled = False
            Dim Control As Windows.Forms.Control
            For Each Control In Me.GroupBox1.Controls
                Control.Enabled = False
            Next
            MsgBox("Selamat Anda berhasil", vbInformation + vbOKOnly, "Selamat !!!!")
        End If
    End Sub

    Private Sub Bt3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Bt3.Click
        Dim tampung As String = ""

        If (Bt2.Text = "") Then
            tampung = Bt3.Text
            Bt3.Text = Bt2.Text
            Bt2.Text = tampung
            move += 1
            Txtmove.Text = move
        ElseIf (Bt6.Text = "") Then
            tampung = Bt3.Text
            Bt3.Text = Bt6.Text
            Bt6.Text = tampung
            move += 1
            Txtmove.Text = move
        End If
        If (Bt1.Text = "1" And Bt2.Text = "2" And Bt3.Text = "3" And Bt4.Text = "4" And Bt5.Text = "5" And Bt6.Text = "6" And Bt7.Text = "7" And Bt8.Text = "8" And Bt9.Text = "") Then
            MsgBox("Selamat Anda berhasil", vbInformation + vbOKOnly, "Selamat !!!!")
            Timer1.Enabled = False
            Dim Control As Windows.Forms.Control
            For Each Control In Me.GroupBox1.Controls
                Control.Enabled = False
            Next
        End If
    End Sub

    Private Sub Bt4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Bt4.Click
        Dim tampung As String = ""

        If (Bt1.Text = "") Then
            tampung = Bt4.Text
            Bt4.Text = Bt1.Text
            Bt1.Text = tampung
            move += 1
            Txtmove.Text = move
        ElseIf (Bt5.Text = "") Then
            tampung = Bt4.Text
            Bt4.Text = Bt5.Text
            Bt5.Text = tampung
            move += 1
            Txtmove.Text = move
        ElseIf (Bt7.Text = "") Then
            tampung = Bt4.Text
            Bt4.Text = Bt7.Text
            Bt7.Text = tampung
            move += 1
            Txtmove.Text = move
        End If
        If (Bt1.Text = "1" And Bt2.Text = "2" And Bt3.Text = "3" And Bt4.Text = "4" And Bt5.Text = "5" And Bt6.Text = "6" And Bt7.Text = "7" And Bt8.Text = "8" And Bt9.Text = "") Then
            Timer1.Enabled = False
            Dim Control As Windows.Forms.Control
            For Each Control In Me.GroupBox1.Controls
                Control.Enabled = False
            Next
            MsgBox("Selamat Anda berhasil", vbInformation + vbOKOnly, "Selamat !!!!")
        End If
    End Sub

    Private Sub Bt5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Bt5.Click
        Dim tampung As String = ""

        If (Bt2.Text = "") Then
            tampung = Bt5.Text
            Bt5.Text = Bt2.Text
            Bt2.Text = tampung
            move += 1
            Txtmove.Text = move
        ElseIf (Bt4.Text = "") Then
            tampung = Bt5.Text
            Bt5.Text = Bt4.Text
            Bt4.Text = tampung
            move += 1
            Txtmove.Text = move
        ElseIf (Bt8.Text = "") Then
            tampung = Bt5.Text
            Bt5.Text = Bt8.Text
            Bt8.Text = tampung
            move += 1
            Txtmove.Text = move
        ElseIf (Bt6.Text = "") Then
            tampung = Bt5.Text
            Bt5.Text = Bt6.Text
            Bt6.Text = tampung
            move += 1
            Txtmove.Text = move
        End If
        If (Bt1.Text = "1" And Bt2.Text = "2" And Bt3.Text = "3" And Bt4.Text = "4" And Bt5.Text = "5" And Bt6.Text = "6" And Bt7.Text = "7" And Bt8.Text = "8" And Bt9.Text = "") Then
            Timer1.Enabled = False
            Dim Control As Windows.Forms.Control
            For Each Control In Me.GroupBox1.Controls
                Control.Enabled = False
            Next
            MsgBox("Selamat Anda berhasil", vbInformation + vbOKOnly, "Selamat !!!!")
        End If
    End Sub

    Private Sub Bt6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Bt6.Click
        Dim tampung As String = ""

        If (Bt3.Text = "") Then
            tampung = Bt6.Text
            Bt6.Text = Bt3.Text
            Bt3.Text = tampung
            move += 1
            Txtmove.Text = move
        ElseIf (Bt5.Text = "") Then
            tampung = Bt6.Text
            Bt6.Text = Bt5.Text
            Bt5.Text = tampung
            move += 1
            Txtmove.Text = move
        ElseIf (Bt9.Text = "") Then
            tampung = Bt6.Text
            Bt6.Text = Bt9.Text
            Bt9.Text = tampung
            move += 1
            Txtmove.Text = move
        End If
        If (Bt1.Text = "1" And Bt2.Text = "2" And Bt3.Text = "3" And Bt4.Text = "4" And Bt5.Text = "5" And Bt6.Text = "6" And Bt7.Text = "7" And Bt8.Text = "8" And Bt9.Text = "") Then
            Timer1.Enabled = False
            Dim Control As Windows.Forms.Control
            For Each Control In Me.GroupBox1.Controls
                Control.Enabled = False
            Next
            MsgBox("Selamat Anda berhasil", vbInformation + vbOKOnly, "Selamat !!!!")
        End If
    End Sub

    Private Sub Bt7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Bt7.Click
        Dim tampung As String = ""

        If (Bt4.Text = "") Then
            tampung = Bt7.Text
            Bt7.Text = Bt4.Text
            Bt4.Text = tampung
            move += 1
            Txtmove.Text = move
        ElseIf (Bt8.Text = "") Then
            tampung = Bt7.Text
            Bt7.Text = Bt8.Text
            Bt8.Text = tampung
            move += 1
            Txtmove.Text = move
        End If
        If (Bt1.Text = "1" And Bt2.Text = "2" And Bt3.Text = "3" And Bt4.Text = "4" And Bt5.Text = "5" And Bt6.Text = "6" And Bt7.Text = "7" And Bt8.Text = "8" And Bt9.Text = "") Then
            Timer1.Enabled = False
            Dim Control As Windows.Forms.Control
            For Each Control In Me.GroupBox1.Controls
                Control.Enabled = False
            Next
            MsgBox("Selamat Anda berhasil", vbInformation + vbOKOnly, "Selamat !!!!")
        End If
    End Sub

    Private Sub Bt8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Bt8.Click
        Dim tampung As String = ""

        If (Bt7.Text = "") Then
            tampung = Bt8.Text
            Bt8.Text = Bt7.Text
            Bt7.Text = tampung
            move += 1
            Txtmove.Text = move
        ElseIf (Bt5.Text = "") Then
            tampung = Bt8.Text
            Bt8.Text = Bt5.Text
            Bt5.Text = tampung
            move += 1
            Txtmove.Text = move
        ElseIf (Bt9.Text = "") Then
            tampung = Bt8.Text
            Bt8.Text = Bt9.Text
            Bt9.Text = tampung
            move += 1
            Txtmove.Text = move
        End If
        If (Bt1.Text = "1" And Bt2.Text = "2" And Bt3.Text = "3" And Bt4.Text = "4" And Bt5.Text = "5" And Bt6.Text = "6" And Bt7.Text = "7" And Bt8.Text = "8" And Bt9.Text = "") Then
            Timer1.Enabled = False
            Dim Control As Windows.Forms.Control
            For Each Control In Me.GroupBox1.Controls
                Control.Enabled = False
            Next
            MsgBox("Selamat Anda berhasil", vbInformation + vbOKOnly, "Selamat !!!!")
        End If
    End Sub

    Private Sub Bt9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Bt9.Click
        Dim tampung As String = ""

        If (Bt8.Text = "") Then
            tampung = Bt9.Text
            Bt9.Text = Bt8.Text
            Bt8.Text = tampung
            move += 1
            Txtmove.Text = move
        ElseIf (Bt6.Text = "") Then
            tampung = Bt9.Text
            Bt9.Text = Bt6.Text
            Bt6.Text = tampung
            move += 1
            Txtmove.Text = move
        End If
        If (Bt1.Text = "1" And Bt2.Text = "2" And Bt3.Text = "3" And Bt4.Text = "4" And Bt5.Text = "5" And Bt6.Text = "6" And Bt7.Text = "7" And Bt8.Text = "8" And Bt9.Text = "") Then
            Timer1.Enabled = False
            Dim Control As Windows.Forms.Control
            For Each Control In Me.GroupBox1.Controls
                Control.Enabled = False
            Next
            MsgBox("Selamat Anda berhasil", vbInformation + vbOKOnly, "Selamat !!!!")
        End If
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Do
            Bt1.Text = Convert.ToInt32(Rnd() * 8)
        Loop Until Bt1.Text <> "0"
        Do
            Bt2.Text = Convert.ToInt32(Rnd() * 8)
        Loop Until Bt2.Text <> "0" And Bt2.Text <> Bt1.Text
        Do
            Bt3.Text = Convert.ToInt32(Rnd() * 8)
        Loop Until Bt3.Text <> "0" And Bt3.Text <> Bt1.Text And Bt3.Text <> Bt2.Text
        Do
            Bt4.Text = Convert.ToInt32(Rnd() * 8)
        Loop Until Bt4.Text <> "0" And Bt4.Text <> Bt1.Text And Bt4.Text <> Bt2.Text And Bt4.Text <> Bt3.Text
        Do
            Bt5.Text = Convert.ToInt32(Rnd() * 8)
        Loop Until Bt5.Text <> "0" And Bt5.Text <> Bt1.Text And Bt5.Text <> Bt2.Text And Bt5.Text <> Bt3.Text And Bt5.Text <> Bt4.Text
        Do
            Bt6.Text = Convert.ToInt32(Rnd() * 8)
        Loop Until Bt6.Text <> "0" And Bt6.Text <> Bt1.Text And Bt6.Text <> Bt2.Text And Bt6.Text <> Bt3.Text And Bt6.Text <> Bt4.Text And Bt6.Text <> Bt5.Text
        Do
            Bt7.Text = Convert.ToInt32(Rnd() * 8)
        Loop Until Bt7.Text <> "0" And Bt7.Text <> Bt1.Text And Bt7.Text <> Bt2.Text And Bt7.Text <> Bt3.Text And Bt7.Text <> Bt4.Text And Bt7.Text <> Bt5.Text And Bt7.Text <> Bt6.Text
        Do
            Bt8.Text = Convert.ToInt32(Rnd() * 8)
        Loop Until Bt8.Text <> "0" And Bt8.Text <> Bt1.Text And Bt8.Text <> Bt2.Text And Bt8.Text <> Bt3.Text And Bt8.Text <> Bt4.Text And Bt8.Text <> Bt5.Text And Bt8.Text <> Bt6.Text And Bt8.Text <> Bt7.Text
        Timer1.Enabled = True
    End Sub

    Private Sub Btreset_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btreset.Click
        detik = 0
        menit = 0
        txtmenit.Text = ""
        txtmenit.Text = ""
        Bt9.Text = ""
        move = 0
        Txtmove.Text = ""
        Timer1.Enabled = True
        Dim Control As Windows.Forms.Control
        For Each Control In Me.GroupBox1.Controls
            Control.Enabled = True
        Next
        Do
            Bt1.Text = Convert.ToInt32(Rnd() * 8)
        Loop Until Bt1.Text <> "0"
        Do
            Bt2.Text = Convert.ToInt32(Rnd() * 8)
        Loop Until Bt2.Text <> "0" And Bt2.Text <> Bt1.Text
        Do
            Bt3.Text = Convert.ToInt32(Rnd() * 8)
        Loop Until Bt3.Text <> "0" And Bt3.Text <> Bt1.Text And Bt3.Text <> Bt2.Text
        Do
            Bt4.Text = Convert.ToInt32(Rnd() * 8)
        Loop Until Bt4.Text <> "0" And Bt4.Text <> Bt1.Text And Bt4.Text <> Bt2.Text And Bt4.Text <> Bt3.Text
        Do
            Bt5.Text = Convert.ToInt32(Rnd() * 8)
        Loop Until Bt5.Text <> "0" And Bt5.Text <> Bt1.Text And Bt5.Text <> Bt2.Text And Bt5.Text <> Bt3.Text And Bt5.Text <> Bt4.Text
        Do
            Bt6.Text = Convert.ToInt32(Rnd() * 8)
        Loop Until Bt6.Text <> "0" And Bt6.Text <> Bt1.Text And Bt6.Text <> Bt2.Text And Bt6.Text <> Bt3.Text And Bt6.Text <> Bt4.Text And Bt6.Text <> Bt5.Text
        Do
            Bt7.Text = Convert.ToInt32(Rnd() * 8)
        Loop Until Bt7.Text <> "0" And Bt7.Text <> Bt1.Text And Bt7.Text <> Bt2.Text And Bt7.Text <> Bt3.Text And Bt7.Text <> Bt4.Text And Bt7.Text <> Bt5.Text And Bt7.Text <> Bt6.Text
        Do
            Bt8.Text = Convert.ToInt32(Rnd() * 8)
        Loop Until Bt8.Text <> "0" And Bt8.Text <> Bt1.Text And Bt8.Text <> Bt2.Text And Bt8.Text <> Bt3.Text And Bt8.Text <> Bt4.Text And Bt8.Text <> Bt5.Text And Bt8.Text <> Bt6.Text And Bt8.Text <> Bt7.Text
      
    End Sub

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        detik += 1
        Txtdetik.Text = detik

        If (detik = 60) Then
            menit += 1
            txtmenit.Text = menit
            Txtdetik.Text = "0"
            detik = 0
        End If
    End Sub

    Private Sub Btkeluar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btkeluar.Click
        My.Computer.Audio.PlaySystemSound(Media.SystemSounds.Exclamation)
        If (MsgBox("Yakin untuk keluar ?" + vbNewLine + "Semua kemajuan permainan akan hilang", vbYesNo + vbQuestion + vbDefaultButton2, "Konfirmasi")) = vbYes Then
            End
        End If
    End Sub
End Class

Tidak ada komentar:

Posting Komentar