Penyelesaian Permainan LinkedIn Queens menggunakan Algoritma Brute Force
Queens Solver adalah program berbasis GUI (JavaFX) yang dirancang untuk mencari solusi dari permainan logika Queens (yang populer di LinkedIn). Permainan ini mengharuskan pemain untuk menempatkan
- Setiap baris harus memiliki tepat satu ratu.
- Setiap kolom harus memiliki tepat satu ratu.
- Setiap wilayah warna harus memiliki tepat satu ratu.
- Tidak ada dua ratu yang boleh bersentuhan (termasuk secara diagonal).
Program ini mengimplementasikan dua pendekatan algoritma:
- Algoritma Brute Force Kombinasi Petak: Mencoba seluruh kombinasi penempatan ratu secara exhaustive.
- Algoritma Brute Force Per Wilayah: Pendekatan berbasis wilayah dengan pemangkasan (pruning) dan backtracking yang jauh lebih efisien.
- Pilihan Algoritma: Pilihan antara Algoritma Brute Force Kombinasi Petak atau Algoritma Brute Force Per Wilayah yang dioptimasi dengan pruning dan backtracking.
- Visualisasi: Melihat proses pencarian solusi langkah demi langkah (live update) dengan kecepatan yang dapat diatur.
- Pilihan Input:
- File Teks (.txt): Memuat papan dari format teks standar.
- Manual Input: Mengetik konfigurasi papan langsung di aplikasi.
- Validasi Input: Mendeteksi kesalahan format, dimensi, dan lain-lain.
- Simpan Solusi: Menyimpan hasil solusi ke dalam file teks (.txt) atau gambar (.png).
Sebelum menjalankan program, pastikan perangkat memiliki:
- Java Development Kit (JDK) 21 atau lebih baru.
- Apache Maven (untuk manajemen dependensi dan build).
Unduh kode sumber atau clone repositori ini:
git clone https://github.com/NikSamSim/Tucil1_13524029.git
cd Tucil1_13524029Lakukan kompilasi dan instalasi dependensi menggunakan Maven:
mvn clean packagePerintah ini akan menghasilkan file executable .jar di dalam folder target/.
Anda dapat menjalankan program dengan dua cara:
Cara 1: Menggunakan Maven
mvn javafx:runCara 1: Menjalankan File JAR
java -jar target/queens-solver-1.0.jarFile executable .jar sudah tersedia dalam folder bin/ sehingga jika ingin langsung menggunakannya dapat jalankan perintah berikut
java -jar bin/queens-solver-1.0.jaratau langsung double click file queens-solver-1.0.jar yang ada di folder bin/
- Pilih Input:
- Klik Input .txt untuk membuka file .txt.
- Atau ketik manual di area teks lalu klik Terapkan Input.
- Pilih Algoritma:
- Pilih "Brute Force Kombinasi Petak" atau "Brute Force Per Wilayah" pada dropdown Pilih Algoritma.
- Visualisasi:
- Centang Tampilkan Visualisasi jika ingin melihat live update.
- Atur kecepatan animasi menggunakan slider.
- Eksekusi:
- Klik tombol Solve.
- Status, waktu eksekusi, dan jumlah iterasi akan muncul di panel status.
- Simpan:
- Jika solusi ditemukan, klik tombol Simpan Solusi untuk menyimpan hasil.
- Solusi dapat disimpan dalam format .txt dan .png.
Tucil1_13524029/
├── .git/
├── bin/
│ └── queens-solver-1.0.jar # File executable
├── doc/ # Laporan
├── src/
│ └── main/
│ ├── java/
│ │ └── stima/
│ │ ├── model/ # Struktur Data Papan
│ │ │ └── Board.java
│ │ ├── solver/ # Implementasi Algoritma
│ │ │ ├── BruteForce.java
│ │ │ ├── OptimizationBruteForce.java
│ │ │ ├── Solver.java
│ │ │ └── SolverAlgorithm.java
│ │ ├── utils/ # Utilitas
│ │ │ └── InputLoader.java
│ │ ├── App.java
│ │ ├── Launcher.java
│ │ └── MainController.java
│ └── resources/ # Aset
│ └── stima/
│ ├── layout.fxml
│ └── logo.png
├── test/ # Folder Uji Coba
├── .gitignore
├── LICENSE
├── pom.xml
└── README.md
Niko Samuel Simanjuntak (13524029)