Skip to content

Commit 1e0c048

Browse files
committed
style: README
1 parent 020c32d commit 1e0c048

File tree

2 files changed

+139
-16
lines changed

2 files changed

+139
-16
lines changed

README.md

Lines changed: 139 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,155 @@
1-
## Prerequisites
1+
<h1 align="center">Tugas Kecil 3 IF2211 Strategi Algoritma</h1>
2+
<h1 align="center">➡️ Penyelesaian Puzzle Rush Hour Menggunakan Algoritma Pathfinding ⬅️</h1>
23

3-
Before running the game, ensure the following tools are installed:
4+
![alt text](<img/image.png>)
45

5-
- **Godot**: Version 4.4. minimum
6-
- **Python**
7-
- **Scons**: by using (`pip install scons` / `sudo apt install scons`)
8-
- **C++ compiler**
6+
## Daftar Isi
7+
1. [Informasi Umum](#informasi-umum)
8+
2. [Kontributor](#kontributor)
9+
3. [Fitur Utama](#fitur-utama)
10+
4. [Algoritma yang Diimplementasikan](#algoritma-yang-diimplementasikan)
11+
5. [Prasyarat Program](#prasyarat-program)
12+
6. [Cara Menjalankan Program](#cara-menjalankan-program)
13+
7. [Struktur Proyek](#struktur-proyek)
14+
8. [Status Proyek](#status-proyek)
915

10-
---
16+
## Informasi Umum
17+
Proyek ini bertujuan untuk mengimplementasikan dan menganalisis berbagai algoritma pathfinding dalam menyelesaikan puzzle klasik Rush Hour. Rush Hour adalah permainan puzzle logika berbasis grid dengan pemain harus menggeser kendaraan di dalam area terbatas agar mobil utama (target) dapat keluar melalui pintu keluar yang telah ditentukan. Tantangannya adalah mencapai tujuan ini dengan jumlah langkah seminimal mungkin.
1118

12-
## How to Run
19+
Program ini dikembangkan menggunakan Godot Engine dengan logika inti algoritma pencarian yang diimplementasikan dalam C++ sebagai GDExtension. Pengguna dapat memuat konfigurasi puzzle dari file teks dan memilih algoritma pencarian yang diinginkan untuk menemukan solusi. Program akan menampilkan hasil pencarian, termasuk jumlah langkah, waktu eksekusi, dan visualisasi langkah-langkah solusi.
1320

14-
Follow these steps to set up and run the game:
21+
## Kontributor
22+
| NIM | Nama |
23+
| :------- | :------------------- |
24+
| 13523087 | Grace Evelyn Simon |
25+
| 13523089 | Ahmad Ibrahim |
1526

16-
### 1. Compile the file
27+
## Fitur Utama
28+
* **Visualisasi Permainan Rush Hour**: Papan permainan dan gerakan mobil divisualisasikan menggunakan Godot Engine.
29+
* **Input Konfigurasi**: Membaca konfigurasi awal papan dan bidak dari file `.txt`.
30+
* **Pemilihan Algoritma**: Pengguna dapat memilih algoritma pathfinding yang akan digunakan untuk menyelesaikan puzzle.
31+
* **Output Hasil Pencarian**: Menampilkan jumlah langkah dalam solusi, waktu eksekusi, dan urutan konfigurasi papan per gerakan.
32+
* **Animasi Solusi (Bonus)**: Menampilkan animasi gerakan mobil untuk mencapai solusi.
1733

18-
**Option 1 :**
34+
## Algoritma yang Diimplementasikan
35+
Program ini mengimplementasikan beberapa algoritma pathfinding untuk menyelesaikan puzzle Rush Hour:
36+
1. **Uniform Cost Search (UCS)**: Menemukan solusi dengan biaya total terendah dari state awal. Dalam Rush Hour dengan biaya langkah seragam, ini akan menemukan solusi dengan jumlah gerakan paling sedikit.
37+
2. **Greedy Best-First Search (Greedy BFS)**: Menggunakan fungsi heuristik untuk memandu pencarian secara "rakus" ke state yang tampak paling dekat dengan tujuan. Tidak menjamin solusi optimal.
38+
3. **A\* (A-Star) Search**: Menggabungkan biaya aktual dari state awal (`g(n)`) dengan estimasi biaya heuristik ke tujuan (`h(n)`) untuk memandu pencarian.
39+
4. **Iterative Deepening Search (IDS)**: Menggabungkan keunggulan DFS dalam penggunaan memori dengan kelengkapan dan optimalitas BFS (untuk biaya langkah seragam) dengan melakukan serangkaian DLS dengan batas kedalaman yang meningkat.
1940

41+
## Prasyarat Program
42+
Sebelum menjalankan program, pastikan perangkat lunak berikut telah terinstal:
43+
44+
* **Godot Engine**: Versi 4.4 atau lebih baru (disarankan versi stabil terbaru).
45+
* **Kompilator C++**: Kompilator C++ yang kompatibel (misalnya, GCC/MinGW untuk Windows, Clang untuk macOS, GCC untuk Linux).
46+
* **Python**: Diperlukan untuk menjalankan SCons.
47+
* **SCons**: Sistem build yang digunakan untuk mengkompilasi GDExtension C++. Dapat diinstal menggunakan pip:
48+
```bash
49+
pip install scons
50+
```
51+
Atau melalui manajer paket sistem (misalnya, `sudo apt install scons` di Debian/Ubuntu).
52+
53+
## Cara Menjalankan Program
54+
### 1. Kloning Repositori
2055
```bash
21-
scons
56+
git clone https://github.com/aibrahim185/Tucil3_13523087_13523089.git
2257
```
2358

24-
or
59+
### 2. Kompilasi GDExtension C++
60+
Logika inti algoritma pencarian berada dalam GDExtension C++. Kompilasi bagian ini menggunakan SCons. Buka terminal atau command prompt di direktori root proyek (yang berisi file `SConstruct`).
61+
Jalankan salah satu perintah berikut:
62+
63+
**Opsi 1**
64+
```bash
65+
scons
66+
```
2567

68+
**Opsi 2**
2669
```bash
27-
python -m scons
70+
python -m scons
2871
```
2972

30-
### 2. Import game file inside Godot
73+
### 3. Impor dan Jalankan Proyek di Godot Engine
74+
* Buka aplikasi Godot Engine.
75+
* Pada Manajer Proyek Godot, pilih tombol "Impor".
76+
* Arahkan ke file `project.godot` yang berada di dalam direktori utama proyek Godot (`Tucil3_13523087_13523089/tukang-parkir-simulator/project.godot`). Klik "Buka".
77+
* Klik "Impor & Edit".
78+
* Setelah proyek terbuka di editor Godot, Anda dapat menjalankan game dengan menekan tombol "Play" di kanan atas (atau menggunakan shortcut F5).
79+
80+
### 4. Menggunakan Program
81+
* Setelah program berjalan, akan disajikan dengan antarmuka pengguna (GUI).
82+
* Fitur yang tersedia mencakup:
83+
* Tombol untuk **memuat file test case** (format `.txt`) yang berisi konfigurasi puzzle Rush Hour.
84+
* Pilihan untuk **memilih algoritma pencarian** yang ingin digunakan (UCS, Greedy BFS, A\*, IDS).
85+
* Setelah memuat test case dan memilih algoritma (serta heuristik jika ada), klik tombol "Solve".
86+
* Program akan memproses dan kemudian menampilkan hasil pencarian:
87+
* Visualisasi papan permainan.
88+
* Animasi langkah-langkah solusi.
89+
* Informasi seperti jumlah langkah dalam solusi, waktu eksekusi, dan jumlah node yang dieksplorasi.
90+
91+
## Struktur Proyek
92+
```
93+
.
94+
├── LICENSE.md
95+
├── README.md
96+
├── SConstruct
97+
├── __pycache__
98+
│ └── methods.cpython-311.pyc
99+
├── bin
100+
│ ├── android
101+
│ ├── linux
102+
│ ├── macos
103+
│ ├── web
104+
│ └── windows
105+
├── build_profile.json
106+
├── godot-cpp
107+
│ ├── CMakeLists.txt
108+
│ ├── LICENSE.md
109+
│ ├── Makefile
110+
│ ├── README.md
111+
│ ├── SConstruct
112+
│ ├── __pycache__
113+
│ ├── bin
114+
│ ├── binding_generator.py
115+
│ ├── build_profile.py
116+
│ ├── cmake
117+
│ ├── doc
118+
│ ├── gdextension
119+
│ ├── gen
120+
│ ├── include
121+
│ ├── misc
122+
│ ├── pyproject.toml
123+
│ ├── src
124+
│ ├── test
125+
│ └── tools
126+
├── image-1.png
127+
├── image.png
128+
├── img
129+
│ └── image.png
130+
├── methods.py
131+
├── src
132+
│ ├── gen
133+
│ ├── main_scene
134+
│ ├── register_types.cpp
135+
│ ├── register_types.h
136+
│ ├── register_types.o
137+
│ ├── search
138+
│ └── utils
139+
├── test
140+
│ ├── 1.txt
141+
│ ├── 2.txt
142+
│ ├── 3.txt
143+
│ ├── 4.txt
144+
│ └── 5.txt
145+
└── tukang-parkir-simulator
146+
├── bin
147+
├── export_presets.cfg
148+
├── icon.svg
149+
├── icon.svg.import
150+
├── project.godot
151+
└── scenes
152+
```
31153

32-
Launch Godot application and then select import file menu to import `Tucil3_13523087_13523089/tukang-parkir-simulator/project.godot`
154+
## Status Proyek
155+
Proyek ini telah selesai dengan bonus yang diterapkan berupa algoritma tambahan dan GUI.

img/image.png

263 KB
Loading

0 commit comments

Comments
 (0)