33 lines
970 B
Markdown
33 lines
970 B
Markdown
# gntag
|
|
|
|
gntag (from German »Guten Tag«: »good day«, roughly equivalent to »g'day«) is an actor-based simulation of [tag](https://en.wikipedia.org/wiki/Tag_(game)) implemented in rust.
|
|
|
|
## Running
|
|
|
|
```sh
|
|
git clone https://git.adrianheine.de/adrian/gntag.git
|
|
cd gntag
|
|
cargo run
|
|
```
|
|
|
|
To exit the simulation, press q, ESC or Ctrl+c.
|
|
|
|
## Tests
|
|
|
|
A few tests can be run with:
|
|
|
|
```sh
|
|
cargo test
|
|
```
|
|
|
|
## Benchmarks
|
|
|
|
`cargo bench` runs benchmarks. Their results are available under `target/criterion/report/index.html`.
|
|
|
|
## Simulation
|
|
|
|
* The world is a simple two-dimensional rectangle with integer positions
|
|
* Agents can occupy the same space
|
|
* Agents can make one move per simulation step, either by trying to move by at most one unit in both directions or by trying to tag another actor
|
|
* Agents need to be at most one unit away in both directions from others in order to tag them
|
|
* Agents act at the same time and their actions are validated against the previous state
|