# catowic/python-random-things-for-now-ig- architecture

> Architecture diagram of the GitHub repository catowic/python-random-things-for-now-ig-, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-27). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/catowic/python-random-things-for-now-ig-
- Repository: https://github.com/catowic/python-random-things-for-now-ig-

## Overview

This repository is a collection of independent, interactive command-line Python programs rather than one integrated application. Users provide inputs to individual calculators, converters, carts, games, or a countdown timer, and each script computes or runs its own result and prints it. The sampled game scripts use Python’s random module, while the timer uses time.sleep. The README specifically calls out the number-guessing game; no shared application layer or persistent storage is evident in the supplied tree and excerpts.

Main entry points: [`game/dice_program.py`](https://github.com/catowic/python-random-things-for-now-ig-/blob/main/game/dice_program.py) (Dice roll), [`game/number_guessing_game.py`](https://github.com/catowic/python-random-things-for-now-ig-/blob/main/game/number_guessing_game.py) (Number guessing), [`game/rock_paper_scissors.py`](https://github.com/catowic/python-random-things-for-now-ig-/blob/main/game/rock_paper_scissors.py) (Rock paper scissors), [`timer/countdown_timer_program.py`](https://github.com/catowic/python-random-things-for-now-ig-/blob/main/timer/countdown_timer_program.py) (Countdown timer)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_calculators["Calculators"]
  node_compound["Compound interest"]
end

subgraph group_converters["Converters"]
  node_temperature["Temperature conversion"]
  node_weight["Weight conversion"]
end

subgraph group_carts["Shopping carts"]
  node_shopping["Food shopping cart"]
  node_steam["Game shopping cart<br/>[steam_cart.py]"]
end

subgraph group_games["Games"]
  node_dice["Dice roll<br/>[dice_program.py]"]
  node_guess["Number guessing"]
  node_quiz["Question test<br/>[question_test.py]"]
  node_rps["Rock paper scissors"]
end

subgraph group_timer["Timer"]
  node_countdown["Countdown timer"]
end

node_user(("User"))
node_random["Python random"]
node_time["Python time"]

node_user -->|"enters values"| node_compound
node_compound -->|"prints interest"| node_user
node_user -->|"enters values"| node_temperature
node_temperature -->|"prints conversion"| node_user
node_user -->|"enters values"| node_weight
node_weight -->|"prints conversion"| node_user
node_user -->|"enters items"| node_shopping
node_shopping -->|"prints total"| node_user
node_user -->|"selects games"| node_steam
node_steam -->|"prints total"| node_user
node_user -->|"enters dice count"| node_dice
node_dice -->|"requests rolls"| node_random
node_dice -->|"prints dice and total"| node_user
node_user -->|"enters guesses"| node_guess
node_guess -->|"requests number"| node_random
node_guess -->|"prints clues and result"| node_user
node_user -->|"interacts"| node_quiz
node_quiz -->|"prints result"| node_user
node_user -->|"enters moves"| node_rps
node_rps -->|"chooses move"| node_random
node_rps -->|"prints score"| node_user
node_user -->|"enters duration"| node_countdown
node_countdown -->|"sleeps each second"| node_time
node_countdown -->|"prints countdown"| node_user

click node_compound "https://github.com/catowic/python-random-things-for-now-ig-/blob/main/calculators/compound_interest_calculator.py"
click node_temperature "https://github.com/catowic/python-random-things-for-now-ig-/blob/main/converters/temperature_conerter.py"
click node_weight "https://github.com/catowic/python-random-things-for-now-ig-/blob/main/converters/weight_converter.py"
click node_shopping "https://github.com/catowic/python-random-things-for-now-ig-/blob/main/cart/shopping_cart_program.py"
click node_steam "https://github.com/catowic/python-random-things-for-now-ig-/blob/main/cart/steam_cart.py"
click node_dice "https://github.com/catowic/python-random-things-for-now-ig-/blob/main/game/dice_program.py"
click node_guess "https://github.com/catowic/python-random-things-for-now-ig-/blob/main/game/number_guessing_game.py"
click node_quiz "https://github.com/catowic/python-random-things-for-now-ig-/blob/main/game/question_test.py"
click node_rps "https://github.com/catowic/python-random-things-for-now-ig-/blob/main/game/rock_paper_scissors.py"
click node_countdown "https://github.com/catowic/python-random-things-for-now-ig-/blob/main/timer/countdown_timer_program.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_compound,node_user toneBlue
class node_temperature,node_weight toneAmber
class node_shopping,node_steam toneMint
class node_dice,node_guess,node_quiz,node_rps toneRose
class node_countdown,node_random,node_time toneIndigo
```

## Components

### Calculators

- [Compound interest](https://github.com/catowic/python-random-things-for-now-ig-/blob/main/calculators/compound_interest_calculator.py): `calculators/compound_interest_calculator.py`

### Converters

- [Temperature conversion](https://github.com/catowic/python-random-things-for-now-ig-/blob/main/converters/temperature_conerter.py): `converters/temperature_conerter.py`
- [Weight conversion](https://github.com/catowic/python-random-things-for-now-ig-/blob/main/converters/weight_converter.py): `converters/weight_converter.py`

### Shopping carts

- [Food shopping cart](https://github.com/catowic/python-random-things-for-now-ig-/blob/main/cart/shopping_cart_program.py): `cart/shopping_cart_program.py`
- [Game shopping cart](https://github.com/catowic/python-random-things-for-now-ig-/blob/main/cart/steam_cart.py): `cart/steam_cart.py`

### Games

- [Dice roll](https://github.com/catowic/python-random-things-for-now-ig-/blob/main/game/dice_program.py): `game/dice_program.py`
- [Number guessing](https://github.com/catowic/python-random-things-for-now-ig-/blob/main/game/number_guessing_game.py): `game/number_guessing_game.py`
- [Question test](https://github.com/catowic/python-random-things-for-now-ig-/blob/main/game/question_test.py): `game/question_test.py`
- [Rock paper scissors](https://github.com/catowic/python-random-things-for-now-ig-/blob/main/game/rock_paper_scissors.py): `game/rock_paper_scissors.py`

### Timer

- [Countdown timer](https://github.com/catowic/python-random-things-for-now-ig-/blob/main/timer/countdown_timer_program.py): `timer/countdown_timer_program.py`

### Other components

- **User**
- **Python random**
- **Python time**

## Connections

- User → Compound interest: enters values
- Compound interest → User: prints interest
- User → Temperature conversion: enters values
- Temperature conversion → User: prints conversion
- User → Weight conversion: enters values
- Weight conversion → User: prints conversion
- User → Food shopping cart: enters items
- Food shopping cart → User: prints total
- User → Game shopping cart: selects games
- Game shopping cart → User: prints total
- User → Dice roll: enters dice count
- Dice roll → Python random: requests rolls
- Dice roll → User: prints dice and total
- User → Number guessing: enters guesses
- Number guessing → Python random: requests number
- Number guessing → User: prints clues and result
- User → Question test: interacts
- Question test → User: prints result
- User → Rock paper scissors: enters moves
- Rock paper scissors → Python random: chooses move
- Rock paper scissors → User: prints score
- User → Countdown timer: enters duration
- Countdown timer → Python time: sleeps each second
- Countdown timer → User: prints countdown
