https://github.com/leozqin/bingo
A framework for defining bingo cards as configuration (BaC)
https://github.com/leozqin/bingo
bingo cli games iac jinja2 pipx python python3
Last synced: about 2 months ago
JSON representation
A framework for defining bingo cards as configuration (BaC)
- Host: GitHub
- URL: https://github.com/leozqin/bingo
- Owner: leozqin
- License: mit
- Created: 2024-02-25T17:21:15.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-07-13T21:49:55.000Z (over 1 year ago)
- Last Synced: 2025-01-28T02:44:32.345Z (9 months ago)
- Topics: bingo, cli, games, iac, jinja2, pipx, python, python3
- Language: Python
- Homepage:
- Size: 5.86 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Bingo
`bingo` is a framework for using composable version-controlled human-and-machine readable configurations to dynamically generate verifiably-random stochastically-distributed rulesets for highly-personalized extended-reality weakly-scoped prize-drive metagames of heterogenous domain on commodity hardware using memory-safe, privacy-aware, standards-compliant technologies.If that's too much of a mouthful, you can also call it a bingo card generator.
One particular that is nice about it, though, is that you provide your configuration as `yml` files, so you can store them and have access to them later on. The full set of `YAML 1.1` conventions is supported.
# Configuration Schema
```yml
# The title of the card, used for generating file names
title: Road Trip Bingo
# The number of variants to produce. Each one will be independently randomized
variants: 3
# The size of the card - must be an odd number. The resulting card is x square.
size: 5
# the fixed center piece (traditionally the "free" space) of the card - will be the same for all variants
center: Wearing seatbelts
# an array containing the items that should be randomized into the variants, as below. Must be at least **2 (including center when counting)
items:
- A funny hat
- A license plate from Wyoming
- ...
```# Install
Python version 3.10 or greater is required to use `bingo`.## Recommended: Install using pipx
1. Install [pipx](https://github.com/pypa/pipx)
2. Install bingo using pipx: `pipx install git+https://github.com/leozqin/bingo.git`## Alternatively: Install using pip
1. Create a fresh virtualenv using `python -m venv .venv`
2. Activate that virtualenv: `.venv/bin/activate`
3. Install bingo using pip: `pip install git+https://github.com/leozqin/bingo.git`## Usage
Use the `bingo` CLI tool to generate bingo cards. It only takes a single argument, which is the path where the config file is stored.```bash
bingo ./path/to/config.yml
```The output is a `pdf` file created in your `pwd` that contains all of your configured variants - `Road Trip Bingo.pdf` for the example above.