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, kursun bir parçasıdır

Python'da Veri Yapıları ve Algoritmalar

Kursa Göz Atın

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