24 lines
1.0 KiB
Python
24 lines
1.0 KiB
Python
from config import GRID_WIDTH, GRID_HEIGHT
|
|
from DataModels.Road import Road
|
|
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]])
|