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

दिया गया एल्गोरिदम इस गेम का इम्प्लिमेंटेशन है जिसमें चार डिस्क्स और तीन रॉड्स हैं, जिनके नाम '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)