Skip to content

ashmod/ASU_SeniorProject_Algorithms

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚀 Algorithmic Puzzles: Visualizations & Solvers

Status Java Maven License

🧩 Welcome to our Algorithmic Analysis repository!

This interactive Java application showcases six fascinating algorithmic puzzles and problems through visualizations and step-by-step solutions. Whether you're a computer science student, an algorithms enthusiast, or just curious about computational problem-solving, this project offers an engaging way to explore classic algorithms.

✨ Features

This project includes beautiful interactive visualizations and solvers for the following algorithmic challenges:

🧩 Tromino Tiling

Tile a $2^n × 2^n$ board with L-shaped trominoes, leaving one square uncovered! This implementation uses a clever divide-and-conquer approach to solve the puzzle efficiently.

♞ Knight's Tour

Watch a chess knight visit every square on the board exactly once! Implemented using both backtracking and Warnsdorff's rule (greedy heuristic).

🗼 Tower of Hanoi

The classic recursive puzzle solved for both the standard 3-peg version and the advanced 4-peg variation (Reve's puzzle).

⚔️ Knights Exchange

Solve the challenging problem of exchanging the positions of two sets of knights on a chessboard with minimal moves.

🎯 Shooter Game

An optimization problem involving strategic positioning in a 2D grid to maximize coverage.

📏 Lattice Cover

Find the optimal way to cover a set of points in a plane with line segments of minimum total length.

🚀 Getting Started

Prerequisites

  • Java 17 or higher
  • Maven

Installation

# Clone the repository
git clone https://github.com/dizzydroid/ASU_SeniorProject_Algorithms.git

# Navigate to the project directory
cd ASU_SeniorProject_Algorithms

# Build the project
mvn clean package

# Run the application
java -jar target/algorithms-course-project-1.0.jar

🎮 Usage

  1. Launch the application with the command above
  2. Use the interactive menu to select which algorithm you want to explore
  3. Follow the on-screen instructions to set parameters and watch the visualization
  4. Enjoy learning through visualization!

🧠 Learning Resources

Each algorithm implementation is thoroughly commented to explain the underlying concepts:

  • 1. Tromino Tiling: Divide-and-conquer strategy, recursive backtracking
  • 2. Knight's Tour: Backtracking, Warnsdorff's rule
  • 3. Tower of Hanoi: Recursive problem-solving, dynamic programming
  • 4. Knights Exchange: Graph theory, combinatorial optimization
  • 5. Shooter Game: Greedy algorithms, optimization
  • 6. Lattice Cover: Geometric algorithms, computational geometry

👥 Contributing

Contributions are welcome! Feel free to:

  • Report bugs
  • Suggest new features or algorithms
  • Improve documentation
  • Submit pull requests

📝 License

This project is licensed under the MIT License - see the LICENSE file for details.

🙏 Acknowledgments

  • Ain Shams University Faculty for guidance
  • The algorithms community for sharing knowledge and inspiration
  • All contributors and testers who helped improve this project

Made with ❤️ by CSE332s students at Ain Shams University

About

Interactive visualizations and solvers for six classic algorithmic puzzles, implemented in Java.

Topics

Resources

License

Stars

Watchers

Forks

Contributors 7

Languages