7等辺7角形は終了した。
デバッグした。
向きが違うものを一個に数える
というテーマはあるが一旦お終い。
コードをchatgptできれいにして この記事
chatgptで説明 次からの記事
chatgptで図示してみた
dir2xy = ((2, 0), (1, 1), (-1, 1), (-2, 0), (-1, -1), (1, -1))
ddir2ok = (0, 1, 1, 0, 1, 1)
def corner(c):
for dir in range(6):
last = route[-1]
ddir = (dir + 6 - last[2]) % 6 # Calculate relative direction
if ddir2ok[ddir] == 1:
next = [last[0] + dir2xy[dir][0], last[1] + dir2xy[dir][1], dir]
if c == 7:
if next[0] == 0 and next[1] == 0 and dir != 0:
print(f"{route}")
return
else:
for lc in route:
if lc[0] == next[0] and lc[1] == next[1]:
break
else: # This else corresponds to the for-loop, executes if no break occurs
route.append(next)
corner(c + 1)
route.pop()
return
# Main execution
route = [[0, 0, -1], [2, 0, 0]]
corner(2)