2024(6): clean before fix
This commit is contained in:
@ -171,25 +171,9 @@ if __name__ == "__main__":
|
|||||||
#m.load_map("testinput")
|
#m.load_map("testinput")
|
||||||
m.load_map("input")
|
m.load_map("input")
|
||||||
|
|
||||||
loop_obstacles = []
|
|
||||||
|
|
||||||
while m.step():
|
while m.step():
|
||||||
if verbose:
|
if verbose:
|
||||||
print(m.pos, m.direction)
|
print(m.pos, m.direction)
|
||||||
|
|
||||||
# Create a copy
|
|
||||||
forked_map = m.copy()
|
|
||||||
forked_map.map[forked_map.next_pos()] = Map.Tiles.OBSTACLE.value
|
|
||||||
print(f"Forking at {forked_map.next_pos()}... ", end="")
|
|
||||||
try:
|
|
||||||
while forked_map.step():
|
|
||||||
continue
|
|
||||||
except Map.LoopException:
|
|
||||||
print("loop.")
|
|
||||||
loop_obstacles.append(m.next_pos())
|
|
||||||
else:
|
|
||||||
print("no loop")
|
|
||||||
#m.show()
|
#m.show()
|
||||||
#print(len(m.trace), m.trace)
|
#print(len(m.trace), m.trace)
|
||||||
#print(len(set(m.trace)))
|
print(len(set(m.trace)))
|
||||||
print(len(loop_obstacles))
|
|
||||||
|
|||||||
@ -18,11 +18,25 @@ if __name__ == "__main__":
|
|||||||
m = Map()
|
m = Map()
|
||||||
#m.load_map("testinput")
|
#m.load_map("testinput")
|
||||||
m.load_map("input")
|
m.load_map("input")
|
||||||
|
loop_obstacles = []
|
||||||
|
|
||||||
while m.step():
|
while m.step():
|
||||||
# After each step, we can fork the map and add the obstacle.
|
if verbose:
|
||||||
print(m.pos, m.direction)
|
print(m.pos, m.direction)
|
||||||
|
|
||||||
|
# Create a copy
|
||||||
|
forked_map = m.copy()
|
||||||
|
forked_map.map[forked_map.next_pos()] = Map.Tiles.OBSTACLE.value
|
||||||
|
print(f"Forking at {forked_map.next_pos()}... ", end="")
|
||||||
|
try:
|
||||||
|
while forked_map.step():
|
||||||
|
continue
|
||||||
|
except Map.LoopException:
|
||||||
|
print("loop.")
|
||||||
|
loop_obstacles.append(m.next_pos())
|
||||||
|
else:
|
||||||
|
print("no loop.")
|
||||||
#m.show()
|
#m.show()
|
||||||
print(len(m.trace), m.trace)
|
#print(len(m.trace), m.trace)
|
||||||
print(len(set(m.trace)))
|
#print(len(set(m.trace)))
|
||||||
|
print(len(loop_obstacles))
|
||||||
|
|||||||
Reference in New Issue
Block a user