Hanoi Kuleleri
Bu egzersizde, Hanoi Kuleleri bulmacasını özyinelemeli bir algoritma ile uygulayacaksın. Oyunun amacı, aşağıdaki kurallara uyarak üç çubuktan birindeki tüm diskleri başka bir çubuğa taşımaktır:
- Her seferinde yalnızca bir disk taşıyabilirsin.
- Yalnızca bir yığının en üstündeki diski alıp başka bir yığının üstüne koyabilirsin.
- Büyük bir diski küçük bir diskin üstüne koyamazsın.

Gösterilen algoritma, dört disk ve 'A', 'B' ve 'C' adlı üç çubukla bu oyunun bir uygulamasıdır. Kodda iki hata var. Hatta çalıştırırsan, en fazla özyineleme derinliğini aştığı için konsol çöker. Hataları bulup düzeltebilir misin?
Bu egzersiz
Python'da Veri Yapıları ve Algoritmalar
kursunun bir parçasıdırEgzersiz talimatları
- Temel durumu düzelt.
hanoi()fonksiyonuna yapılan çağrıları düzelt.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
def hanoi(num_disks, from_rod, to_rod, aux_rod):
# Correct the base case
if num_disks >= 0:
# Correct the calls to the hanoi function
hanoi(num_disks, from_rod, aux_rod, to_rod)
print("Moving disk", num_disks, "from rod", from_rod,"to rod",to_rod)
hanoi(num_disks, aux_rod, to_rod, from_rod)
num_disks = 4
source_rod = 'A'
auxiliar_rod = 'B'
target_rod = 'C'
hanoi(num_disks, source_rod, target_rod, auxiliar_rod)