81 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			81 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
# 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
 | 
						||
```
 | 
						||
 | 
						||
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                             |
 | 
						||
 | 
						||
## 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
 | 
						||
    ```
 | 
						||
 | 
						||
     |