Tugas04: Bejeweled (Part 2) (revisi 150520_r01).

Kembali ke Wiki

  1. Di Tugas lalu anda telah membuat Frame permainan Bejeweled dan mengaktifkan fungsi "Mulai Baru" dengan mengisi frame bagian kedua dengan Tile secara acak. Jika anda belum berhasil menyelesaikan Tugas03, silahkan menggunakan hasil Tugas03 teman kalian, Muhammad Dzaki Fadillah yang telah diubah seperlunya untuk mengikuti format awal tugas ini sebagai template.
  2. Saya telah memberikan sebuah berkas gemSelected yang isinya adalah gambar gem ketika dipilih. Silahkan masukkan gambar ini ke program anda dan tambahkan field String selected di Tile.java anda yang berisi informasi nama berkas gemSelected, misalnya Tile green akan mempunyai field selected yang isinya gemGreenSelected.png.
  3. Kini kita akan menambahkan fungsi memilih di Bejeweled.java, fungsi swap untuk menukar, memeriksa serta menambah skor dan level di Algoritma.java sehingga permainan anda siap dimainkan orang lain.
  4. Untuk menambahkan fungsi memilih, kita perlu menambahkan sebuah kelas yang mengimplementasi interface MouseListener. Di dalam interface MouseListener ada sebuah method MouseClicked() yang berfungsi menangani event saat terjadi klik. Anda dapat menambahkan MouseListener ini dengan dua cara, silahkan pilih salah satu:
    1. Tambahkan MouseListener terpisah untuk tiap label. Setiap kali klik ambil x dan y JLabel [x][y] yang di klik ini.
    2. Tambahkan sebuah MouseListener untuk panel kedua, lalu setiap kali ada klik anda mengambil koordinat X dan Y klik tersebut dan menerjemahkannya sehingga anda tahu Tile yang mana yang di-klik.
  5. Tambahkan sebuah ArrayList int bernama selected di kelas utama (Bejeweled.java) anda. Setiap kali sebuah Tile di-klik, periksa apakah ArrayList selected sudah berisi dengan dua elemen atau belum. Jika belum, berarti user mengeklik Tile tersebut sebagai Tile pertama, silahkan ditambahkan x dan y Tile[x][y] tersebut ke dalam ArrayList, ubah gambar Tile[x][y] tersebut menjadi gambar gem selected-nya lalu menunggu klik selanjutnya. Jika ternyata ArrayList sudah berisi, berarti user mengeklik Tile tersebut sebagai Tile kedua, silahkan tambahkan juga x dan y ke dalam ArrayList, ubah gambar Tile[x][y] menjadi gambar gem selected-nya lalu jalankan method swap di kelas Algoritma.java dengan parameter ArrayList selected.
  6. Di dalam method swap, silahkan tukar isi kedua Tile yang x dan y nya berada di dalam ArrayList selected di dalam array Tile[][] board.
  7. Setelah itu method swap akan memanggil method periksa. method periksa akan memeriksa apakah ada 3 buah Tile berurutan mendatar atau menurun yang warnanya sama. Jika ada, ketiga Tile tersebut dihilangkan, dan skor ditambah 100. Setelah itu semua Tile yang di atas ketiga Tile tersebut akan "diturunkan" alias dipindahkan posisinya ke bawah sehingga menyisakan Tile yang paling atas (3 Tile di atasnya dalam hal yang sama adalah vertikal). Isilah bagian array Tile yang kosong tersebut dengan Tile random baru. Setelah itu baru periksa lagi apakah ada 3 buah Tile berurutan baru yang terjadi setelah penambahan ini, begitu berulang sampai tidak ada lagi 3 buah Tile berurutan.
  8. Level akan bertambah setiap kali skor bertambah 1000. Jadi skor 0-900 level 1, 1000-1900 level 2 dst.
  9. Update Frame Bejeweled anda dengan mengambil Tile board, skor dan level terakhir dari Algoritma.java dan tampilkan di JLabel dan TextField yang berhubungan. Bersihkan juga isi ArrayList selected.
  10. Periksa apakah permainan anda masih punya bug. Tambahkan juga fitur - fitur yang ingin anda tambahkan, sebelumnya ada yang mencoba menambahkan gambar latar atau musik.
  11. Selamat, anda telah berhasil membuat permainan Bejeweled!

Kembali ke Wiki

gemSelected.zip (31.2 KB) Ramot Stephanus Sihombing rast20, 20/05/2015 12:47

Bejeweled-T03.zip (35.8 KB) Ramot Stephanus Sihombing rast20, 20/05/2015 13:22