Code Monkey home page Code Monkey logo

tucil3_13522058's Introduction

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.

Table of Contents

General Information

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

Technologies Used

  • Java - version 1.8.0_381

Features

  • CLI Solver
  • GUI Solver
  • Detailed Output Steps Visualization

Screenshots

Example 1

Example screenshot Example screenshot

Example 2

Example screenshot Example screenshot

Example 3

Example screenshot Example screenshot

Setup

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

1. Clone This Repository

git clone https://github.com/ImanuelSG/Tucil3_13522058.git

2. Navigate towards the main directory

cd Tucil3_13522058

3. Generate the map of your dictionary

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

4. Run the GUI/CLI starter using.bat / .sh

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

Project Status

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

Room for Improvement

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

Contact

You cant contact me via

Name NIM Contact Github
Imanuel Sebastian Girsang 13522058 [email protected] ImanuelSG

tucil3_13522058's People

Contributors

imanuelsg avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.