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
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