Skip to content

Chessboard Coverage (Tromino Tiling) in C#. A Windows Forms application that implements the classic divide-and-conquer algorithm for covering a 2ⁿ × 2ⁿ chessboard with trominoes, leaving one square uncovered.

Notifications You must be signed in to change notification settings

PieriFra/Chessboard-Coverage

Repository files navigation

Tromino Tiling – Chessboard Coverage Problem (Lab II)

♟️ 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.

📖 Problem Description

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.


🚀 Project Objectives

  • 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.

🛠️ Tech Stack

  • Language: C#
  • Framework: .NET Framework (Windows Forms)
  • IDE: Visual Studio

📂 Repository Structure

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

🎮 How to Run

  1. Clone the repository

    git clone https://github.com/PieriFra/Tromino-Tiling.git
    
    
  2. Open in Visual Studio: Load TP-Lab-II.sln.

  3. Build the solution: Ensure the correct .NET Framework version is installed (e.g., .NET Framework 4.x).

  4. 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.

🌱 Learning Outcomes

  • Applying divide-and-conquer techniques.
  • Implementing recursive algorithms in C#.
  • Visualizing abstract algorithmic problems through a simple game interface.

📸 Future Improvements

  • Add color-coded tiles for better visualization.
  • Allow step-by-step animation of the recursive process.
  • Extend to other tiling or covering problems.

About

Chessboard Coverage (Tromino Tiling) in C#. A Windows Forms application that implements the classic divide-and-conquer algorithm for covering a 2ⁿ × 2ⁿ chessboard with trominoes, leaving one square uncovered.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages