# Skyscraper Puzzle

This project implements the Skyscraper logic puzzle game.

## Game Rules

The Skyscraper puzzle is played on an n×n grid, with each grid cell containing a skyscraper. The heights of the skyscrapers range from 1 to n.
In the same row or column, height numbers cannot be repeated, meaning each row and column must contain a unique arrangement of numbers from 1 to n.

Around the grid, some numbers are marked, indicating the number of skyscrapers visible from that direction: when you observe from a certain direction, taller skyscrapers block shorter ones behind them.

## Example

An example of a 4×4 Skyscraper puzzle:

```
      1   2   3   2 
1     X   X   X   X     4
2     X   X   X   X     1
2     X   X   X   X     3
2     X   X   X   X     2
      3   2   1   2
```

Here, the numbers surrounding the grid indicate the number of skyscrapers visible from that direction, and X represents the skyscraper height to be filled in.

## Quick Start

### Generate Puzzles Only

If you only need to generate Skyscraper puzzle problems without testing and checking the pass rate, you can use the following command:

```bash
# Specify the range of game sizes
python scripts/skyscraper_puzzle.py --min_n 4 --max_n 5 --num 15 --output data/custom_skyscraper_puzzles.jsonl
```