Program ini merupakan implementasi algoritma Brute Force untuk menyelesaikan permainan IQ Puzzler Pro. Pemain harus mengisi papan berukuran N × M dengan P blok puzzle unik. Program membaca file input yang mendefinisikan ukuran papan, jumlah blok, jenis kasus (DEFAULT atau CUSTOM), dan bentuk setiap blok.
Algoritma mencoba semua kemungkinan penyusunan blok dengan rotasi dan pencerminan hingga menemukan solusi yang memenuhi aturan permainan atau menyatakan bahwa tidak ada solusi. Hasilnya ditampilkan dalam format berwarna, mencatat waktu eksekusi serta jumlah iterasi yang dilakukan.
- Setiap blok puzzle direpresentasikan dengan huruf kapital A-Z, tanpa karakter lain.
- Tiap input yang memiliki bentuk berbeda harus memiliki representasi alfabet yang berbeda juga (tidak ada bentuk yang berbeda dengan alfabet yang sama).
- Tidak ada dua blok dengan huruf alfabet yang sama.
- Puzzle selalu memiliki konfigurasi yang valid berdasarkan format input (DEFAULT atau CUSTOM).
- Pada mode CUSTOM, area papan yang harus diisi hanya ditandai dengan karakter 'X', sedangkan '.' menandakan area kosong yang tidak perlu diisi.
Workspace ini berisi folder-folder berikut:
src
: Berisi source code program.bin
: Menyimpan file eksekusi yang telah dikompilasi (disesuaikan dengan bahasa pemrograman yang digunakan).test
: Berisi solusi jawaban dari test input ".txt" dan/atau ".png"test_input
: Berisi test input dengan format ".txt"doc
: Berisi laporan tugas kecil dalam format PDF.
Program ini dibuat dengan Visual Studio Code. Berikut merupakan beberapa dependencies yang diperlukan untuk menjalankan program.
- Java 17 atau lebih baru
- (Opsional) Terminal dengan dukungan ANSI escape code untuk output berwarna
Windows: Unduh dan instal dari Oracle JDK
atau gunakanAdoptium OpenJDK
.
Linux/macOS:
sudo apt install openjdk-17-jdk # Untuk Ubuntu/Debian
brew install openjdk@17 # Untuk macOS dengan Homebrew
Detail lebih lanjut mengenai java dependency dalam VSCode dapat diakses di sini.
Program ini membutuhkan Java 17 atau lebih baru. Cek versi Java yang terinstal dengan perintah:
java -version
Jika belum terinstal, silakan instal sesuai dengan keterangan dalam Program Requirements & Dependencies
Buka terminal atau command prompt, lalu jalankan:
javac -d bin src/*.java
Perintah ini akan mengompilasi semua file .java
dalam folder src/
dan menyimpannya ke dalam folder bin/
.
Setelah program dikompilasi, jalankan dengan perintah:
java -cp bin Main
Saat program dijalankan, pengguna akan diminta memasukkan nama file input yang berisi spesifikasi puzzle, misalnya:
Enter filename (including .txt): ./test_input/test1.txt
Program kemudian akan membaca file, memproses puzzle, dan menampilkan hasilnya di terminal.
- Jika solusi ditemukan, program akan menampilkan papan permainan yang sudah terisi.
- Program juga akan mencetak waktu eksekusi dan jumlah iterasi brute force.
- Pengguna akan ditanya apakah ingin menyimpan solusi:
Jika "ya", program akan menyimpan output dalam folder
Apakah anda ingin menyimpan solusi? (ya/tidak)
test/
sebagai:- File teks:
test/[nama_file]_output.txt
- Gambar puzzle (jika mendukung visualisasi):
test/[nama_file].png
- File teks:
- Menjalankan program
java -cp bin Main
- Masukkan file input
Enter filename (including .txt): ./test_input/test1.txt
- Hasil solusi (jika ditemukan)
AGGGD AABDD CCBBF CEEFF EEEFF Waktu pencarian: 604 ms Banyak kasus yang ditinjau: 7387 Apakah anda ingin menyimpan solusi? (ya/tidak)
- Jika memilih menyimpan solusi → File output tersimpan di
test/
.
Nama | NIM | Kelas IF2211 |
---|---|---|
Asybel Bintang | 15223011 | K1 |