2011-01-23 21 views
5

मुझे दो दिन पहले मेरे टीआई -82 स्टेटस प्रोग्राम करने योग्य कैलक्यूलेटर (जो कि वास्तव में टीआई -83 का अधिक है) प्राप्त हुआ - और बिल्टिन टीआई-बेसिक के साथ एक सांप गेम प्रोग्राम करना चाहता था भाषा।सांप-शैली के खेल के लिए न्यूनतम दृष्टिकोण

हालांकि मुझे पता लगाना पड़ा: टीआई-बेसिक बेहद धीमी है। मेरा पहला कार्यान्वयन इतना धीमा था कि यह खिलाड़ी के लिए भी एक चुनौती नहीं थी! मेरे लिए मुख्य बाधा सांप शरीर के निर्देशांक वाली सूची (सरणी) के प्रबंधन में निहित है।

मैं दो बातें की कोशिश की है:

  • साँप चलता है, अद्यतन सिर स्थिति है, तो पूंछ की स्थिति से सरणी के माध्यम से पाश, और myList[ N - 1 ] को myList[ N ] सेट करते हैं क्रम साँप दिखाई देते हैं बनाने के लिए, चलती।

हालांकि, सूची के लगभग 4 भागों लंबे होने के बाद यह नामुमकिन हो जाता है। (बहुत धीमी गति से)

  • फिर, मैं, TI-बेसिक की सूची में गड़बड़ी सुविधाओं का उपयोग कतार/Deque किसी प्रकार को लागू करने वालों के सामने अंत बंद पॉपिंग और कुछ जोड़ने की तरह की कोशिश की।

यह थोड़ा बेहतर काम करता है, लेकिन समय के साथ भी धीमा हो जाता है।

टी एल; डीआर/वास्तविक प्रश्न:

  • आप एक चाल पता तो खेल साँप अब हो रही है के साथ धीमा नहीं होता है? मैंने देखा है कि यह अन्य TI-बुनियादी एक circular buffer

उत्तर

3

उपयोग में किए गए खेल में संभव है। विस्तारित करने के लिए:

अधिकतम सांप पकड़ने के लिए पर्याप्त रूप से बड़ा सरणी प्राप्त करें। दो पॉइंटर्स की स्थापना करें, एक सिर के लिए, एक पूंछ के लिए।

शुरुआत में, पूंछ कक्ष # 1 में होगा, सेल # 3 में सिर। जैसे ही सांप चलता है, सिर पॉइंटर को दाईं ओर ले जाएं और नया समन्वय लिखें। फिर, यदि कोई खाना नहीं खाया जाता है, तो पूंछ सूचक को दाईं ओर भी ले जाएं। यदि किसी भी पॉइंटर्स सरणी के दाएं सिरे से आगे जाने की कोशिश करता है, तो उन्हें शुरुआत में लपेटें।

0

LIST मेनू के तहत प्रदान किए गए कार्यों का पूरा उपयोग करने के लिए सूचियों को सुधारने के लिए काम करते समय एक साधारण चाल है। विशेष रूप से, seq एक लूप के लिए महत्वपूर्ण प्रदर्शन लाभ प्रदान कर सकता है जो एक ही लक्ष्य को पूरा करता है। अन्य कार्यों जो मुझे उपयोगी लगता है cumSum और ΔList हैं।

1

एक चाल है कि सबसे अधिक संभावना काम करेंगे बजाय [N - 1] करना [एन - 2] यह बनाता है या एक उच्च संख्या कि जिस तरह से गणितीय रूप से तेज़ी से आगे बढ़ने के समय (आपको तेजी से जाने के लिए सिर के आकार को समायोजित करना होगा