एलीस के जादू


कहानी

जादूगर बनने जा रही एलिस को कुछ बुनियादी बातों का अभ्यास करना है। उसके पास कार्डों का एक स्टैक है, जिसे वह अपनी तरह से बदलना चाहती है।

चीज़ें थोड़ी आसान बनाने के लिए वह सिर्फ 1 से 10 तक के कार्ड इस्तेमाल करती है।

कार्ड की वैल्यू को 1 से 10 तक सीमित रखते हैं, ताकि सिर्फ संख्याओं से ही काम पड़े, और इस कहानी का इस्तेमाल करने वाले अभ्यासों को सिर्फ संख्याओं पर निर्भर रहना पड़े।

कार्य

ये ऐसे कार्यों के उदाहरण हैं जो एलिस के नौसिखिया होने की कहानी से मेल खाते हैं:

  • स्टैक से एक कार्ड निकालिए
  • स्टैक में एक कार्ड बदलिए
  • स्टैक के सबसे ऊपर एक कार्ड डालिए
  • स्टैक से एक कार्ड हटाइए
  • स्टैक से सबसे ऊपर का कार्ड हटाइए
  • स्टैक के सबसे नीचे एक कार्ड डालिए
  • स्टैक से सबसे नीचे का कार्ड हटाइए
  • स्टैक का आकार जाँचिए

इस कहानी को आगे बढ़ाकर ऐरे का विश्लेषण भी सिखाया जा सकता है:

  • किसी कार्ड की जगह ढूँढ़िए
  • जाँचिए कि कोई कार्ड मौजूद है या नहीं
  • जाँचिए कि हर कार्ड सम संख्या है या नहीं
  • जाँचिए कि स्टैक में विषम संख्या वाला कोई कार्ड है या नहीं
  • स्टैक से पहला विषम कार्ड निकालिए
  • पहले सम कार्ड की जगह ढूँढ़िए

इस कहानी को आगे बढ़ाकर ऐरे के रूपांतरण भी सिखाए जा सकते हैं:

  • हर कार्ड को दोगुना कीजिए
  • गड्डी में जो भी 3 मिले, उसकी कई प्रतियाँ बनाइए
  • गड्डी के ठीक बीच से दो कार्ड निकालिए
  • बाहर के दो कार्ड गड्डी के बीच में फिर से आ जाएँगे
  • जो भी कार्ड 2 नहीं है, वह गायब हो जाता है
  • फेंटी हुई गड्डी को पूरी तरह क्रम में लगी गड्डी में बदलिए
  • हर कार्ड को कार्डों की कुल संख्या में बदलिए

इस कहानी को आगे बढ़ाकर ऐरे डीस्ट्रक्चरिंग भी सिखाई जा सकती है:

  • पहला कार्ड निकालिए (बिना पारंपरिक तरीकों के, जैसे इंडेक्सर या मेथड)
  • दूसरा कार्ड निकालिए (बिना पारंपरिक तरीकों के, जैसे इंडेक्सर या मेथड)
  • पहले दो कार्डों की जगह बदलिए (बिना पारंपरिक तरीकों के, जैसे इंडेक्सर या मेथड)
  • सबसे ऊपर का कार्ड हटा दीजिए (बिना पारंपरिक तरीकों के, जैसे इंडेक्सर या मेथड)
  • फेस कार्ड डालिए (बिना पारंपरिक तरीकों के, जैसे इंडेक्सर या मेथड)

शब्दावली

ये निर्देशों (स्टब कमेंट्री समेत) में बार-बार आने वाली शब्दावली के लिए सिफारिशें हैं, नियम नहीं।

  • मुख्य किरदार एलिस है और उसके सर्वनाम she/her हैं। अगर आपको किरदार की ओर इशारा करना हो, तो नाम इस्तेमाल कीजिए या उसे उसके सर्वनाम से पुकारिए।
  • array (या उसके बराबर का डेटा टाइप) की जगह स्टैक या कार्ड स्टैक शब्द इस्तेमाल कीजिए
  • element की जगह कार्ड शब्द इस्तेमाल कीजिए
  • length की जगह स्टैक का आकार इस्तेमाल कीजिए
  • सबसे ऊपर का कार्ड पहला एलिमेंट है
  • सबसे नीचे का कार्ड अंतिम एलिमेंट है

कार्यान्वयन

वैकल्पिक संस्करण

कहानी का एक वैकल्पिक संस्करण आप (छात्र) को मुख्य किरदार बनाता है और सिर्फ गड्डी को दोबारा लगाने पर ध्यान देता है।

कहानी

आप एक जादूगर हैं और ताश की गड्डी संभालते हैं। अपना जादू का करतब ठीक से कर पाने के लिए आपको किसी कार्ड को एक जगह से दूसरी जगह तक ले जाना आना चाहिए। यानी आपको गड्डी दोबारा लगाना आना चाहिए। स्वाभाविक है, आप कार्डों को दोनों दिशाओं में ले जाना चाहते हैं, और "गड्डी के ऊपर से" या "गड्डी के नीचे से" कह पाना चाहते हैं।

कार्य

ये ऐसे कार्यों के उदाहरण हैं जो आपके कार्ड दोबारा लगाने की कहानी से मेल खाते हैं:

  • एक फंक्शन arrange बनाइए जो स्टैक में एक कार्ड को एक दी गई जगह से दूसरी जगह ले जाता है और एक नया स्टैक लौटाता है
  • एक फंक्शन rearrange बनाइए जो वही करता है, पर मूल स्टैक को ही बदल देता है

कार्यान्वयन

संदर्भ