# orionshinesbright/fishon architecture

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

- Interactive diagram: https://gitdiagram.com/orionshinesbright/fishon
- Repository: https://github.com/orionshinesbright/fishon

## Overview

FishOn is a repository of three separate SFML games: memory matching, Tic-Tac-Toe, and brick breaker. Their shared user-to-result pattern is represented through each game’s manager and domain objects: moves update board or play state, then the game checks outcomes or renders the scene. The README does not document gameplay capabilities, so the map reflects the sampled implementation and indexed modules; Tic-Tac-Toe’s AI and some entry-point wiring were not verified in excerpts.

Main entry points: [`Game_3/GameManager.cpp`](https://github.com/orionshinesbright/fishon/blob/main/Game_3/GameManager.cpp) (Game manager), [`Game_1/Team_FishOn_MemoryGame_GameManager.cpp`](https://github.com/orionshinesbright/fishon/blob/main/Game_1/Team_FishOn_MemoryGame_GameManager.cpp) (Game manager), [`Game_2/Team_FishOn_TicTacToe_GameManager.cpp`](https://github.com/orionshinesbright/fishon/blob/main/Game_2/Team_FishOn_TicTacToe_GameManager.cpp) (Game manager), [`Game_1/Team_FishOn_MemoryGame_GameBoard.cpp`](https://github.com/orionshinesbright/fishon/blob/main/Game_1/Team_FishOn_MemoryGame_GameBoard.cpp) (Card board)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_memory["Memory Match"]
  node_memory_manager["Game manager"]
  node_memory_board["Card board"]
  node_memory_card["Match cards"]
  node_memory_player["Scoring players"]
  node_memory_entry["Game entry"]
end

subgraph group_ttt["Tic-Tac-Toe"]
  node_ttt_manager["Game manager"]
  node_ttt_board["Grid and wins"]
  node_ttt_player["Player stats"]
  node_ttt_ai["AI player"]
  node_ttt_entry["Game entry"]
end

subgraph group_breaker["Brick Breaker"]
  node_break_manager["Game manager<br/>[GameManager.cpp]"]
  node_break_ball["Ball motion<br/>[Ball.cpp]"]
  node_break_brick["Brick state<br/>[Brick.cpp]"]
  node_break_paddle["Paddle control<br/>[Paddle.cpp]"]
  node_break_player["Player score<br/>[Player.cpp]"]
  node_break_entry["Game entry<br/>[main.cpp]"]
end

node_memory_manager -->|"updates and checks"| node_memory_board
node_memory_manager -->|"updates score"| node_memory_player
node_memory_board -->|"manages cards"| node_memory_card
node_ttt_manager -->|"marks and checks"| node_ttt_board
node_ttt_manager -->|"logs outcomes"| node_ttt_player
node_break_manager -->|"updates and tests"| node_break_paddle
node_break_manager -->|"moves and bounces"| node_break_ball
node_break_manager -->|"updates and collides"| node_break_brick
node_break_manager -->|"increments score"| node_break_player
node_break_brick -->|"tests collision"| node_break_ball

click node_memory_manager "https://github.com/orionshinesbright/fishon/blob/main/Game_1/Team_FishOn_MemoryGame_GameManager.cpp"
click node_memory_board "https://github.com/orionshinesbright/fishon/blob/main/Game_1/Team_FishOn_MemoryGame_GameBoard.cpp"
click node_memory_card "https://github.com/orionshinesbright/fishon/blob/main/Game_1/Team_FishOn_MemoryGame_Card.cpp"
click node_memory_player "https://github.com/orionshinesbright/fishon/blob/main/Game_1/Team_FishOn_MemoryGame_Player.cpp"
click node_memory_entry "https://github.com/orionshinesbright/fishon/blob/main/Game_1/Team_FishOn_MemoryGame_main.cpp"
click node_ttt_manager "https://github.com/orionshinesbright/fishon/blob/main/Game_2/Team_FishOn_TicTacToe_GameManager.cpp"
click node_ttt_board "https://github.com/orionshinesbright/fishon/blob/main/Game_2/Team_FishOn_TicTacToe_Board.cpp"
click node_ttt_player "https://github.com/orionshinesbright/fishon/blob/main/Game_2/Team_FishOn_TicTacToe_Player.cpp"
click node_ttt_ai "https://github.com/orionshinesbright/fishon/blob/main/Game_2/Team_FishOn_TicTacToe_AIPlayer.cpp"
click node_ttt_entry "https://github.com/orionshinesbright/fishon/blob/main/Game_2/Team_FishOn_TicTacToe_main.cpp"
click node_break_manager "https://github.com/orionshinesbright/fishon/blob/main/Game_3/GameManager.cpp"
click node_break_ball "https://github.com/orionshinesbright/fishon/blob/main/Game_3/Ball.cpp"
click node_break_brick "https://github.com/orionshinesbright/fishon/blob/main/Game_3/Brick.cpp"
click node_break_paddle "https://github.com/orionshinesbright/fishon/blob/main/Game_3/Paddle.cpp"
click node_break_player "https://github.com/orionshinesbright/fishon/blob/main/Game_3/Player.cpp"
click node_break_entry "https://github.com/orionshinesbright/fishon/blob/main/Game_3/main.cpp"

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_memory_manager,node_memory_board,node_memory_card,node_memory_player,node_memory_entry toneBlue
class node_ttt_manager,node_ttt_board,node_ttt_player,node_ttt_ai,node_ttt_entry toneAmber
class node_break_manager,node_break_ball,node_break_brick,node_break_paddle,node_break_player,node_break_entry toneMint
```

## Components

### Memory Match

- [Game manager](https://github.com/orionshinesbright/fishon/blob/main/Game_1/Team_FishOn_MemoryGame_GameManager.cpp): `Game_1/Team_FishOn_MemoryGame_GameManager.cpp`
- [Card board](https://github.com/orionshinesbright/fishon/blob/main/Game_1/Team_FishOn_MemoryGame_GameBoard.cpp): `Game_1/Team_FishOn_MemoryGame_GameBoard.cpp`
- [Match cards](https://github.com/orionshinesbright/fishon/blob/main/Game_1/Team_FishOn_MemoryGame_Card.cpp): `Game_1/Team_FishOn_MemoryGame_Card.cpp`
- [Scoring players](https://github.com/orionshinesbright/fishon/blob/main/Game_1/Team_FishOn_MemoryGame_Player.cpp): `Game_1/Team_FishOn_MemoryGame_Player.cpp`
- [Game entry](https://github.com/orionshinesbright/fishon/blob/main/Game_1/Team_FishOn_MemoryGame_main.cpp): `Game_1/Team_FishOn_MemoryGame_main.cpp`

### Tic-Tac-Toe

- [Game manager](https://github.com/orionshinesbright/fishon/blob/main/Game_2/Team_FishOn_TicTacToe_GameManager.cpp): `Game_2/Team_FishOn_TicTacToe_GameManager.cpp`
- [Grid and wins](https://github.com/orionshinesbright/fishon/blob/main/Game_2/Team_FishOn_TicTacToe_Board.cpp): `Game_2/Team_FishOn_TicTacToe_Board.cpp`
- [Player stats](https://github.com/orionshinesbright/fishon/blob/main/Game_2/Team_FishOn_TicTacToe_Player.cpp): `Game_2/Team_FishOn_TicTacToe_Player.cpp`
- [AI player](https://github.com/orionshinesbright/fishon/blob/main/Game_2/Team_FishOn_TicTacToe_AIPlayer.cpp): `Game_2/Team_FishOn_TicTacToe_AIPlayer.cpp`
- [Game entry](https://github.com/orionshinesbright/fishon/blob/main/Game_2/Team_FishOn_TicTacToe_main.cpp): `Game_2/Team_FishOn_TicTacToe_main.cpp`

### Brick Breaker

- [Game manager](https://github.com/orionshinesbright/fishon/blob/main/Game_3/GameManager.cpp): `Game_3/GameManager.cpp`
- [Ball motion](https://github.com/orionshinesbright/fishon/blob/main/Game_3/Ball.cpp): `Game_3/Ball.cpp`
- [Brick state](https://github.com/orionshinesbright/fishon/blob/main/Game_3/Brick.cpp): `Game_3/Brick.cpp`
- [Paddle control](https://github.com/orionshinesbright/fishon/blob/main/Game_3/Paddle.cpp): `Game_3/Paddle.cpp`
- [Player score](https://github.com/orionshinesbright/fishon/blob/main/Game_3/Player.cpp): `Game_3/Player.cpp`
- [Game entry](https://github.com/orionshinesbright/fishon/blob/main/Game_3/main.cpp): `Game_3/main.cpp`

## Connections

- Game manager → Card board: updates and checks (evidence: `Game_1/Team_FishOn_MemoryGame_GameManager.cpp`)
- Game manager → Scoring players: updates score (evidence: `Game_1/Team_FishOn_MemoryGame_GameManager.cpp`)
- Card board → Match cards: manages cards (evidence: `Game_1/Team_FishOn_MemoryGame_GameBoard.cpp`)
- Game manager → Grid and wins: marks and checks (evidence: `Game_2/Team_FishOn_TicTacToe_GameManager.cpp`)
- Game manager → Player stats: logs outcomes (evidence: `Game_2/Team_FishOn_TicTacToe_GameManager.cpp`)
- Game manager → Paddle control: updates and tests (evidence: `Game_3/GameManager.cpp`)
- Game manager → Ball motion: moves and bounces (evidence: `Game_3/GameManager.cpp`)
- Game manager → Brick state: updates and collides (evidence: `Game_3/GameManager.cpp`)
- Game manager → Player score: increments score (evidence: `Game_3/GameManager.cpp`)
- Brick state → Ball motion: tests collision
