This repository is a final project (Java GUI) from Object-Oriented Programming Class, Teknik Informatika Universitas Padjadjaran.
Puzzle 15 adalah sebuah game puzzle geser yang terdiri dari beberapa tile bernomor yang tersusun secara acak. Terdapat 1 tile yang hilang sebagai space untuk menggeser tiles bernomor. Game ini bertujuan untuk menyusun tile bernomor acak menjadi berurutan. Ukuran puzzle ini 4x4 dengan 1 tile kosong sehingga berjumlah 15 sehingga disebut puzzle 15.
NPM | Name |
---|---|
140810190013 | Syakira Rahma Fauziyah |
140810190021 | Mochammad Ghifari Eka Narayana |
140810190031 | Mochamad Arya Bima Agfian |
140810190051 | Salma Tri Audryani |
-
Sprint Planning - (19 November 2020)
- Diskusi awal, penyusunan sprint backlog, mencari referensi.
-
Sprint 1 - (18 November 2020 - 24 November 2020)
- Implementasi OOP Dasar
- Pembuatan Class UI JFrame
- Pembuatan Class ClickListener
- Pembuatan Main Object Puzzle
-
Sprint 2 - (25 November 2020 - 1 December 2020)
- Pembuatan Logic Game
- Reset Button
- Implementasi Reset Button di UI
-
Sprint 3 - (2 December 2020 - 8 December 2020)
- Implementasi Main
- Error Handling
- Trial Challenge
- Finishing
Main file Puzzle.java
atau Puzzle 15 kami dapat dijalankan dengan tiga cara :
java Puzzle
Ketika dijalankan seperti ini, puzzle akan berupa grid dengan angka 1-15 yang harus disusun berurutan untuk menyelesaikannya.
java Puzzle 5
Ketika dijalankan seperti ini, puzzle akan membentuk grid 5x5 dengan masing-masing tile berisi angka 1-24. User harus mengurutkan angka 1-24 untuk menyelesaikannya.
java Puzzle 3 rem
Ketika dijalankan seperti ini, puzzle akan membentuk grid 3x3 dengan isi tile berupa potongan gambar dari mode "rem". User harus mengurutkan puzzle berdasarkan gambar yang dipecah ini. Untuk mode yang dapat dimainkan akan dicantumkan di [Notable Assumption and Design App Details]. User juga akan disajikan oleh gambar sudah jadi dari mode yang dipilih.
-
Puzzle (Main program) -
Puzzle.java
- Main program di mana Puzzle15 berjalan berdasarkan UI.
-
UserInterface -
UserInterface.java
- Objek yang menjadi frame Puzzle15.
-
PuzzleGrid -
PuzzleGrid.java
- Objek yang mengekstensi
JPanel
dan menjadi kanvas untuk seluruh tile puzzle.
- Objek yang mengekstensi
-
ClickListener -
ClickListener.java
- Objek yang mengekstensi
MouseAdapter
dan menjadi responden untuk pergerakan serta semua click di UserInterface.
- Objek yang mengekstensi
-
Logic -
Logic.java
- Objek yang menyimpan logika memulai dan mengakhiri game Puzzle15.
- Desain Aplikasi
- Rekomendasi ukuran game adalah 3x3, 4x4, dan 5x5.
- Resolusi PuzzleGrid paling optimal untuk penggunaan 2 argumen adalah 600x600.
- Untuk Running the App poin ke-3. Argumen int yang mungkin digunakan adalah 3, 4, dan 5.
- Untuk Running the App poin ke-3. Argumen String yang mungkin digunakan untuk saat ini berjumlah 8 :
rem
miku
hina
astolfo
inanis
watson
yunyun
eriri
- Game memiliki fitur number of clicks dan high score sebagai tambahan. High score adalah number of clicks paling sedikit yang dibutuhkan untuk menyelesaikan puzzle tersebut selama satu sesi.
- Ketika puzzle dimainkan dengan mode custom, akan ada example yang merupakan hasil akhir ketika puzzle tersusun dengan rapih.
- Jika ingin mengganti mode, user harus memulai ulang program dan mengetikkan mode yang ingin dimainkan.
- Terdapat tombol Reset yang dapat digunakan untuk mengacak puzzle. Reset hanya akan berfungsi ketika blankPos berada di posisi paling kanan bawah. Jika user melakukan reset ketika blankPos tidak di tempat seharusnya, akan muncul warning popup.