A reader sent in this algorithm for generating hex spirals:
func Generate_hex_coords(): var hexCoords = [] for r in RING_COUNT: var x = r var y = -r var z = 0 while y < 0: hexCoords.append(Vector3(x,y,z)) y += 1 z -= 1 while x > 0: hexCoords.append(Vector3(x,y,z)) y += 1 x -= 1 while z < 0: hexCoords.append(Vector3(x,y,z)) x -= 1 z += 1 while y > 0: hexCoords.append(Vector3(x,y,z)) y -= 1 z += 1 while x < 0: hexCoords.append(Vector3(x,y,z)) x += 1 y -= 1 while z > 0: hexCoords.append(Vector3(x,y,z)) x =+ 1 z -= 1 print("Total hex coordinates generated: " + String(hexCoords.size())) return hexCoords
I wanted to see what I got:
The code triggered an assertion error, x + y + z ≠ 0. The bug? x =+ 1 instead of x += 1. I'm so glad I added the assertion test!