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, kursun bir parçasıdır
Python'da Veri Yapıları ve Algoritmalar
Egzersiz talimatları
- Temel durumu düzelt.
hanoi()fonksiyonuna yapılan çağrıları düzelt.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
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)