Final Project : Pemrograman Berorientasi Objek (PBO)

Pada Final Project kali ini, saya akan membuat sebuah game sederhana. Game ini biasa disebut dengan 15 Puzzle, Game of Fifeen, Mystiq Square, Gem Puzzle, Boss Puzzle, dan masih banyak yang lainnya. Game ini merupakan teka-teki geser yang terdiri dari kerangka bernomor ubin persegi secara acak dengan satu ubin hilang. Puzzle tersebut juga ada dalam ukuran lain, terutama 8 puzzle yang lebih kecil . Jika ukurannya 3 × 3 ubin, maka puzzle tersebut disebut 8 puzzle atau 9 puzzle, dan jika 4x4 ubin, puzzle tersebut disebut 15 puzzle atau 16 puzzle dinamai masing-masing, untuk jumlah ubin dan banyaknya spasi. Tujuan dari teka-teki ini adalah untuk menempatkan ubin secara berurutan dengan melakukan gerakan geser yang menggunakan ruang kosong.


Setelah memikirkan konsep dan melihat berbagai referensi, saya membuat versi 4x4. Kemuadian, saya membuat game ini yang terdiri dari 3 class sebagai berikut

1. Main.java
2. Miskot.java
3. home.java


Oke, sekarang saya akan menunjukkan source code dan memberikan penjelasan.


1. Main.java

Class ini merupakan Main class dari game ini.

2. home.java

Pada class home, di sini saya membuat tampilan awal dari game ini serta Mouse event yang digunakan untuk memanggil dan lanjut ke game utama

3. Miskot.java

Class Miskot ini merupakan core utama dari game ini. Miskot adalah nama yang saya ambil dari Misteri + Kotak, jadilah Miskot. Setelah dari home, sampailah ke titik game dimulai. Di sini saya membuat puzzle 4x4 dengan menggunakan GridLayout 4x4. Lalu saya mengubah kotak-kotak pada grid tersebut menjadi Tombol/Button dengan JButton dan memberi label dengan JLabel. Setelah mendesain tampilan nya yang sederhana, lalu kita akan masuk kepada game nya.
Pertama-tama saya membuat array 1 dimensi (arr[]) untuk menyimpan angka 1-15 lalu mengacaknya dengan random(). Saya juga membuat array 2 dimensi (grid[][]), untuk mendandakan koordinat dari kotak-kotak tersebut. Setelah mengacak nilai dari arr[] , nilai tersebut diberikan kepada grid[][] dan juga cek[]. Nah kebetulan, selanjutnya cek[] ini akan digunakan untuk tes kondisi.
Dalam game ini, kita tidak serta merta merandom angkanya, dikarenakan ternyata puzzle ini mempunyai 2 output dari permutasinya. Dimana
1. Bisa diselesaikan
2. Tidak bisa diselesaikan (ada 1 pasang angka berturut yang tertukar)
Maka dari itu dibuatlah fungsi isSolvable(). Dengan menggunakan do while, program akan terus mengacak hingga hasil pengacakan puzzle, puzzle bisa diselesaikan. Selanjutnya program mengisi dan mendesain JButton dan JLabel.


Terakhir, terdapat program dengan action listener yang berguna untuk menukar kotak kosong dengan kotak yang berada di atas, bawah , kanan, kirinya ketika di klik. Program juga mengecek apakah puzzle sudah diselesaikan. Jika sudah maka akan muncul window bertuliskan "You Win".

Berikut adalah tampilan nya


Link Download .jar file
Misteri 15 Kotak


Link Video Penjelasan Source Code dan Game
Misteri 15 Kotak


Anggota :
Nama : Naufal Fajar Imani
NRP : 05111940000007

Komentar

Postingan populer dari blog ini

MPPL 1 - Mendaftar Sebagai Freelancer

PBKK - 7 Xamarin Mobile Apps

Rekayasa Kebutuhan 7 - Pembuatan Spesifikasi