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