stupidpythonprojects/langton/README.md
2017-05-27 12:06:47 +02:00

103 lines
3.4 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Langton's Ant Simulator
## install dependencies:
this python program needs pygame and PyOpenGL for the displaying stuff.
this can be done via pip (on ubuntu-linux pip3 for using python 3):
```
pip install PyOpenGL PyOpenGL_accelerate pygame
```
## run the program:
```
usage: Main.py [-h] [--steps STEPS] [--w W] [--h H] [--calc CALC]
[--fullscreen] [--window_w WIN_W] [--window_h WIN_H]
[--configurator] [--code CODE] [--file FILE]
[--pattern PATTERN]
langton's ant simulation tool
optional arguments:
-h, --help show this help message and exit
--steps STEPS steps per second
--w W field width
--h H field height
--calc CALC calculate steps and only display result
--fullscreen
--window_w WIN_W window width
--window_h WIN_H window height
--configurator start in field edit mode
--code CODE binary code for the ant ('10' corresponds to the starndard ant behaviour). 1 means 'turn left', 0 means 'turn right'
--file FILE writing number of living cells per step in this file
--pattern PATTERN initial pattern for the field. Possible values:
* 0: all fields inactive
* 1: all fields active
* check: checkboard pattern
* horizontal: horizontal stripes
* vertical: vertical stripes
* random: random values
```
* if no arguments are given, the program will ask the user at the runtime for the requested arguments.
## keys
| key | function |
| ---------------------- | ---------------------------------------- |
| return | enter/leave configuration mode |
| arrow keys | move langton's ant (in configuration mode) |
| space | activate field or switch field's color (in configuration mode) |
| backspace | deactivate field (in configuration mode) |
| ctrl left / ctrl right | rotate ant (in configuration mode) |
| escape | exit program |
## patterns:
| pattern name | with standard ant | with multicolor ant |
| ------------ | -------------------- | -------------------- |
| 0 | ![](doc/p0a.png) | ![](doc/p0a.png) |
| 1 | ![](doc/p1a.png) | ![](doc/p1b.png) |
| check | ![](doc/pchecka.png) | ![](doc/pcheckb.png) |
| horizontal | ![](doc/pha.png) | ![](doc/phb.png) |
| vertical | ![](doc/pva.png) | ![](doc/pvb.png) |
## examples
* run standard langton's ant and write number of living cells per timestep to 'out.txt':
```
./Main.py --file out.txt
```
* run standard langton's and with checkboard pattern:
```
./Main.py --pattern check
```
* run on a fieldsize of 16x9 and start in configuration mode to adjust the ant's position and rotation:
```
./Main.py --w 16 --h 9 --configurator
```
* run the multicolored ant 'RRLLLRLLLRRR' on a field with size 320x180 and perform 1000 steps per second:
```
./Main.py --w 320 --h 180 --code 110001000111 --steps 1000
```
* run the multicolored ant 'RRLLLRLLLRRR' on a field with size 320x180 and calculate the result after 10.000 steps
```
./Main.py --w 320 --h 180 --code 110001000111 --calc 10000
```