from config import GRID_WIDTH, GRID_HEIGHT from DataModels.Road import Road import json, os, platform def movement(environment, x ,y): movement = { "right": (x + 1, y) if x + 1 < GRID_WIDTH and type(environment[x + 1][y]) == Road else (x, y), "left": (x - 1, y) if x - 1 >= 0 and type(environment[x - 1][y]) == Road else (x, y), "down": (x, y + 1) if y + 1 < GRID_HEIGHT and type(environment[x][y + 1]) == Road else (x, y), "up": (x, y - 1) if y - 1 >= 0 and type(environment[x][y - 1]) == Road else (x, y) } forbidden_movement = { "right": "left", "left": "right", "up": "down", "down": "up" } return (movement, forbidden_movement) def check_moves(environment, x,y,direction=None): if direction == None: return ([dir for dir in movement(environment, x, y)[0] if movement(environment, x,y)[0][dir] != (x,y)]) return ([dir for dir in movement(environment, x, y)[0] if movement(environment, x,y)[0][dir] != (x,y) and dir != movement(environment,x,y)[1][direction]]) def save_moveset(moveset): if platform.system() == 'Windows': path = '\moveset_data.json' else: path = '/moveset_data.json' output_file = os.path.normpath(os.getcwd()) + path results = {} try: f = open(output_file, 'r+') except: open(output_file, 'a').close() finally: f = open(output_file, 'r+') try: results = json.load(f) except: pass finally: if "moveset" not in results: results = { "moveset": [] } results["moveset"].append(moveset) f.seek(0) json.dump(results, f, indent=1) f.close()