From 5e3688657023ec3681e8455ce75fcfebc0f03ff2 Mon Sep 17 00:00:00 2001 From: Jonas Weinz Date: Sun, 21 May 2017 11:48:09 +0200 Subject: [PATCH] chaged langton's ant README --- langton/Main.py | 14 ++++++++------ langton/README.md | 46 +++++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 51 insertions(+), 9 deletions(-) diff --git a/langton/Main.py b/langton/Main.py index df8dcb8..f6dd1c5 100755 --- a/langton/Main.py +++ b/langton/Main.py @@ -22,7 +22,7 @@ livingSpaceHeight = 36 creatureW = window_w/(livingSpaceWidth) creatureH = window_h/(livingSpaceHeight) -FPS = 60 +FPS = 30 NORTH = 0 EAST = 1 @@ -246,12 +246,14 @@ def update_ant(): activate(antPosition[0], antPosition[1]) # turn - if isAlive(antPosition[0], antPosition[1]): + code_index = 1 if isAlive(antPosition[0], antPosition[1]) else 0 + + if code[code_index]: # turn right - antRotation = (antRotation + 1) % 4 + antRotation = (antRotation + 3) % 4 else: # turn left - antRotation = (antRotation + 3) % 4 + antRotation = (antRotation + 1) % 4 else: # if we have more than 3 colors, we use the color code @@ -304,7 +306,7 @@ def main(): global code # parsing args: - parser = argparse.ArgumentParser(description="langton's ant simulation tool", formatter_class=argparse.RawTextHelpFormatter) + parser = argparse.ArgumentParser(description="langton\'s ant simulation tool", formatter_class=argparse.RawTextHelpFormatter) parser.add_argument('--steps', dest='steps', default = 20 , help='steps per second') parser.add_argument('--w', dest='w', default = livingSpaceWidth, help = 'field width') parser.add_argument('--h', dest='h', default=livingSpaceHeight, help = 'field height') @@ -313,7 +315,7 @@ def main(): parser.add_argument('--window_w', dest='win_w', default=window_w, help='window width') parser.add_argument('--window_h', dest='win_h', default=window_h, help='window height') parser.add_argument('--configurator', dest='configurator', action='store_true', help='start in field edit mode') - parser.add_argument('--code', dest='code', default='01', help='binary code for the ant (\'01\' corresponds to the starndard ant behaviour)') + parser.add_argument('--code', dest='code', default='10', help='binary code for the ant (\'10\' corresponds to the starndard ant behaviour). 1 means \'turn left\', 0 means \'turn right\'') parser.add_argument('--file', dest='file', default='', help='writing number of living cells per step in this file') parser.add_argument('--pattern', dest='pattern', default='0', help='initial pattern for the field. Possible values:\n' + diff --git a/langton/README.md b/langton/README.md index 40db0bf..24f44d2 100644 --- a/langton/README.md +++ b/langton/README.md @@ -1,9 +1,22 @@ # 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] [--pattern PATTERN] + [--configurator] [--code CODE] [--file FILE] + [--pattern PATTERN] langton's ant simulation tool @@ -17,7 +30,8 @@ optional arguments: --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 ('01' corresponds to the starndard ant behaviour) + --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 @@ -25,7 +39,6 @@ optional arguments: * horizontal: horizontal stripes * vertical: vertical stripes * random: random values - ``` keys: @@ -39,3 +52,30 @@ keys: | 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 + ``` + + ​ \ No newline at end of file