A simple actor-based simulation of tag, implemented in rust.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Adrian Heine 449644ade6 Don't remove previous agent position 10 months ago
benches Put different configurations together in benchmark 10 months ago
src Don't remove previous agent position 10 months ago
.gitignore Init 10 months ago
Cargo.toml Add benchmark 10 months ago
README.md Update readme 10 months ago
rustfmt.toml Init 10 months ago

README.md

gntag

gntag (from German »Guten Tag«: »good day«, roughly equivalent to »g'day«) is an actor-based simulation of tag implemented in rust.

Running

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:

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