# robin-deb/isometric-checkers architecture

> Architecture diagram of the GitHub repository robin-deb/isometric-checkers, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-30). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/robin-deb/isometric-checkers
- Repository: https://github.com/robin-deb/isometric-checkers

## Overview

The repository contains two standalone Pygame programs: a checkers game with selectable pieces and move highlighting, and a simpler isometric-grid cube-dragging demo. The checkers workflow runs from mouse input through hit testing and move validation/highlighting, then displays the board and pieces. Source excerpts are partial, so links involving unsampled game-loop behavior are omitted; no README documentation is available.

Main entry points: [`Isometric.py`](https://github.com/robin-deb/isometric-checkers/blob/main/Isometric.py) (Demo Loop), [`Isometric Checkers.py`](https://github.com/robin-deb/isometric-checkers/blob/main/Isometric%20Checkers.py) (Game Loop)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_checkers["Checkers Game"]
  node_game_loop["Game Loop"]
  node_hitbox["Hitbox Detection"]
  node_move_rules["Move Rules"]
  node_move_highlights["Move Highlights"]
  node_move_messages["Move Messages"]
  node_debug_panel["Debug Panel"]
end

subgraph group_shared["Game Display"]
  node_board_render["Board Rendering"]
  node_piece_render["Piece Rendering"]
end

subgraph group_demo["Drag Demo"]
  node_demo_loop["Demo Loop<br/>[Isometric.py]"]
  node_demo_grid["Grid Drawing<br/>[Isometric.py]"]
  node_demo_tiles["Tile Drawing<br/>[Isometric.py]"]
  node_demo_drag["Cube Dragging<br/>[Isometric.py]"]
  node_demo_cubes["Cube Drawing<br/>[Isometric.py]"]
end

node_player(("Player"))

node_player -->|"sends input"| node_game_loop
node_game_loop -->|"checks hits"| node_hitbox
node_game_loop -->|"requests highlights"| node_move_highlights
node_move_highlights -->|"checks moves"| node_move_rules
node_move_highlights -->|"draws highlights"| node_board_render
node_piece_render -->|"draws pieces"| node_board_render
node_debug_panel -->|"checks tile hit"| node_hitbox
node_player -->|"sends input"| node_demo_loop
node_demo_loop -->|"draws grid"| node_demo_grid
node_demo_grid -->|"draws tiles"| node_demo_tiles
node_demo_loop -->|"handles dragging"| node_demo_drag
node_demo_loop -->|"draws cubes"| node_demo_cubes

click node_game_loop "https://github.com/robin-deb/isometric-checkers/blob/main/Isometric%20Checkers.py"
click node_hitbox "https://github.com/robin-deb/isometric-checkers/blob/main/Isometric%20Checkers.py"
click node_move_rules "https://github.com/robin-deb/isometric-checkers/blob/main/Isometric%20Checkers.py"
click node_move_highlights "https://github.com/robin-deb/isometric-checkers/blob/main/Isometric%20Checkers.py"
click node_board_render "https://github.com/robin-deb/isometric-checkers/blob/main/Isometric%20Checkers.py"
click node_piece_render "https://github.com/robin-deb/isometric-checkers/blob/main/Isometric%20Checkers.py"
click node_move_messages "https://github.com/robin-deb/isometric-checkers/blob/main/Isometric%20Checkers.py"
click node_debug_panel "https://github.com/robin-deb/isometric-checkers/blob/main/Isometric%20Checkers.py"
click node_demo_loop "https://github.com/robin-deb/isometric-checkers/blob/main/Isometric.py"
click node_demo_grid "https://github.com/robin-deb/isometric-checkers/blob/main/Isometric.py"
click node_demo_tiles "https://github.com/robin-deb/isometric-checkers/blob/main/Isometric.py"
click node_demo_drag "https://github.com/robin-deb/isometric-checkers/blob/main/Isometric.py"
click node_demo_cubes "https://github.com/robin-deb/isometric-checkers/blob/main/Isometric.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_game_loop,node_hitbox,node_move_rules,node_move_highlights,node_move_messages,node_debug_panel toneBlue
class node_board_render,node_piece_render toneAmber
class node_demo_loop,node_demo_grid,node_demo_tiles,node_demo_drag,node_demo_cubes toneMint
class node_player toneIndigo
```

## Components

### Checkers Game

- [Game Loop](https://github.com/robin-deb/isometric-checkers/blob/main/Isometric%20Checkers.py): `Isometric Checkers.py`
- [Hitbox Detection](https://github.com/robin-deb/isometric-checkers/blob/main/Isometric%20Checkers.py): `Isometric Checkers.py`
- [Move Rules](https://github.com/robin-deb/isometric-checkers/blob/main/Isometric%20Checkers.py): `Isometric Checkers.py`
- [Move Highlights](https://github.com/robin-deb/isometric-checkers/blob/main/Isometric%20Checkers.py): `Isometric Checkers.py`
- [Move Messages](https://github.com/robin-deb/isometric-checkers/blob/main/Isometric%20Checkers.py): `Isometric Checkers.py`
- [Debug Panel](https://github.com/robin-deb/isometric-checkers/blob/main/Isometric%20Checkers.py): `Isometric Checkers.py`

### Game Display

- [Board Rendering](https://github.com/robin-deb/isometric-checkers/blob/main/Isometric%20Checkers.py): `Isometric Checkers.py`
- [Piece Rendering](https://github.com/robin-deb/isometric-checkers/blob/main/Isometric%20Checkers.py): `Isometric Checkers.py`

### Drag Demo

- [Demo Loop](https://github.com/robin-deb/isometric-checkers/blob/main/Isometric.py): `Isometric.py`
- [Grid Drawing](https://github.com/robin-deb/isometric-checkers/blob/main/Isometric.py): `Isometric.py`
- [Tile Drawing](https://github.com/robin-deb/isometric-checkers/blob/main/Isometric.py): `Isometric.py`
- [Cube Dragging](https://github.com/robin-deb/isometric-checkers/blob/main/Isometric.py): `Isometric.py`
- [Cube Drawing](https://github.com/robin-deb/isometric-checkers/blob/main/Isometric.py): `Isometric.py`

### Other components

- **Player**

## Connections

- Player → Game Loop: sends input (evidence: `Isometric Checkers.py`)
- Game Loop → Hitbox Detection: checks hits (evidence: `Isometric Checkers.py`)
- Game Loop → Move Highlights: requests highlights (evidence: `Isometric Checkers.py`)
- Move Highlights → Move Rules: checks moves (evidence: `Isometric Checkers.py`)
- Move Highlights → Board Rendering: draws highlights (evidence: `Isometric Checkers.py`)
- Piece Rendering → Board Rendering: draws pieces (evidence: `Isometric Checkers.py`)
- Debug Panel → Hitbox Detection: checks tile hit (evidence: `Isometric Checkers.py`)
- Player → Demo Loop: sends input (evidence: `Isometric.py`)
- Demo Loop → Grid Drawing: draws grid (evidence: `Isometric.py`)
- Grid Drawing → Tile Drawing: draws tiles (evidence: `Isometric.py`)
- Demo Loop → Cube Dragging: handles dragging (evidence: `Isometric.py`)
- Demo Loop → Cube Drawing: draws cubes (evidence: `Isometric.py`)
