BaşlayınÜcretsiz Başlayın

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.

Picture of the game Tower of Hanoi

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ır
Kursu Görüntüle

Egzersiz 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)
Kodu Düzenle ve Çalıştır