# drmendel/oe-alga-feladatok architecture

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

- Interactive diagram: https://gitdiagram.com/drmendel/oe-alga-feladatok
- Repository: https://github.com/drmendel/oe-alga-feladatok

## Overview

This repository combines ALGA, a Hungarian-language algorithms and data-structures teaching library, with ALGAme, a console maze-game application. The game workflow starts in ALGAme’s entry point, constructs a game and map, registers the map as a view, then runs the engine’s clock and input loop. The library separately provides implementations of data structures, optimization methods, and programming-paradigm examples; no README was supplied to document further capabilities. Relationships are limited to those visible in excerpts or the source index; unsampled modules are included without inferred call links.

Main entry points: [`ALGAme/Jatek.cs`](https://github.com/drmendel/oe-alga-feladatok/blob/main/ALGAme/Jatek.cs) (Game setup), [`Engine/Backend.cs`](https://github.com/drmendel/oe-alga-feladatok/blob/main/Engine/Backend.cs) (Engine backend), [`ALGAme/Program.cs`](https://github.com/drmendel/oe-alga-feladatok/blob/main/ALGAme/Program.cs) (Game entry), [`Engine/OrajelGenerator.cs`](https://github.com/drmendel/oe-alga-feladatok/blob/main/Engine/OrajelGenerator.cs) (Clock generator)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_game["Maze game"]
  node_game_entry["Game entry<br/>[Program.cs]"]
  node_game["Game setup<br/>[Jatek.cs]"]
end

subgraph group_engine["Game engine"]
  node_map["Maze map<br/>[Terkep.cs]"]
  node_backend["Engine backend<br/>[Backend.cs]"]
  node_clock["Clock generator<br/>[OrajelGenerator.cs]"]
  node_keyboard["Keyboard input"]
  node_display["Console display"]
end

subgraph group_structures["Data structures"]
  node_array_structures["Array structures"]
  node_linked_structures["Linked structures"]
  node_search_tree["Search tree"]
  node_dictionary["Dictionary<br/>[06_Szotar.cs]"]
  node_unweighted_graph["Unweighted graph"]
  node_heap["Heap and queue<br/>[11_Kupac.cs]"]
  node_weighted_graph["Weighted graph algorithms"]
  node_adt["Data structure interfaces<br/>[ADT.cs]"]
end

subgraph group_optimization["Optimization"]
  node_brute_force["Brute force<br/>[07_NyersEro.cs]"]
  node_dynamic_programming["Dynamic programming"]
  node_backtracking["Backtracking search"]
end

subgraph group_paradigms["Programming paradigms"]
  node_imperative["Imperative paradigm"]
  node_functional["Functional paradigm"]
end

node_player(("Game launcher"))

node_player -->|"launches"| node_game_entry
node_game_entry -->|"starts"| node_game
node_game -->|"creates"| node_backend
node_game -->|"creates"| node_map
node_game -->|"generates maze"| node_map
node_game -->|"registers view"| node_backend
node_game -->|"starts engine"| node_backend
node_backend -->|"registers receivers"| node_clock
node_backend -->|"registers receiver"| node_keyboard
node_backend -->|"registers receiver"| node_display
node_clock -->|"dispatches ticks"| node_keyboard

click node_game_entry "https://github.com/drmendel/oe-alga-feladatok/blob/main/ALGAme/Program.cs"
click node_game "https://github.com/drmendel/oe-alga-feladatok/blob/main/ALGAme/Jatek.cs"
click node_map "https://github.com/drmendel/oe-alga-feladatok/blob/main/Engine/Terkep.cs"
click node_backend "https://github.com/drmendel/oe-alga-feladatok/blob/main/Engine/Backend.cs"
click node_clock "https://github.com/drmendel/oe-alga-feladatok/blob/main/Engine/OrajelGenerator.cs"
click node_keyboard "https://github.com/drmendel/oe-alga-feladatok/blob/main/Engine/BillentyuzetKezelo.cs"
click node_display "https://github.com/drmendel/oe-alga-feladatok/blob/main/Engine/KonzolMegjelenito.cs"
click node_array_structures "https://github.com/drmendel/oe-alga-feladatok/blob/main/ALGA/Adatszerkezetek/03_TombImplementacio.cs"
click node_linked_structures "https://github.com/drmendel/oe-alga-feladatok/blob/main/ALGA/Adatszerkezetek/04_LancoltImplementacio.cs"
click node_search_tree "https://github.com/drmendel/oe-alga-feladatok/blob/main/ALGA/Adatszerkezetek/05_BinarisKeresoFa.cs"
click node_dictionary "https://github.com/drmendel/oe-alga-feladatok/blob/main/ALGA/Adatszerkezetek/06_Szotar.cs"
click node_unweighted_graph "https://github.com/drmendel/oe-alga-feladatok/blob/main/ALGA/Adatszerkezetek/10_SulyozatlanGraf.cs"
click node_heap "https://github.com/drmendel/oe-alga-feladatok/blob/main/ALGA/Adatszerkezetek/11_Kupac.cs"
click node_weighted_graph "https://github.com/drmendel/oe-alga-feladatok/blob/main/ALGA/Adatszerkezetek/12_SulyozottGraf.cs"
click node_adt "https://github.com/drmendel/oe-alga-feladatok/blob/main/ALGA/ADT.cs"
click node_brute_force "https://github.com/drmendel/oe-alga-feladatok/blob/main/ALGA/Optimalizalas/07_NyersEro.cs"
click node_dynamic_programming "https://github.com/drmendel/oe-alga-feladatok/blob/main/ALGA/Optimalizalas/08_DinamikusProgramozas.cs"
click node_backtracking "https://github.com/drmendel/oe-alga-feladatok/blob/main/ALGA/Optimalizalas/09_VisszalepesesKereses.cs"
click node_imperative "https://github.com/drmendel/oe-alga-feladatok/blob/main/ALGA/Paradigmak/01_ImperativParadigma.cs"
click node_functional "https://github.com/drmendel/oe-alga-feladatok/blob/main/ALGA/Paradigmak/02_FunkcionalisParadigma.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_game_entry,node_game toneBlue
class node_map,node_backend,node_clock,node_keyboard,node_display toneAmber
class node_array_structures,node_linked_structures,node_search_tree,node_dictionary,node_unweighted_graph,node_heap,node_weighted_graph,node_adt toneMint
class node_brute_force,node_dynamic_programming,node_backtracking toneRose
class node_imperative,node_functional,node_player toneIndigo
```

## Components

### Maze game

- [Game entry](https://github.com/drmendel/oe-alga-feladatok/blob/main/ALGAme/Program.cs): `ALGAme/Program.cs`
- [Game setup](https://github.com/drmendel/oe-alga-feladatok/blob/main/ALGAme/Jatek.cs): `ALGAme/Jatek.cs`

### Game engine

- [Maze map](https://github.com/drmendel/oe-alga-feladatok/blob/main/Engine/Terkep.cs): `Engine/Terkep.cs`
- [Engine backend](https://github.com/drmendel/oe-alga-feladatok/blob/main/Engine/Backend.cs): `Engine/Backend.cs`
- [Clock generator](https://github.com/drmendel/oe-alga-feladatok/blob/main/Engine/OrajelGenerator.cs): `Engine/OrajelGenerator.cs`
- [Keyboard input](https://github.com/drmendel/oe-alga-feladatok/blob/main/Engine/BillentyuzetKezelo.cs): `Engine/BillentyuzetKezelo.cs`
- [Console display](https://github.com/drmendel/oe-alga-feladatok/blob/main/Engine/KonzolMegjelenito.cs): `Engine/KonzolMegjelenito.cs`

### Data structures

- [Array structures](https://github.com/drmendel/oe-alga-feladatok/blob/main/ALGA/Adatszerkezetek/03_TombImplementacio.cs): `ALGA/Adatszerkezetek/03_TombImplementacio.cs`
- [Linked structures](https://github.com/drmendel/oe-alga-feladatok/blob/main/ALGA/Adatszerkezetek/04_LancoltImplementacio.cs): `ALGA/Adatszerkezetek/04_LancoltImplementacio.cs`
- [Search tree](https://github.com/drmendel/oe-alga-feladatok/blob/main/ALGA/Adatszerkezetek/05_BinarisKeresoFa.cs): `ALGA/Adatszerkezetek/05_BinarisKeresoFa.cs`
- [Dictionary](https://github.com/drmendel/oe-alga-feladatok/blob/main/ALGA/Adatszerkezetek/06_Szotar.cs): `ALGA/Adatszerkezetek/06_Szotar.cs`
- [Unweighted graph](https://github.com/drmendel/oe-alga-feladatok/blob/main/ALGA/Adatszerkezetek/10_SulyozatlanGraf.cs): `ALGA/Adatszerkezetek/10_SulyozatlanGraf.cs`
- [Heap and queue](https://github.com/drmendel/oe-alga-feladatok/blob/main/ALGA/Adatszerkezetek/11_Kupac.cs): `ALGA/Adatszerkezetek/11_Kupac.cs`
- [Weighted graph algorithms](https://github.com/drmendel/oe-alga-feladatok/blob/main/ALGA/Adatszerkezetek/12_SulyozottGraf.cs): `ALGA/Adatszerkezetek/12_SulyozottGraf.cs`
- [Data structure interfaces](https://github.com/drmendel/oe-alga-feladatok/blob/main/ALGA/ADT.cs): `ALGA/ADT.cs`

### Optimization

- [Brute force](https://github.com/drmendel/oe-alga-feladatok/blob/main/ALGA/Optimalizalas/07_NyersEro.cs): `ALGA/Optimalizalas/07_NyersEro.cs`
- [Dynamic programming](https://github.com/drmendel/oe-alga-feladatok/blob/main/ALGA/Optimalizalas/08_DinamikusProgramozas.cs): `ALGA/Optimalizalas/08_DinamikusProgramozas.cs`
- [Backtracking search](https://github.com/drmendel/oe-alga-feladatok/blob/main/ALGA/Optimalizalas/09_VisszalepesesKereses.cs): `ALGA/Optimalizalas/09_VisszalepesesKereses.cs`

### Programming paradigms

- [Imperative paradigm](https://github.com/drmendel/oe-alga-feladatok/blob/main/ALGA/Paradigmak/01_ImperativParadigma.cs): `ALGA/Paradigmak/01_ImperativParadigma.cs`
- [Functional paradigm](https://github.com/drmendel/oe-alga-feladatok/blob/main/ALGA/Paradigmak/02_FunkcionalisParadigma.cs): `ALGA/Paradigmak/02_FunkcionalisParadigma.cs`

### Other components

- **Game launcher**

## Connections

- Game launcher → Game entry: launches
- Game entry → Game setup: starts (evidence: `ALGAme/Program.cs`)
- Game setup → Engine backend: creates (evidence: `ALGAme/Jatek.cs`)
- Game setup → Maze map: creates (evidence: `ALGAme/Jatek.cs`)
- Game setup → Maze map: generates maze (evidence: `ALGAme/Jatek.cs`)
- Game setup → Engine backend: registers view (evidence: `ALGAme/Jatek.cs`)
- Game setup → Engine backend: starts engine (evidence: `ALGAme/Jatek.cs`)
- Engine backend → Clock generator: registers receivers (evidence: `Engine/Backend.cs`)
- Engine backend → Keyboard input: registers receiver (evidence: `Engine/Backend.cs`)
- Engine backend → Console display: registers receiver (evidence: `Engine/Backend.cs`)
- Clock generator → Keyboard input: dispatches ticks (evidence: `Engine/OrajelGenerator.cs`)
