fork(2) download
  1. def evenr_to_cube(col, row):
  2. x = col - (row + (row&1)) // 2
  3. z = row
  4. y = -x-z
  5. return (x, y, z)
  6.  
  7. def cube_to_evenr(x, y, z):
  8. col = x + (z + (z&1)) // 2
  9. row = z
  10. return (col, row)
  11.  
  12. def hexrange(dist):
  13. results = []
  14. for x in range(-dist, dist + 1):
  15. for y in range(max(-dist, -x-dist), min(dist+ 1, -x+dist+1)):
  16. z = -x-y
  17. results.append((x, y, z))
  18. #results.append(cube_to_evenr(x, y, z))
  19. return results
  20.  
  21. print(hexrange(1))
  22. print(hexrange(2))
Success #stdin #stdout 0.03s 9064KB
stdin
Standard input is empty
stdout
[(-1, 0, 1), (-1, 1, 0), (0, -1, 1), (0, 0, 0), (0, 1, -1), (1, -1, 0), (1, 0, -1)]
[(-2, 0, 2), (-2, 1, 1), (-2, 2, 0), (-1, -1, 2), (-1, 0, 1), (-1, 1, 0), (-1, 2, -1), (0, -2, 2), (0, -1, 1), (0, 0, 0), (0, 1, -1), (0, 2, -2), (1, -2, 1), (1, -1, 0), (1, 0, -1), (1, 1, -2), (2, -2, 0), (2, -1, -1), (2, 0, -2)]