# looping838/fubuki architecture

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

- Interactive diagram: https://gitdiagram.com/looping838/fubuki
- Repository: https://github.com/looping838/fubuki

## Overview

This small Java program generates and prints a Fubuki puzzle board. Its entry point shuffles the digits 1–9, fills a 3×3 board, computes row and column totals, and displays the result. The board stores cells and totals; each cell stores its coordinates, value, and modifiability state. The README is empty, so this map reflects only the sampled source. Note that Case.java has no package declaration, while the other classes declare package metier.

Main entry points: [`metier/Fubuki.java`](https://github.com/looping838/fubuki/blob/main/metier/Fubuki.java) (Fubuki generator), [`metier/Plateau.java`](https://github.com/looping838/fubuki/blob/main/metier/Plateau.java) (Board and totals), [`metier/Case.java`](https://github.com/looping838/fubuki/blob/main/metier/Case.java) (Board cell)

## Diagram (Mermaid)

```mermaid
flowchart TD

node_user(("Program user"))
node_fubuki["Fubuki generator<br/>[Fubuki.java]"]
node_plateau["Board and totals<br/>[Plateau.java]"]
node_case["Board cell<br/>[Case.java]"]
node_rng["Java random"]
node_console["Console output"]

node_user -->|"runs main"| node_fubuki
node_fubuki -->|"shuffles with"| node_rng
node_fubuki -->|"initializes board"| node_plateau
node_plateau -->|"creates cells"| node_case
node_fubuki -->|"sets values"| node_case
node_fubuki -->|"sets totals"| node_plateau
node_fubuki -->|"prints board"| node_console

click node_fubuki "https://github.com/looping838/fubuki/blob/main/metier/Fubuki.java"
click node_plateau "https://github.com/looping838/fubuki/blob/main/metier/Plateau.java"
click node_case "https://github.com/looping838/fubuki/blob/main/metier/Case.java"

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_user toneBlue
class node_fubuki,node_plateau,node_case toneTeal
class node_rng,node_console toneIndigo
```

## Components

### Other components

- **Program user**
- [Fubuki generator](https://github.com/looping838/fubuki/blob/main/metier/Fubuki.java): `metier/Fubuki.java`
- [Board and totals](https://github.com/looping838/fubuki/blob/main/metier/Plateau.java): `metier/Plateau.java`
- [Board cell](https://github.com/looping838/fubuki/blob/main/metier/Case.java): `metier/Case.java`
- **Java random**
- **Console output**

## Connections

- Program user → Fubuki generator: runs main
- Fubuki generator → Java random: shuffles with
- Fubuki generator → Board and totals: initializes board
- Board and totals → Board cell: creates cells
- Fubuki generator → Board cell: sets values
- Fubuki generator → Board and totals: sets totals
- Fubuki generator → Console output: prints board
