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"])
|
||||
|
||||
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