Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
First solution in Clear category for Ulam-Warburton Automaton Hex by kazuki.h
def automaton(step):
edges, checked_points, used_points = {(0, 0)}, {(0, 0)}, {(0, 0)}
while step > 1:
new_edges, empty_points = set(), set()
for (i, j) in edges:
for p in [(i-1, j+1-i%2), (i-1, j-i%2), (i, j-1), (i, j+1), (i+1, j-i%2), (i+1, j+1-i%2)]:
if p in checked_points: pass
elif p in new_edges: empty_points.add(p)
else: new_edges.add(p)
new_edges -= empty_points
step -= 1
edges = new_edges
checked_points |= empty_points
used_points |= new_edges
return len(used_points)
March 28, 2023
Comments: