|
|
@ -9,6 +9,7 @@ import math |
|
|
|
from queue import PriorityQueue as pq |
|
|
|
|
|
|
|
DEBUG=True |
|
|
|
# DEBUG=False |
|
|
|
|
|
|
|
class SquareType(Enum): |
|
|
|
AISLE = 0 |
|
|
@ -62,7 +63,6 @@ def nextSquare(passenger, grid): |
|
|
|
|
|
|
|
if passenger.inter == None: |
|
|
|
dest = passenger.dest |
|
|
|
print("dest") |
|
|
|
else: |
|
|
|
dest = passenger.inter |
|
|
|
|
|
|
@ -75,8 +75,9 @@ def nextSquare(passenger, grid): |
|
|
|
|
|
|
|
mn = mooreNeighbourhood(passenger.curr) |
|
|
|
for (i, man) in enumerate(mn): |
|
|
|
q.put((1, man, i)) |
|
|
|
dist[man[0]][man[1]] = 1 |
|
|
|
if (grid[passenger.curr[0]][passenger.curr[1]].typ != SquareType.SEAT or man[1] == passenger.curr[1]) and grid[man[0]][man[1]].typ != SquareType.WALL: |
|
|
|
q.put((1, man, i)) |
|
|
|
dist[man[0]][man[1]] = 1 |
|
|
|
|
|
|
|
while not q.empty(): |
|
|
|
u = q.get() |
|
|
@ -84,7 +85,7 @@ def nextSquare(passenger, grid): |
|
|
|
return mn[u[2]] |
|
|
|
for x in mooreNeighbourhood(u[1]): |
|
|
|
alt = 0 |
|
|
|
if grid[x[0]][x[1]].typ == SquareType.SEAT: |
|
|
|
if grid[x[0]][x[1]].typ == SquareType.SEAT or grid[u[1][0]][u[1][1]].typ == SquareType.SEAT: |
|
|
|
alt = dist[u[1][0]][u[1][1]] + 5 |
|
|
|
else: |
|
|
|
alt = dist[u[1][0]][u[1][1]] + 1 |
|
|
@ -141,8 +142,7 @@ passengers = GenPassList() |
|
|
|
# passengers.reverse() |
|
|
|
rnd.shuffle(passengers) |
|
|
|
toad = 0 |
|
|
|
btime = 10 #passengers board every btime ticks |
|
|
|
|
|
|
|
btime = 3 #passengers board every btime ticks |
|
|
|
|
|
|
|
|
|
|
|
def nunty(x): |
|
|
@ -212,7 +212,6 @@ def tick(t): |
|
|
|
man.shuffled-=1 |
|
|
|
if DEBUG: |
|
|
|
time.sleep(0.05) |
|
|
|
# time.sleep(0.05) |
|
|
|
os.system("clear") |
|
|
|
if done and toad >= len(passengers): |
|
|
|
print("Number of ticks: " + str(t)) |
|
|
|