|
@ -11,3 +11,23 @@ cargo run |
|
|
``` |
|
|
``` |
|
|
|
|
|
|
|
|
To exit the simulation, press q, ESC or Ctrl+c. |
|
|
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 |