This repository houses a collection of Java-based algorithmic projects that focus on solving complex problems through optimization techniques, creative game design, and interactive problem-solving. The projects explore various aspects of computational theory, algorithm design, and graphical visualization.
A 3D knapsack problem solver that attempts to fill a 3D space using Cuboids and Pentominoes. The goal is to efficiently pack the knapsack with the fewest empty spaces, while also considering scoring through different optimization approaches.
A puzzle solver that aims to fill a rectangular grid with pentomino shapes in an optimal way. The project explores both brute force and optimized algorithms for solving the tiling problem, where the objective is to use as few shapes as possible to cover the grid without overlap.
An interactive game inspired by the classic mechanics of falling blocks. The project focuses on game design and the use of algorithms to optimize the placement of falling pieces in a confined space, with the challenge of maximizing efficiency and avoiding overflow.
This repository is a collaborative project by:
- Mila Georgieva Spasova
- Toms Cristian Nitu
- Dimitris Tsiplakis
- Martin Nedelinov Petrov
- Jure Kastelic
- Ekoe Gregorio Amah-tchoutchoui
✔️ Developed an understanding of classical optimization algorithms, including brute force and branching techniques
✔️ Implemented 3D visualization for real-time problem-solving
✔️ Gained experience in game logic and algorithmic thinking for interactive applications
✔️ Strengthened teamwork and version control practices in collaborative software development