Kamis, 06 Desember 2012

Program Game Puzzle

Konsep Puzzle


Game yang dibuat kali ini adalah game sederhana yaitu “Puzzle”. Konsep yang digunakan adalah jika kita meng-click angka lalu ada space yang kosong maka angka tersebut akan berpindah ke space yang kosong tersebut. Jika anda ingin memenangkan game ini maka langkah yang dilakukan adalah mengurutkan nomor 1 sampai dengan 8 berurutan seperti 6.1. Jika and memenangkan game tersebut maka akan muncul gambar 6.2.


 Game “Puzzle” ini hanya terdiri dari 1 form saja. Dimana form 1 terdapat tombol button sebanyak 11 buah, dimana button tersebut bertuliskan “1”, “2”, “3”, “4”, “5”, “6”, “7”, “8”, “ “, “Acak”, “Stop”. Lalu ditambahkan background image di form 1 agar tampilan menjadi menarik serta gambar abstrak berwarna hitam putih untuk mengisi space yang kosong. Di form1 saya buat agar tidak bisa di minimize serta tidak bisa di restore down, itu dapat di atur di properties pada form1. Dalam membuat puzzle ini hanya diperlukan 1 form saja. Lalu dibutuhkan MessageBox untuk menuliskan secara otomatis jika dalam game tersebut kita dapat memenanginya.

Game “Puzzle” ini juga menggunakan 2 button tambahan sebagai pengatur dalam game tersebut yaitu tombol “Acak” dan “Stop”.  Tombol “Acak” adalah untuk mengacak nomor – nomor di atas menjadi tidak beraturan. Jika tombol “Acak” di klik maka nomor – nomor diatas akan dibuat acak sampai tombol “Stop” di klik. Jadi jika pemain ini memainkan game “Puzzle” ini mereka tidak akan bosan karena banyak kemungkinan acak yang dibuat dari game tersebut. 


Flowchart Game Puzzle



Tutorial Program Puzzle

Dalam program “Puzzle” ini hanya 1 form yang dibutuhkan. Komponen yang digunakan dalam form1 yaitu :
No
Komponen
Properties
Keterangan
1.
Form1
Name

Text
Form1

2.
Button1
Name

Text
Button1

1
3.
Button2
Name

Text
Button2

2
4.
Button3
Name

Text
Button3

3
5.
Button4
Name

Text
Button4

4
6.
Button5
Name

Text
Button5

5
7.
Button6
Name

Text
Button6

6
8.
Button7
Name

Text
Button7

7
9.
Button8
Name

Text
Button8

8
10.
Button9
Name

Text
Button9

9
11.
Button10
Name

Text
Button10

Stop
12.
Button11
Name

Text
Button11

Acak
13.
Picturebox1

Name

Text
Picturebox1



Setelah menggunakan komponen yang diatas lalu edit sesuai keinginan dan tatalah serapih mungkin agar dapat menarik perhatian orang yang memainkan game tersebut. Lalu setelah step tersebut maka lebih baik diberi background yang cocok dengan tema permainan kita. Karena ada space kosong di antara tombol Acak dan Stop maka saya memberikan gambar abstrak untuk mengisikan kekosongan tersebut. Dengan menggunakan background yang memiliki frame, maka jadilah tampilannya sebagai berikut



Lalu jika anda berhasil memenangkan game tersebut maka akan keluar MassageBox seperti ini




                                                                          Analisis Listing

Adapun analisis listing yang digunakan untuk pembuatan “Puzzle” adalah

1. Public Class Form1
    Dim smt, stp As String
    Dim acak As Integer

2. Private Sub Button11_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button11.Click
        Timer1.Enabled = True
        acak = Rnd() * 10
    End Sub

Berguna sebagai tombol untuk mengacak nomor nomor yang telah ada dengan menggunakan bantuan Timer1

3. Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        If Button2.Text = "" Then
            smt = Button1.Text
            Button1.Text = Button2.Text
            Button2.Text = smt
        ElseIf Button4.Text = "" Then
            smt = Button1.Text
            Button1.Text = Button4.Text
            Button4.Text = smt
        End If
        If Button1.Text = "1" And Button2.Text = "2" And Button3.Text = "3" And Button4.Text = "4" And Button5.Text = "5" And Button6.Text = "6" And Button7.Text = "7" And Button8.Text = "8" And Button9.Text = "" Then
            MsgBox("Selamat Anda Menang")
        End If
    End Sub

Disini adalah membuat kemungkinan yang ada. Jadi jika yang di klik adalah Button1 maka kemungkinan yang ada yaitu dia akan bertuker tempat ke tempat yang kosong. Jika tempat yang kosong adalah Button2 maka Button1 akan bertukar tempat ke Button2 tetapi jika tempat yang kosong adalah Button4 maka Button1 akan bertukar tempat ke Button4. Dan jika langkah yang dilakukan tersebut sesuai dengan urutan angka yang tertera maka akan muncul Messagebox yang bertuliskan “Selamat Anda Menang”

4. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        If Button1.Text = "" Then
            smt = Button2.Text
            Button2.Text = Button1.Text
            Button1.Text = smt
        ElseIf Button3.Text = "" Then
            smt = Button2.Text
            Button2.Text = Button3.Text
            Button3.Text = smt
        ElseIf Button5.Text = "" Then
            smt = Button5.Text
            Button5.Text = Button2.Text
            Button2.Text = smt
        End If
        If Button1.Text = "1" And Button2.Text = "2" And Button3.Text = "3" And Button4.Text = "4" And Button5.Text = "5" And Button6.Text = "6" And Button7.Text = "7" And Button8.Text = "8" And Button9.Text = "" Then
            MsgBox("Selamat Anda Menang")
        End If
    End Sub

Sama seperti diatas, jadi jika Button2 di klik maka akan bertukar tempat ke tempat yang kosong. Jika tempat yang kosong adalah Button1 maka Button2 akan berpindah tempat ke Button1 lalu jika button3 yang kosong maka Button2 akan berpindah tempat ke Button2 tetapi jika Button5 yang kosong maka Buton2 akan berpindah tempat ke Button5.

5. Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        If Button2.Text = "" Then
            smt = Button3.Text
            Button3.Text = Button2.Text
            Button2.Text = smt
        ElseIf Button6.Text = "" Then
            smt = Button3.Text
            Button3.Text = Button6.Text
            Button6.Text = smt
        End If
        If Button1.Text = "1" And Button2.Text = "2" And Button3.Text = "3" And Button4.Text = "4" And Button5.Text = "5" And Button6.Text = "6" And Button7.Text = "7" And Button8.Text = "8" And Button9.Text = "" Then
            MsgBox("Selamat Anda Menang")
        End If
    End Sub

Jadi jika Button3 di klik maka akan bertuker ke tempat yang kosong. Jika tempat yang kosong adalah Button2 maka Button3 akan berpindah tempat dengan Button2, lalu jika yang kosong adalah Button6 maka Button3 akan berpindah tempat dengan Button6.

6. Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        If Button1.Text = "" Then
            smt = Button4.Text
            Button4.Text = Button1.Text
            Button1.Text = smt
        ElseIf Button5.Text = "" Then
            smt = Button4.Text
            Button4.Text = Button5.Text
            Button5.Text = smt
        ElseIf Button7.Text = "" Then
            smt = Button4.Text
            Button4.Text = Button7.Text
            Button7.Text = smt
        End If
        If Button1.Text = "1" And Button2.Text = "2" And Button3.Text = "3" And Button4.Text = "4" And Button5.Text = "5" And Button6.Text = "6" And Button7.Text = "7" And Button8.Text = "8" And Button9.Text = "" Then
            MsgBox("Selamat Anda Menang")
        End If
    End Sub

Jadi jika Button4 di klik maka akan berpindah ke tempat yang kosong. Jika Button1 yang kosong maka Button4 akan berpindah tempat dengan Button1 lalu Jika Button5 yang kosong maka Button4 akan berpindah tempat dengan Button5 dan jika yang kosong adalah Button7 maka Button4 akan berpindah tempat ke Button7.

7. Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
        If Button2.Text = "" Then
            smt = Button5.Text
            Button5.Text = Button2.Text
            Button2.Text = smt
        ElseIf Button4.Text = "" Then
            smt = Button5.Text
            Button5.Text = Button4.Text
            Button4.Text = smt
        ElseIf Button6.Text = "" Then
            smt = Button5.Text
            Button5.Text = Button6.Text
            Button6.Text = smt
        ElseIf Button8.Text = "" Then
            smt = Button5.Text
            Button5.Text = Button8.Text
            Button8.Text = smt
        End If
        If Button1.Text = "1" And Button2.Text = "2" And Button3.Text = "3" And Button4.Text = "4" And Button5.Text = "5" And Button6.Text = "6" And Button7.Text = "7" And Button8.Text = "8" And Button9.Text = "" Then
            MsgBox("Selamat Anda Menang")
        End If
    End Sub

Button 5 adalah yang paling banyak kemungkinan. Analisisnya sama seperti di atas, jadi jika ada tempat yang kosong maka dia akan berpindah tempat ke tempat yang kosong tersebut. Jadi jika Button2 yang kosong maka dia akan berpindah tempat dengan Button5. Kemungkinan yang terjadi adalah jika yang kosong Button2, Button5, Button6, dan Button8.

8. Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
        If Button3.Text = "" Then
            smt = Button6.Text
            Button6.Text = Button3.Text
            Button3.Text = smt
        ElseIf Button5.Text = "" Then
            smt = Button6.Text
            Button6.Text = Button5.Text
            Button5.Text = smt
        ElseIf Button9.Text = "" Then
            smt = Button6.Text
            Button6.Text = Button9.Text
            Button9.Text = smt
        End If
        If Button1.Text = "1" And Button2.Text = "2" And Button3.Text = "3" And Button4.Text = "4" And Button5.Text = "5" And Button6.Text = "6" And Button7.Text = "7" And Button8.Text = "8" And Button9.Text = "" Then
            MsgBox("Selamat Anda Menang")
        End If
    End Sub

Prinsipnya adalah dia akan berpindah ke tempat yang kosong. Jadi jika Button6 di klik maka dia dapat berpindah tempat ke Button3, Button5, dan Button9. Perpindahan tersebut dengan syarat diantara Button3, Button5, atau Button9 ada yang kosong.

9. Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click
        If Button4.Text = "" Then
            smt = Button7.Text
            Button7.Text = Button4.Text
            Button4.Text = smt
        ElseIf Button8.Text = "" Then
            smt = Button7.Text
            Button7.Text = Button8.Text
            Button8.Text = smt
        End If
        If Button1.Text = "1" And Button2.Text = "2" And Button3.Text = "3" And Button4.Text = "4" And Button5.Text = "5" And Button6.Text = "6" And Button7.Text = "7" And Button8.Text = "8" And Button9.Text = "" Then
            MsgBox("Selamat Anda Menang")
        End If
    End Sub

Jika Button7 di klik maka hanya terdapat 2 kemungkinan yaitu antara Button4 atau Button8 yang kosong. Prinsipnya adalah dia akan berpindah ke tempat yang kosong.

10. Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button8.Click
        If Button7.Text = "" Then
            smt = Button8.Text
            Button8.Text = Button7.Text
            Button7.Text = smt
        ElseIf Button5.Text = "" Then
            smt = Button8.Text
            Button8.Text = Button5.Text
            Button5.Text = smt
        ElseIf Button9.Text = "" Then
            smt = Button8.Text
            Button8.Text = Button9.Text
            Button9.Text = smt
        End If
        If Button1.Text = "1" And Button2.Text = "2" And Button3.Text = "3" And Button4.Text = "4" And Button5.Text = "5" And Button6.Text = "6" And Button7.Text = "7" And Button8.Text = "8" And Button9.Text = "" Then
            MsgBox("Selamat Anda Menang")
        End If
    End Sub

Jika Button8 di klik maka akan terdapat 3 kemungkinan yaitu dia akan berpindah ke Button7, Button 5 ataupun Button8.

11. Private Sub Button9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button9.Click
        If Button6.Text = "" Then
            smt = Button9.Text
            Button9.Text = Button6.Text
            Button6.Text = smt
        ElseIf Button8.Text = "" Then
            smt = Button9.Text
            Button9.Text = Button8.Text
            Button8.Text = smt
        End If
        If Button1.Text = "1" And Button2.Text = "2" And Button3.Text = "3" And Button4.Text = "4" And Button5.Text = "5" And Button6.Text = "6" And Button7.Text = "7" And Button8.Text = "8" And Button9.Text = "" Then
            MsgBox("Selamat Anda Menang")
        End If
    End Sub

Kemungkinan dari Button9 hanya ada 2 karena dia terletak di ujung bawah kanan dari susunan Puzzle tersebut. Maka Button9 hanya dapat berpindah ke Button6 ataupun Button8.

12. Private Sub Button10_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button10.Click
        Timer1.Enabled = False
    End Sub

Listing di atas merupakan tombol stop dari Timer1. Jadi jika tombol Button10 ini di klik maka Timer1 akan berhenti.

13. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        smt = Button9.Text
        Button9.Text = Button4.Text
        Button4.Text = smt

        smt = Button9.Text
        Button9.Text = Button3.Text
        Button3.Text = smt

        smt = Button2.Text
        Button2.Text = Button7.Text
        Button7.Text = smt

        smt = Button2.Text
        Button2.Text = Button6.Text
        Button6.Text = smt

        smt = Button3.Text
        Button3.Text = Button8.Text
        Button8.Text = smt

        smt = Button3.Text
        Button3.Text = Button1.Text
        Button1.Text = smt

        smt = Button5.Text
        Button5.Text = Button8.Text
        Button8.Text = smt

        smt = Button5.Text
        Button5.Text = Button7.Text
        Button7.Text = smt

        smt = Button6.Text
        Button6.Text = Button1.Text
        Button1.Text = smt
    End Sub
End Classc

Analisisnya adalah berguna untuk mengacak “Puzzle” tetapi tidak mengacak seenaknya. Di listing ini dignakan untuk mengacak tetapi tetap mempunyai peluang menang. Posisi yang ditukar adalah Button9 dengan Button4, Button9 dengan Button3, Button2 dengan Button7, Button2 dengan Button7, Button3 dengan Button8, Button3 dengan Button1, Button5 dengan Button8, Button5 dengan Button7, Button6 dengan Button1. Jadi jika Timer1 tetap dinyalakan Puzzle hanya akan mengacakkan dirinya seperti diatas.

Tidak ada komentar:

Posting Komentar