Tugas03: Memory Game (revisi 151204_r01).

Kembali ke Wiki

  1. Apakah Anda pernah memainkan game bernama Memory Game? Tujuan Memory Game adalah mencocokkan pasangan angka atau gambar yang tersebar di antara banyak kartu. Agar Anda lebih memahami, silahkan coba bermain Memory Game di link ini.
  2. Kita akan mencoba membuat Memory Game kita sendiri. Buatlah sebuah berkas bernama MemoryGame.java yang isinya membuat Frame berukuran 800 x 600 (panjang ke samping x lebar ke bawah) dengan judul "Memory Game".
  3. Bagi dua Frame tersebut dengan ukuran pertama 200 x 600 (bagian 1) dan 600 x 600 (bagian 2).
  4. Isilah bagian pertama dengan hal berikut:
    1. JButton dengan tulisan "Mulai Baru"
    2. JButton dengan tulisan "Simpan"
    3. JButton dengan tulisan "Buka"
    4. JLabel dengan tulisan "Skor:"
    5. JLabel dengan tulisan "0".
    6. JLabel dengan tulisan "Level:"
    7. JLabel dengan tulisan "1".
  5. Posisi, jenis font dan besar font semua elemen di atas di dalam bagian 1 adalah terserah sesuai keinginan kalian, tapi ingat kalau berantakan orang - orang jadi kurang berniat memainkan game kalian.
  6. Isilah bagian kedua dengan hal berikut:
    1. 16 buah JLabel dengan ukuran masing - masing 125 pixel x 125 pixel dan susunan matriks 4 x 4. Berikan jarak 20 pixel di antara tiap kartu sehingga kartu tersebar rata di dalam frame bagian kedua.
  7. Kalian juga bebas menambahkan JPanel untuk menampung bagian - bagian yang harus dibuat.
  8. Untuk mempermudah, pasangan yang akan kita gunakan kali ini adalah pasangan angka. Ada 16 "kartu" JLabel, sehingga untuk memenuhinya kita memerlukan 8 pasang angka.
  9. Sekarang buatlah sebuah kelas bernama Algoritma.java. Di dalam kelas ini buatlah sebuah method isiAwal yang fungsinya adalah generate 8 buah angka dan dua buah posisi menaruh angka tersebut secara random. Hasilnya diberikan kepada MemoryGame.java sehingga tiap JLabel yang berada di posisi yang di generate tadi bisa menampilkan angka yang di generate. Misalnya, angka random yang di generate adalah angka 3, dan posisinya berada di JLabel 0 dan 4, maka berikanlah hasil ini kepada MemoryGame.java sehingga JLabel 0 dan 4 sekarang mewakili angka 3.
  10. PENTING: Jika sebuah posisi JLabel sudah diisi saat generate sebuah angka, posisi JLabel tersebut TIDAK boleh dipakai lagi oleh angka lain. Jadi misalnya kalau JLabel 0 dan 4 sudah dipakai oleh angka 3, ketika kita generate angka baru yaitu 6, posisinya tidak boleh lagi di JLabel 0 ataupun 4. Lakukan hal ini sampai ada 8 buah angka (16 buah JLabel terisi semua).
  11. Jika sudah berhasil, hubungkan method isiAwal ini dengan JButton "Mulai Baru", dengan kata lain setiap kali kita klik JButton "Mulai Baru", bidak JLabel akan "diisi" dengan pasangan angka baru.
  12. Sekarang kita akan mengaktifkan JButton "Simpan". Buatlah sebuah kelas SimpanBuka.java. Buatlah method simpan di dalam kelas tersebut yang fungsinya adalah menyimpan keadaan hubungan semua posisi JPanel dengan angkanya serta skor dan level ke dalam sebuah berkas. Buat juga method buka di dalam kelas tersebut yang fungsinya adalah mengambil keadaan hubungan semua posisi JLabel dengan angkanya serta skor dan level dari dalam sebuah berkas agar MemoryGame.java bisa menerapkan aturan dari berkas tersebut ke dalam frame nya.
  13. Inti utama Tugas03 selesai di sini, tapi jika kalian ingin mendapat bonus, silahkan mengerjakan salah satu atau beberapa tambahan berikut:
    1. Kalian bisa menampilkan pasangan gambar bukan angka.
    2. Setelah di-generate, "kartu" JLabel "tertutup" kembali sehingga gambar atau angka tidak kelihatan.
    3. Setiap "kartu" JLabel yang sudah tidak kelihatan tersebut bisa di-klik dan memperlihatkan isi kartunya.
    4. Klik untuk membuka kartu JLabel bisa dibatasi 2 kali saja lalu kartu nya semua tertutup kembali.
    5. Game benar - benar bisa berfungsi dengan skor bisa bertambah. Level akan bertambah jika skor mencapai 1000.
  14. Archive semua source hasil pekerjaan kalian lengkap dengan struktur package-nya menjadi berkas KELAS-NPM-Tugas03.zip atau KELAS-NPM-Tugas03.tar dan kumpulkan di Scele.
  15. Selamat mengerjakan!

Kembali ke Wiki