Broken Python load_asteroid_graph fix
This commit is contained in:
parent
616c1edf04
commit
d786d39d3c
1 changed files with 24 additions and 25 deletions
|
@ -2,37 +2,36 @@ from asteracer import *
|
|||
|
||||
|
||||
def load_asteroid_graph(path: str):
|
||||
with open(path) as f:
|
||||
contents = [
|
||||
line
|
||||
for line in f.read().splitlines()
|
||||
if not line.startswith("#") and line.strip() != ""
|
||||
]
|
||||
with open(path) as file:
|
||||
lines = [line.strip() for line in file.readlines()]
|
||||
|
||||
n_racer, n_asteroid, n_goal, m = list(map(int, contents[0].split()))
|
||||
# Filter out comments and empty lines
|
||||
contents = [line for line in lines if line and not line.startswith('#')]
|
||||
|
||||
vertices = []
|
||||
edges = []
|
||||
vertex_objects = []
|
||||
iter_lines = iter(contents)
|
||||
first_line = list(map(int, next(iter_lines).split()))
|
||||
n_racer, n_asteroid, n_goal, m = first_line
|
||||
|
||||
# Load vertices
|
||||
for i in range(1, 1 + n_racer + n_asteroid + n_goal):
|
||||
line = contents[i + 1].split()
|
||||
vertices = []
|
||||
edges = []
|
||||
vertex_objects = []
|
||||
|
||||
vertices.append((int(line[0]), int(line[1])))
|
||||
# Load vertices
|
||||
for i in range(n_racer + n_asteroid + n_goal):
|
||||
line = list(map(int, next(iter_lines).split()))
|
||||
vertices.append((line[0], line[1]))
|
||||
|
||||
if 0 <= i < n_racer:
|
||||
vertex_objects.append(("S", i))
|
||||
elif n_racer <= i < n_asteroid:
|
||||
vertex_objects.append(("A", int(line[2])))
|
||||
elif n_asteroid <= i < n_goal:
|
||||
vertex_objects.append(("G", int(line[2])))
|
||||
if i < n_racer:
|
||||
vertex_objects.append(('S', i))
|
||||
elif i < (n_racer + n_asteroid):
|
||||
vertex_objects.append(('A', line[2]))
|
||||
else:
|
||||
vertex_objects.append(('G', line[2]))
|
||||
|
||||
# Load edges
|
||||
for i in range(i, i + m):
|
||||
line = contents[i + 1].split()
|
||||
|
||||
edges.append((int(line[0]), int(line[1])))
|
||||
# Load edges
|
||||
for _ in range(m):
|
||||
line = list(map(int, next(iter_lines).split()))
|
||||
edges.append((line[0], line[1]))
|
||||
|
||||
return vertices, edges, vertex_objects
|
||||
|
||||
|
|
Loading…
Reference in a new issue