# jjmoreira-projects/basic-computer-games architecture

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

- Interactive diagram: https://gitdiagram.com/jjmoreira-projects/basic-computer-games
- Repository: https://github.com/jjmoreira-projects/basic-computer-games

## Overview

This repository is an anthology of console games and programming exercises from BASIC Computer Games, with independent implementations organized by game and language—not one application with a shared runtime. The usual user journey is to run a game, respond to its prompts, and see the game’s result. The tree shows a wide range of games; the graph highlights selected implementations, while source-backed links show interaction patterns only where excerpts support them. Other game internals and wiring are not inferred.

Main entry points: [`84_Super_Star_Trek/csharp/Systems/WarpEngines.cs`](https://github.com/jjmoreira-projects/basic-computer-games/blob/main/84_Super_Star_Trek/csharp/Systems/WarpEngines.cs) (Warp Engines), [`83_Stock_Market/csharp/src/Controller.cs`](https://github.com/jjmoreira-projects/basic-computer-games/blob/main/83_Stock_Market/csharp/src/Controller.cs) (Market Controller), [`43_Hammurabi/csharp/src/Controller.cs`](https://github.com/jjmoreira-projects/basic-computer-games/blob/main/43_Hammurabi/csharp/src/Controller.cs) (Hammurabi Controller), [`17_Bullfight/csharp/src/Controller.cs`](https://github.com/jjmoreira-projects/basic-computer-games/blob/main/17_Bullfight/csharp/src/Controller.cs) (Bullfight Controller)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_simulations["Simulations"]
  node_trek_warp["Warp Engines<br/>[WarpEngines.cs]"]
  node_trek_input["Input<br/>[Input.cs]"]
  node_trek_output["Output<br/>[Output.cs]"]
  node_trek_enterprise["Enterprise<br/>[Enterprise.cs]"]
  node_trek_quadrant["Quadrant<br/>[Quadrant.cs]"]
  node_golf["Golf<br/>[Program.cs]"]
  node_gunner["Gunner<br/>[Program.cs]"]
  node_bullfight_controller["Bullfight Controller<br/>[Controller.cs]"]
  node_bullfight_view["Bullfight View<br/>[View.cs]"]
end

subgraph group_word_games["Word Games"]
  node_word_game["Word Game<br/>[Program.cs]"]
  node_hangman["Hangman<br/>[Program.cs]"]
  node_mastermind_controller["Mastermind Controller<br/>[Controller.cs]"]
  node_mastermind_view["Mastermind View<br/>[View.cs]"]
end

subgraph group_strategy["Strategy Games"]
  node_stock_controller["Market Controller<br/>[Controller.cs]"]
  node_stock_broker["Broker<br/>[Broker.cs]"]
  node_stock_view["Market View<br/>[View.cs]"]
  node_combat_controller["Combat Controller<br/>[Controller.cs]"]
  node_combat_view["Combat View<br/>[View.cs]"]
  node_depth_controller["Depth Charge Controller<br/>[Controller.cs]"]
  node_depth_view["Depth Charge View<br/>[View.cs]"]
  node_hammurabi_controller["Hammurabi Controller<br/>[Controller.cs]"]
  node_hammurabi_rules["Hammurabi Rules<br/>[Rules.cs]"]
  node_hammurabi_view["Hammurabi View<br/>[View.cs]"]
end

subgraph group_anthology["Game Anthology"]
  node_game_collection["Independent Games"]
end

node_player(("Player"))

node_trek_warp -->|"reads course"| node_trek_input
node_trek_warp -->|"writes messages"| node_trek_output
node_trek_warp -->|"moves enemies"| node_trek_quadrant
node_trek_warp -->|"moves ship"| node_trek_enterprise
node_bullfight_controller -->|"prompts and displays"| node_bullfight_view
node_stock_controller -->|"prompts and displays"| node_stock_view
node_stock_controller -->|"applies trades"| node_stock_broker
node_combat_controller -->|"prompts and displays"| node_combat_view
node_depth_controller -->|"prompts and displays"| node_depth_view
node_hammurabi_controller -->|"applies rule"| node_hammurabi_rules
node_hammurabi_controller -->|"shows feedback"| node_hammurabi_view

click node_trek_warp "https://github.com/jjmoreira-projects/basic-computer-games/blob/main/84_Super_Star_Trek/csharp/Systems/WarpEngines.cs"
click node_trek_input "https://github.com/jjmoreira-projects/basic-computer-games/blob/main/84_Super_Star_Trek/csharp/Input.cs"
click node_trek_output "https://github.com/jjmoreira-projects/basic-computer-games/blob/main/84_Super_Star_Trek/csharp/Output.cs"
click node_trek_enterprise "https://github.com/jjmoreira-projects/basic-computer-games/blob/main/84_Super_Star_Trek/csharp/Objects/Enterprise.cs"
click node_trek_quadrant "https://github.com/jjmoreira-projects/basic-computer-games/blob/main/84_Super_Star_Trek/csharp/Space/Quadrant.cs"
click node_golf "https://github.com/jjmoreira-projects/basic-computer-games/blob/main/39_Golf/csharp/Program.cs"
click node_gunner "https://github.com/jjmoreira-projects/basic-computer-games/blob/main/42_Gunner/csharp/Program.cs"
click node_bullfight_controller "https://github.com/jjmoreira-projects/basic-computer-games/blob/main/17_Bullfight/csharp/src/Controller.cs"
click node_bullfight_view "https://github.com/jjmoreira-projects/basic-computer-games/blob/main/17_Bullfight/csharp/src/View.cs"
click node_word_game "https://github.com/jjmoreira-projects/basic-computer-games/blob/main/96_Word/csharp/Program.cs"
click node_hangman "https://github.com/jjmoreira-projects/basic-computer-games/blob/main/44_Hangman/csharp/Hangman/Program.cs"
click node_mastermind_controller "https://github.com/jjmoreira-projects/basic-computer-games/blob/main/60_Mastermind/csharp/Game/src/Controller.cs"
click node_mastermind_view "https://github.com/jjmoreira-projects/basic-computer-games/blob/main/60_Mastermind/csharp/Game/src/View.cs"
click node_stock_controller "https://github.com/jjmoreira-projects/basic-computer-games/blob/main/83_Stock_Market/csharp/src/Controller.cs"
click node_stock_broker "https://github.com/jjmoreira-projects/basic-computer-games/blob/main/83_Stock_Market/csharp/src/Broker.cs"
click node_stock_view "https://github.com/jjmoreira-projects/basic-computer-games/blob/main/83_Stock_Market/csharp/src/View.cs"
click node_combat_controller "https://github.com/jjmoreira-projects/basic-computer-games/blob/main/28_Combat/csharp/src/Controller.cs"
click node_combat_view "https://github.com/jjmoreira-projects/basic-computer-games/blob/main/28_Combat/csharp/src/View.cs"
click node_depth_controller "https://github.com/jjmoreira-projects/basic-computer-games/blob/main/31_Depth_Charge/csharp/src/Controller.cs"
click node_depth_view "https://github.com/jjmoreira-projects/basic-computer-games/blob/main/31_Depth_Charge/csharp/src/View.cs"
click node_hammurabi_controller "https://github.com/jjmoreira-projects/basic-computer-games/blob/main/43_Hammurabi/csharp/src/Controller.cs"
click node_hammurabi_rules "https://github.com/jjmoreira-projects/basic-computer-games/blob/main/43_Hammurabi/csharp/src/Rules.cs"
click node_hammurabi_view "https://github.com/jjmoreira-projects/basic-computer-games/blob/main/43_Hammurabi/csharp/src/View.cs"

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_trek_warp,node_trek_input,node_trek_output,node_trek_enterprise,node_trek_quadrant,node_golf,node_gunner,node_bullfight_controller,node_bullfight_view toneBlue
class node_word_game,node_hangman,node_mastermind_controller,node_mastermind_view toneAmber
class node_stock_controller,node_stock_broker,node_stock_view,node_combat_controller,node_combat_view,node_depth_controller,node_depth_view,node_hammurabi_controller,node_hammurabi_rules,node_hammurabi_view toneMint
class node_game_collection toneRose
class node_player toneIndigo
```

## Components

### Simulations

- [Warp Engines](https://github.com/jjmoreira-projects/basic-computer-games/blob/main/84_Super_Star_Trek/csharp/Systems/WarpEngines.cs): `84_Super_Star_Trek/csharp/Systems/WarpEngines.cs`
- [Input](https://github.com/jjmoreira-projects/basic-computer-games/blob/main/84_Super_Star_Trek/csharp/Input.cs): `84_Super_Star_Trek/csharp/Input.cs`
- [Output](https://github.com/jjmoreira-projects/basic-computer-games/blob/main/84_Super_Star_Trek/csharp/Output.cs): `84_Super_Star_Trek/csharp/Output.cs`
- [Enterprise](https://github.com/jjmoreira-projects/basic-computer-games/blob/main/84_Super_Star_Trek/csharp/Objects/Enterprise.cs): `84_Super_Star_Trek/csharp/Objects/Enterprise.cs`
- [Quadrant](https://github.com/jjmoreira-projects/basic-computer-games/blob/main/84_Super_Star_Trek/csharp/Space/Quadrant.cs): `84_Super_Star_Trek/csharp/Space/Quadrant.cs`
- [Golf](https://github.com/jjmoreira-projects/basic-computer-games/blob/main/39_Golf/csharp/Program.cs): `39_Golf/csharp/Program.cs`
- [Gunner](https://github.com/jjmoreira-projects/basic-computer-games/blob/main/42_Gunner/csharp/Program.cs): `42_Gunner/csharp/Program.cs`
- [Bullfight Controller](https://github.com/jjmoreira-projects/basic-computer-games/blob/main/17_Bullfight/csharp/src/Controller.cs): `17_Bullfight/csharp/src/Controller.cs`
- [Bullfight View](https://github.com/jjmoreira-projects/basic-computer-games/blob/main/17_Bullfight/csharp/src/View.cs): `17_Bullfight/csharp/src/View.cs`

### Word Games

- [Word Game](https://github.com/jjmoreira-projects/basic-computer-games/blob/main/96_Word/csharp/Program.cs): `96_Word/csharp/Program.cs`
- [Hangman](https://github.com/jjmoreira-projects/basic-computer-games/blob/main/44_Hangman/csharp/Hangman/Program.cs): `44_Hangman/csharp/Hangman/Program.cs`
- [Mastermind Controller](https://github.com/jjmoreira-projects/basic-computer-games/blob/main/60_Mastermind/csharp/Game/src/Controller.cs): `60_Mastermind/csharp/Game/src/Controller.cs`
- [Mastermind View](https://github.com/jjmoreira-projects/basic-computer-games/blob/main/60_Mastermind/csharp/Game/src/View.cs): `60_Mastermind/csharp/Game/src/View.cs`

### Strategy Games

- [Market Controller](https://github.com/jjmoreira-projects/basic-computer-games/blob/main/83_Stock_Market/csharp/src/Controller.cs): `83_Stock_Market/csharp/src/Controller.cs`
- [Broker](https://github.com/jjmoreira-projects/basic-computer-games/blob/main/83_Stock_Market/csharp/src/Broker.cs): `83_Stock_Market/csharp/src/Broker.cs`
- [Market View](https://github.com/jjmoreira-projects/basic-computer-games/blob/main/83_Stock_Market/csharp/src/View.cs): `83_Stock_Market/csharp/src/View.cs`
- [Combat Controller](https://github.com/jjmoreira-projects/basic-computer-games/blob/main/28_Combat/csharp/src/Controller.cs): `28_Combat/csharp/src/Controller.cs`
- [Combat View](https://github.com/jjmoreira-projects/basic-computer-games/blob/main/28_Combat/csharp/src/View.cs): `28_Combat/csharp/src/View.cs`
- [Depth Charge Controller](https://github.com/jjmoreira-projects/basic-computer-games/blob/main/31_Depth_Charge/csharp/src/Controller.cs): `31_Depth_Charge/csharp/src/Controller.cs`
- [Depth Charge View](https://github.com/jjmoreira-projects/basic-computer-games/blob/main/31_Depth_Charge/csharp/src/View.cs): `31_Depth_Charge/csharp/src/View.cs`
- [Hammurabi Controller](https://github.com/jjmoreira-projects/basic-computer-games/blob/main/43_Hammurabi/csharp/src/Controller.cs): `43_Hammurabi/csharp/src/Controller.cs`
- [Hammurabi Rules](https://github.com/jjmoreira-projects/basic-computer-games/blob/main/43_Hammurabi/csharp/src/Rules.cs): `43_Hammurabi/csharp/src/Rules.cs`
- [Hammurabi View](https://github.com/jjmoreira-projects/basic-computer-games/blob/main/43_Hammurabi/csharp/src/View.cs): `43_Hammurabi/csharp/src/View.cs`

### Game Anthology

- **Independent Games**

### Other components

- **Player**

## Connections

- Warp Engines → Input: reads course
- Warp Engines → Output: writes messages
- Warp Engines → Quadrant: moves enemies
- Warp Engines → Enterprise: moves ship
- Bullfight Controller → Bullfight View: prompts and displays
- Market Controller → Market View: prompts and displays
- Market Controller → Broker: applies trades
- Combat Controller → Combat View: prompts and displays
- Depth Charge Controller → Depth Charge View: prompts and displays
- Hammurabi Controller → Hammurabi Rules: applies rule
- Hammurabi Controller → Hammurabi View: shows feedback
