शुरू करेंमुफ़्त में शुरू करें

टावर्स ऑफ़ हनोई

इस अभ्यास में, आप टावर्स ऑफ़ हनोई पज़ल को एक रिकर्सिव एल्गोरिदम से इम्प्लिमेंट करेंगे। इस गेम का उद्देश्य तीन रॉड्स में से किसी एक से सभी डिस्क्स को दूसरी रॉड पर ले जाना है, इन नियमों का पालन करते हुए:

  • आप एक समय में सिर्फ एक डिस्क चला सकते हैं.
  • आप केवल किसी स्टैक की सबसे ऊपर की डिस्क उठा कर दूसरी स्टैक के ऊपर रख सकते हैं.
  • आप किसी छोटी डिस्क के ऊपर बड़ी डिस्क नहीं रख सकते.

Picture of the game Tower of Hanoi

दिया गया एल्गोरिदम इस गेम का इम्प्लिमेंटेशन है जिसमें चार डिस्क्स और तीन रॉड्स हैं, जिनके नाम 'A', 'B' और 'C' हैं। कोड में दो गलतियाँ हैं। वास्तव में, अगर आप इसे चलाते हैं, तो यह अधिकतम रिकर्शन डेप्थ पार करने के कारण कंसोल क्रैश कर देता है। क्या आप बग्स ढूँढकर उन्हें ठीक कर सकते हैं?

यह अभ्यास पाठ्यक्रम का हिस्सा है

Python में Data Structures और Algorithms

पाठ्यक्रम देखें

अभ्यास निर्देश

  • बेस केस ठीक करें.
  • hanoi() फंक्शन की कॉल्स ठीक करें.

इंटरैक्टिव व्यावहारिक अभ्यास

इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।

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)
कोड संपादित करें और चलाएँ