2024-07-20 11:24:24 +00:00
# Cromulant
2024-07-22 07:26:29 +00:00
[Click here for screenshots ](screenshots.md )
2024-07-22 07:25:06 +00:00
2024-07-20 11:24:24 +00:00
## What is this?
2024-07-20 11:16:02 +00:00
This is a kind of toy you can use for your amusement.
2024-07-21 12:01:20 +00:00
You start with random ants from a list of 1000 names.
2024-07-20 11:16:02 +00:00
2024-07-21 07:18:23 +00:00
The ants will produce random updates.
2024-07-20 11:16:02 +00:00
The updates can be random non-sensical sentences.
The ants can score triumphs or take hits.
You can adjust the speed of the updates.
## Game Loop
2024-07-21 13:00:05 +00:00
You start a new game with 25 to 250 ants.
2024-07-21 07:25:48 +00:00
2024-07-21 12:01:20 +00:00
You get to read funny updates from the ants.
2024-07-20 11:16:02 +00:00
You watch who gets the most triumphs or the most hits.
The ant with the highest score is shown in the footer.
2024-07-21 07:18:23 +00:00
Ants get merged and replaced over time.
2024-07-21 06:27:44 +00:00
2024-07-21 10:21:01 +00:00
All of this happens automatically.
2024-07-21 13:44:00 +00:00
You can manually trigger terminations or merges by
clicking or middle clicking the images on the left.
2024-07-20 15:31:01 +00:00
## Installation
2024-07-28 09:41:47 +00:00
### Quick Installation
If you have `pipx` and `linux` installed you can use the following command:
2024-07-20 15:31:01 +00:00
```sh
pipx install git+https://github.com/madprops/cromulant --force
```
2024-07-28 09:41:47 +00:00
### Advanced Installation
1) Clone this repo.
2) python -m venv venv
3) venv/bin/pip install -r requirements.txt
4) Use `run.sh` or `venv/bin/python -m cromulant.main`
5) (Optional) Manually create desktop entries and icons for the application.
2024-07-20 11:16:02 +00:00
## Algorithm
2024-07-20 12:55:15 +00:00
A random ant is picked based on weights (oldest update date weighs more).
2024-07-21 07:21:20 +00:00
Then a random number between 0 and 12 is picked.
2024-07-20 11:22:21 +00:00
For each number an action happens to produce an update.
2024-07-20 15:26:40 +00:00
The top score is calculated as (Triumph - Hits).
2024-07-22 04:05:17 +00:00
If multiple ants have the same score, the oldest one wins.
2024-07-20 15:26:40 +00:00
2024-07-21 06:55:37 +00:00
For merge, the words of each name are used.
They get filled with random words if less than 2 words.
One word from each set is picked randomly.
The triumph and hits get combined.
The original ants get terminated and the merged one hatches.
2024-07-21 07:28:06 +00:00
An extra random ant is hatched to fill the gap.
2024-07-21 06:55:37 +00:00
2024-07-20 11:26:29 +00:00
## Technology
This is made with python + qt (pyside6)
2024-07-20 11:47:50 +00:00
## The name
2024-07-27 05:41:31 +00:00
I read the word [cromulent ](https://www.merriam-webster.com/wordplay/what-does-cromulent-mean ) being used somewhere which turned out to be invented by The Simpsons.
2024-07-20 11:47:50 +00:00
2024-07-20 11:50:53 +00:00
I created a new programming project to practice/study and tried to use that word for the name but made a typo.
2024-07-20 11:47:50 +00:00
2024-07-20 11:50:53 +00:00
I liked the typo and made a game about ants.
2024-07-20 11:47:50 +00:00
2024-07-22 07:29:03 +00:00
---
2024-07-20 11:22:21 +00:00
2024-07-27 03:57:19 +00:00
[Command line arguments ](arguments.md )
2024-07-22 07:29:03 +00:00
[Click here for more ](more.md )