♟️ Academic project for Programming Laboratory II
This repository contains a C# implementation of the Chessboard Coverage Problem (also known as the Tromino Tiling Problem).
The project was developed as a game-like application to practice algorithm design and recursive programming.
The Chessboard Coverage Problem consists of:
- A chessboard of size
2^n x 2^n. - One arbitrary missing square.
- The goal is to cover the entire board with L-shaped tromino tiles (three squares connected in an “L” shape), without overlapping and leaving only the missing square uncovered.
This problem is a classic example for practicing divide-and-conquer algorithms and recursive thinking.
- Implement the recursive algorithm to solve the tiling problem.
- Visualize the solution on a chessboard through a Windows Forms application.
- Apply programming concepts learned in Programming Laboratory II.
- Language: C#
- Framework: .NET Framework (Windows Forms)
- IDE: Visual Studio
| File / Folder | Description |
|---|---|
TP-Lab-II.sln |
Visual Studio solution file |
*.cs |
C# source code implementing the algorithm |
*.pdf |
Assignment description and university guides |
Ejemplo_Wind |
Example project files / resources |
Pierina_Inveninato.txt |
Personal notes and reflections |
-
Clone the repository
git clone https://github.com/PieriFra/Tromino-Tiling.git -
Open in Visual Studio: Load TP-Lab-II.sln.
-
Build the solution: Ensure the correct .NET Framework version is installed (e.g., .NET Framework 4.x).
-
Run the application:
- Choose a board size 2^n x 2^n.
- Select the missing square.
- Watch the algorithm cover the board step by step.
- Applying divide-and-conquer techniques.
- Implementing recursive algorithms in C#.
- Visualizing abstract algorithmic problems through a simple game interface.
- Add color-coded tiles for better visualization.
- Allow step-by-step animation of the recursive process.
- Extend to other tiling or covering problems.