Browse Source

Cool stuff

master
e-dt 3 years ago
parent
commit
fddc48d6f3
  1. 43
      main.py

43
main.py

@ -10,10 +10,12 @@ class GridSquare:
self.typ = typ
self.occupant = occupant
def __str__(self):
return "(%s|%s)" % (str(typ), str(occupant))
return "(%s|%s)" % (str(self.typ), str(self.occupant))
def __repr__(self):
return str(self)
def makeGrid(height, width):
return [[GridSquare(SquareType.AISLE, 0) for x in range(0,width)] for y in range(0,height)]
return [[GridSquare(SquareType.AISLE, None) for x in range(0,width)] for y in range(0,height)]
grid=makeGrid(7,33)
@ -27,19 +29,48 @@ def manhattanDistance(pos1, pos2):
return abs(pos1[0] - pos2[0]) + abs(pos1[1] - pos2[1])
def mooreNeighbourhood(pos):
return [(pos[0], pos[1]+1), (pos[0]+1, pos[1]), (pos[0]-1, pos[1]), (pos[0], pos[1]-1)]
def nextSquare(passenger, grid):
#simple behaviour for now
for i in
candidati = []
for i in mooreNeighbourhood(passenger.curr):
if manhattanDistance(passenger.dest, i) < manhattanDistance(passenger.dest, passenger.curr):
candidati.append(i)
for i in candidati:
if grid[i[0]][i[1]].typ == SquareType.AISLE: #this should work well enough for one aisle plane
return i
#todo: implement shufflin'
return candidati[0]
def GenPassList():
return []
passengers = GenPassList()
for index, i in enumerate(passengers):
grid[i.curr[0]][i.curr[1]] = index
def tick():
# print grid
print(grid)
for row in grid:
for guy in row:
if guy.occupant is not None:
print("X", end="")
elif guy.typ == SquareType.SEAT:
print("_", end="")
else:
print(" ", end="")
print()
for (i, man) in enumerate(passengers):
#im sexist
cp = man.curr
man.curr = nextSquare(man, grid)
grid[cp[0]][cp[1]] = None #they move out of there
grid[man.curr[0]][man.curr[1]] = i
def run():
while 1:
tick()
run()

Loading…
Cancel
Save