Senin, 12 November 2012

Modifikasi Program dan Membuat Game Puzzle ala VB

Nah untuk posting kali ini masih berhubungan dengan tugas kuliah untuk ketiga kalinya, tugas kali ini adalah tugas untuk memodifikasi program dari tugas dua.
Dan kali ini postingnya berhubunganjuga dengan Puzzle yang, ya otomatis juga masih menggunakan visual basic 2010, nah untuk tampilan dari form sebelumnya seperti berikut,






Pada form sebelumnya, tambahkan satu button isi data, saat form dijalankan semua isian kecuali tombol isi data dan tutup aktif, dimana codingnya seperti berikut ini:
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim a As Windows.Forms.Control
        For Each a In Me.Controls
            a.Enabled = False
            Btisidata.Enabled = True
            Bttutup.Enabled = True
        Next
    End Sub
 




Menggunakan for each
Setiap komponen (a) di dalam form (Me.Controls) akan tidak diaktifkan, sedang tombol isidata dan tutup tetap aktif.









Setelah itu kita bisa mengklik tombol isi data, maka semua komponen didalam form akan aktif kecuali tombol isi data. Dimana codingnya seperti ini
 
Private Sub Btisidata_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btisidata.Click
 Dim control As Windows.Forms.Control
        For Each control In Me.Controls
            control.Enabled = True
            Btisidata.Enabled = False
        Next
    End Sub





Pada saat tombol clear diklik, maka keadaanya sama pada saat form dijalankan pertama kali yaitu semua komponen tidak aktif kecuali tombol isi data dan tutup. Codingnya seperti berikut ini


Private Sub Btclear_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Btclear.Click
        Txtnama.Clear()
        Txtjumlah.Clear()
        Txtharga.Clear()
        Txtdiskon.Clear()
        Txttotal.Clear()
        Txtbayar.Clear()
        Me.Radiotunai.Checked = False
        Me.Radiokredit.Checked = False
        Cmbkode.Text = ""

        Dim a As Windows.Forms.Control
        For Each a In Me.Controls
            a.Enabled = False
            Btisidata.Enabled = True
            Bttutup.Enabled = True
        Next
    End Sub

Rata-rata program ini banyak menggunakan for each dan if, begitulah modifikasi programnya.


Nah, sekarang kita tinggal buat program puzzle sederhana ala visual basic.







Penjelasan :
Ada 9 button, dan timer.
Sebelumnya pesen variabel
    Dim smt, stp As String
    Dim acak As Integer
Di Public Class Form1

a.  Pada saat form dijalankan, angka-angka pada button langsung mengacak. Disini menggunakan random dan timer, timer nya di “true” kan jadi pada saat form dijalankan timer langsung jalan dan waktunya bisa diatur lagi sebagai contoh 50. Semakin kecil nilainya semakin cepat pula mengacaknya, fungsi random disini yaitu untuk mengacak angka-angka pada button tersebut. Random dan timer disini saling berhubungan, artinya angka-angka tersebut bisa mengacak dengan cepat. Random kita tempatkan pada tombol acak, dan diatasnya ada timer yang kita true kan, jadi isi yang ada di timer akan dirandom secara otomatis.

Codingnya seperti berikut ini :
Private Sub Btacak_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btacak.Click
        Timer1.Enabled = True
        acak = Rnd() * 10
        End Sub

Agar pada saat timer berjalan, angka-angka juga mengacak maka kita bisa menggunakan prinsip seperti buble yaitu misal antara tombol angka 1 dan tombol angka 2 di tukar, kita buat variabel smt (variabel sementara) untuk menampung tombol angka 1 lalu tobol angka 1 d tumpuk dengan tombol angka 2. Setelah itu tombol angka 2 dipindah ke variabel semntara dan secara otomatis tombol angka 1 pindah ketempat asal tombol angka 2, lebih gampangnya seperti ini

Smt = bt1.text
Bt1.text=bt2.text
Bt2.text=smt

lebih jelasnya codingnya seperti ini :
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        smt = Bt0.Text
        Bt0.Text = Bt4.Text
        Bt4.Text = smt

        smt = Bt0.Text
        Bt0.Text = Bt3.Text
        Bt3.Text = smt

        smt = Bt2.Text
        Bt2.Text = Bt7.Text
        Bt7.Text = smt

        smt = Bt2.Text
        Bt2.Text = Bt6.Text
        Bt6.Text = smt

        smt = Bt3.Text
        Bt3.Text = Bt8.Text
        Bt8.Text = smt

        smt = Bt3.Text
        Bt3.Text = Bt1.Text
        Bt1.Text = smt

        smt = Bt5.Text
        Bt5.Text = Bt8.Text
        Bt8.Text = smt

        smt = Bt5.Text
        Bt5.Text = Bt7.Text
        Bt7.Text = smt

        smt = Bt6.Text
        Bt6.Text = Bt1.Text
        Bt1.Text = smt

       
    End Sub
b.  Klik tombol stop untuk menghentikan acakan angka-angka, pada tombol stop isi codenya seperti dbawah ini

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

Jadi timernya tinggal dinonaktifkan saja.

c.  Lalu mulai memainkan puzzle nya, yaitu tombol yang ada didekat tombol kosong berpindah ke tombol kosong dengan cara di klik, lakukan hal tersebut sampai angka-angka tersebut tersusun dengan semestinya lalu akan muncul pesan selamat jika berhasil menyusun angka-angka tersebut.
Untuk memindah angka kita bisa gunakan logika if, karna pilihannya lebih dari satu. Misal jika tombol 1 yang kosong maka ia mempunyai dua pilihan tombol yang bisa di tukar yaitu tombol 2 dan tombol 4.
Codingnya seperti dibawah ini :

Private Sub Bt1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Bt1.Click
        If Bt2.Text = "" Then
            smt = Bt1.Text
            Bt1.Text = Bt2.Text
            Bt2.Text = smt
        ElseIf Bt4.Text = "" Then
            smt = Bt1.Text
            Bt1.Text = Bt4.Text
            Bt4.Text = smt
        End If
    End Sub

    Private Sub Bt2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Bt2.Click
        If Bt1.Text = "" Then
            smt = Bt2.Text
            Bt2.Text = Bt1.Text
            Bt1.Text = smt
        ElseIf Bt3.Text = "" Then
            smt = Bt2.Text
            Bt2.Text = Bt3.Text
            Bt3.Text = smt

        ElseIf Bt5.Text = "" Then
            smt = Bt5.Text
            Bt5.Text = Bt2.Text
            Bt2.Text = smt

        End If
    End Sub

    Private Sub Bt3_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Bt3.Click
        If Bt2.Text = "" Then
            smt = Bt3.Text
            Bt3.Text = Bt2.Text
            Bt2.Text = smt
        ElseIf Bt6.Text = "" Then
            smt = Bt3.Text
            Bt3.Text = Bt6.Text
            Bt6.Text = smt

        End If
    End Sub

    Private Sub Bt4_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Bt4.Click
        If Bt1.Text = "" Then
            smt = Bt4.Text
            Bt4.Text = Bt1.Text
            Bt1.Text = smt
        ElseIf Bt5.Text = "" Then
            smt = Bt4.Text
            Bt4.Text = Bt5.Text
            Bt5.Text = smt
        ElseIf Bt7.Text = "" Then
            smt = Bt4.Text
            Bt4.Text = Bt7.Text
            Bt7.Text = smt

        End If
    End Sub

    Private Sub Bt5_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Bt5.Click
        If Bt2.Text = "" Then
            smt = Bt5.Text
            Bt5.Text = Bt2.Text
            Bt2.Text = smt
        ElseIf Bt4.Text = "" Then
            smt = Bt5.Text
            Bt5.Text = Bt4.Text
            Bt4.Text = smt
        ElseIf Bt6.Text = "" Then
            smt = Bt5.Text
            Bt5.Text = Bt6.Text
            Bt6.Text = smt
        ElseIf Bt8.Text = "" Then
            smt = Bt5.Text
            Bt5.Text = Bt8.Text
            Bt8.Text = smt

        End If
    End Sub

    Private Sub Bt6_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Bt6.Click
        If Bt3.Text = "" Then
            smt = Bt6.Text
            Bt6.Text = Bt3.Text
            Bt3.Text = smt
        ElseIf Bt5.Text = "" Then
            smt = Bt6.Text
            Bt6.Text = Bt5.Text
            Bt5.Text = smt
        ElseIf Bt0.Text = "" Then
            smt = Bt6.Text
            Bt6.Text = Bt0.Text
            Bt0.Text = smt


        End If
    End Sub

    Private Sub Bt7_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Bt7.Click
        If Bt4.Text = "" Then
            smt = Bt7.Text
            Bt7.Text = Bt4.Text
            Bt4.Text = smt
        ElseIf Bt8.Text = "" Then
            smt = Bt7.Text
            Bt7.Text = Bt8.Text
            Bt8.Text = smt

        End If
    End Sub

    Private Sub Bt8_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Bt8.Click
        If Bt7.Text = "" Then
            smt = Bt8.Text
            Bt8.Text = Bt7.Text
            Bt7.Text = smt
        ElseIf Bt5.Text = "" Then
            smt = Bt8.Text
            Bt8.Text = Bt5.Text
            Bt5.Text = smt
        ElseIf Bt0.Text = "" Then
            smt = Bt8.Text
            Bt8.Text = Bt0.Text
            Bt0.Text = smt

        End If
    End Sub

    Private Sub Bt0_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Bt0.Click
        If Bt6.Text = "" Then
            smt = Bt0.Text
            Bt0.Text = Bt6.Text
            Bt6.Text = smt
        ElseIf Bt8.Text = "" Then
            smt = Bt0.Text
            Bt0.Text = Bt8.Text
            Bt8.Text = smt

        End If
    End Sub

Setelah angka-angka tersebut tersusun, maka akan muncul pesan selamat. kalau mau memainkan lagi tinggal klik tombol acak.

 


Baca selengkapnya »

0 komentar:

Poskan Komentar

Silakan tinggalkan komentar anda sesuai posting.

Copyright © ★ PoemQey Blog ★ 2010

Template By Nano Yulianto