def evenr_to_cube(col, row): x = col - (row + (row&1)) // 2 z = row y = -x-z return (x, y, z) def cube_to_evenr(x, y, z): col = x + (z + (z&1)) // 2 row = z return (col, row) def hexrange(dist): results = [] for x in range(-dist, dist + 1): for y in range(max(-dist, -x-dist), min(dist+ 1, -x+dist+1)): z = -x-y results.append((x, y, z)) #results.append(cube_to_evenr(x, y, z)) return results print(hexrange(1)) print(hexrange(2))
Standard input is empty
[(-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)]