Tucil 3 IF-2211 Strategi Algorima : Word Ladder Solver Using UCS, Greedy Best First Search and A* Algorithm
This project was created to fulfill the third mini task for the Algorithm Strategy Course at the Institute of Technology, Bandung. The project aims to solve the popular Word Ladder game using three different algorithms, then compare them to determine which is best suited for this problem.
- General Information
- Technologies Used
- Features
- Screenshots
- Setup
- Project Status
- Room for Improvement
- Contact
A word ladder game is a puzzle where players transform one word into another by changing one letter at a time, with each intermediate word also being valid. The goal is to find the shortest path from the starting word to the target word using a series of valid transformations. The dictionary used in this project can be found here https://docs.oracle.com/javase/tutorial/collections/interfaces/examples/dictionary.txt
- Java - version 1.8.0_381
- CLI Solver
- GUI Solver
- Detailed Output Steps Visualization
In order to use this project, make sure to have Java installed on your computer. For linux users, please use
sudo apt-get install default-jdk
You can then follow these steps
git clone https://github.com/ImanuelSG/Tucil3_13522058.git
cd Tucil3_13522058
If you want to use your own dictionary, add the txt file on the dictionary folder with the name words.txt. After that, run this command before moving on. Else just ignore this step
./generateMap.bat for Windows or ./generateMap.sh for Linux
If you want to use the CLI, use this command
./runCLI.bat for Windows or ./runCLI.sh for Linux
If you want to use the GUI, use this command
./runGUI.bat for Windows or ./runGUI.sh for Linux
Poin | Ya | Tidak |
---|---|---|
1. Program berhasil dijalankan. | ☑ | |
2. Program dapat menemukan rangkaian kata dari start word ke end word sesuai aturan permainan dengan algoritma UCS | ☑ | |
3. Solusi yang diberikan pada algoritma UCS optimal | ☑ | |
4. Program dapat menemukan rangkaian kata dari start word ke end word sesuai aturan permainan dengan algoritma Greedy Best First Search | ☑ | |
5. Program dapat menemukan rangkaian kata dari start word ke end word sesuai aturan permainan dengan algoritma A* | ☑ | |
6. Solusi yang diberikan pada algoritma A* optimal | ☑ | |
7. [Bonus]: Program memiliki tampilan GUI | ☑ |
Because this project is speedrun in one week, there are a lot of things to be improved on. Room for improvement:
- Use better OOP Design Principles in order ot make more maintainable and sustainable code
- Search for better data structures, pruning strategies, and other performance related things to improve the execution time of this program.
- Explore better GUI features and add more functionality to the GUI
You cant contact me via
Name | NIM | Contact | Github |
---|---|---|---|
Imanuel Sebastian Girsang | 13522058 | [email protected] | ImanuelSG |