Hanoi
This commit is contained in:
parent
fd93410d4a
commit
036bb8b7b9
|
@ -125,7 +125,7 @@ turtle.up()
|
||||||
turtle.goto(-200, -200)
|
turtle.goto(-200, -200)
|
||||||
turtle.down()
|
turtle.down()
|
||||||
turtle.forward(200)
|
turtle.forward(200)
|
||||||
triangle(5, 200)
|
triangle(2, 200)
|
||||||
turtle.forward(200)
|
turtle.forward(200)
|
||||||
for i in range(2):
|
for i in range(2):
|
||||||
turtle.left(120)
|
turtle.left(120)
|
||||||
|
@ -142,3 +142,24 @@ def expo_rapide(x, n):
|
||||||
|
|
||||||
print(expo_rapide(2, 10000))
|
print(expo_rapide(2, 10000))
|
||||||
|
|
||||||
|
def hanoi(k, source, aide, but):
|
||||||
|
if k == 0: return
|
||||||
|
hanoi(k-1, source, but, aide)
|
||||||
|
print(k, ":", source, "->", but)
|
||||||
|
but.append(source.pop())
|
||||||
|
hanoi(k-1, aide, source, but)
|
||||||
|
|
||||||
|
hanoi(4, [4, 3, 2, 1], [], [])
|
||||||
|
|
||||||
|
def better_hanoi(k, source, aide, but, aff=None):
|
||||||
|
if aff is None:
|
||||||
|
aff = (source, aide, but)
|
||||||
|
print(aff[0], aff[1], aff[2])
|
||||||
|
if k == 0: return
|
||||||
|
better_hanoi(k-1, source, but, aide, aff)
|
||||||
|
print(aff[0], aff[1], aff[2])
|
||||||
|
but.append(source.pop())
|
||||||
|
better_hanoi(k-1, aide, source, but, aff)
|
||||||
|
|
||||||
|
|
||||||
|
better_hanoi(4, [4, 3, 2, 1], [], [])
|
Loading…
Reference in a new issue