Make this a standalone application and add level file support
parent
9e9fb38b60
commit
e3475eefc3
56
lambdaV.py
56
lambdaV.py
|
@ -522,4 +522,58 @@ def debug_setup():
|
||||||
setup_and_run_task(empty_field, [1,1], cursor_east, "Debug mode", ["step", "left", "right", "take", "repeat", "while", "if"], ["facing north", "facing south", "facing east", "facing west", "in front of wall", "goal reached", "on apple"])
|
setup_and_run_task(empty_field, [1,1], cursor_east, "Debug mode", ["step", "left", "right", "take", "repeat", "while", "if"], ["facing north", "facing south", "facing east", "facing west", "in front of wall", "goal reached", "on apple"])
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
pass
|
import sys, os, json
|
||||||
|
|
||||||
|
level = 0
|
||||||
|
single_file_mode = False
|
||||||
|
level_file_name = ""
|
||||||
|
|
||||||
|
def wrong_usage():
|
||||||
|
print("Usage:\n " + sys.argv[0] + " [l<number> | level_file_name.json]\n\n- Run without arguments to start at level 0.\n- Run with a single argument made of 'l' and a number to start at that level.\n- Run with a file name to start that specific level.")
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
if len(sys.argv)>1:
|
||||||
|
if len(sys.argv)>2:
|
||||||
|
wrong_usage()
|
||||||
|
if sys.argv[1][0]=="l":
|
||||||
|
try:
|
||||||
|
level=int(sys.argv[1][1:])
|
||||||
|
except:
|
||||||
|
if os.path.isfile(sys.argv[1]):
|
||||||
|
level_file_name = sys.argv[1]
|
||||||
|
single_file_mode = True
|
||||||
|
else:
|
||||||
|
wrong_usage()
|
||||||
|
elif os.path.isfile(sys.argv[1]):
|
||||||
|
level_file_name = sys.argv[1]
|
||||||
|
single_file_mode = True
|
||||||
|
else:
|
||||||
|
wrong_usage()
|
||||||
|
|
||||||
|
if not single_file_mode:
|
||||||
|
level_file_name = os.path.join("levels", str(level)+".json")
|
||||||
|
|
||||||
|
while os.path.isfile(level_file_name):
|
||||||
|
level_file = open(level_file_name, "r")
|
||||||
|
level_raw = level_file.read()
|
||||||
|
level_file.close()
|
||||||
|
level_data = json.loads(level_raw)
|
||||||
|
|
||||||
|
cursor_start = ""
|
||||||
|
if level_data["start heading"]=="north":
|
||||||
|
cursor_start = cursor_north
|
||||||
|
elif level_data["start heading"]=="south":
|
||||||
|
cursor_start = cursor_south
|
||||||
|
elif level_data["start heading"]=="east":
|
||||||
|
cursor_start = cursor_east
|
||||||
|
elif level_data["start heading"]=="west":
|
||||||
|
cursor_start = cursor_west
|
||||||
|
else:
|
||||||
|
print("Unknown start heading!")
|
||||||
|
sys.exit(1)
|
||||||
|
setup_and_run_task(level_data["field"], level_data["start position"], cursor_start, level_data["text"], level_data["allowed commands"], level_data["allowed conditions"])
|
||||||
|
|
||||||
|
if single_file_mode:
|
||||||
|
break
|
||||||
|
level+=1
|
||||||
|
level_file_name = os.path.join("levels", str(level)+".json")
|
||||||
|
|
Loading…
Reference in New Issue