बहुत समय पहले बिल्कुल उसी आकाशगंगा में मैंने एंगुलर 1.3 सीखने के तरीके के रूप में फ्रीसेल बनाने की कोशिश शुरू की थी।
मैं इतनी दूर चला गया और फिर मैं अन्य चीजों से विचलित हो गया, जैसा कि साइड प्रोजेक्ट्स का तरीका है।
हाल ही में मेरे पास कुछ खाली समय था (मुझे पता है, मुझे इसकी उम्मीद भी नहीं थी) और इसलिए मैंने सोचा कि मैं इसे एक और मौका दूंगा।
मैंने अनिवार्य रूप से शुरुआत से शुरुआत की, क्योंकि मुझे अब एंगुलर 1.3 में कोई दिलचस्पी नहीं है, और अगर मुझे एक फ्रेमवर्क की आवश्यकता होती है तो मैं अपने वेब सामग्री के लिए VueJS का उपयोग करता हूं।
परिणाम देखने के लिए, यह github.io पर है: फ्रीसेल खेलने के लिए यहां क्लिक करें!
जब से मैंने डेढ़ दशक पहले डब्ल्यूपीएफ सीखा है, मुझे प्रोग्रामिंग की एमवीवीएम शैली वास्तव में पसंद आई है। VueJS यूआई को अद्यतन करने के लिए स्पष्ट घटनाओं की आवश्यकता के बिना, उस शैली को बहुत आसानी से अनुमति देता है, और इसमें सुधार भी करता है।
इसका मतलब है कि गेम लॉजिक व्यू लॉजिक से पूरी तरह से अलग है, जिससे इस गेम को लिखना आसान हो गया है।
यह सब हवाई यात्रा नहीं थी, क्योंकि किसी कारण से मैंने निर्णय लिया कि मैं कार्डों को 2डी दांतेदार सरणी में संग्रहित करूंगा। कोई भयानक विचार नहीं है, लेकिन प्रत्येक आंतरिक सरणी एक कॉलम है, और इसलिए जब मैं सीएसएस ग्रिड में कार्डों को सही ढंग से लेआउट करने की कोशिश कर रहा था तो मैं न केवल बाहरी और न ही आंतरिक सरणी को दोहरा सकता था, जैसे
क्योंकि इससे कॉलम पंक्तियों के रूप में सामने आ जाएंगे। इसलिए मुझे आंतरिक लूप पर बाहरी सरणी पर ऑब्जेक्ट और लूप के बजाय सूचकांकों का उपयोग करना पड़ा (VueJS 0 से शुरू क्यों नहीं होता???)
मुझे लगता है कि मेरे द्वारा किए गए अन्य दो खराब डिज़ाइन निर्णय स्वत: पूर्ण को लागू करना और क्लिक हैंडलर को दृश्य के बजाय गेम (यानी मॉडल) में केवल एक फ़ंक्शन होना है और दृश्य को यह पता लगाना है कि कौन सा कोर्स है कार्रवाई की जाएगी।
खेल में यह निर्णय लेने से कि खिलाड़ी को कौन सा कार्य करना है (अर्थात् एक कार्ड (या कार्डों का ढेर) का चयन करें, कार्डों को दूसरे स्टैक पर रखें या कार्डों का चयन रद्द करें) से कुछ स्पेगेटी कोड उत्पन्न हुए हैं जिन्हें मैं बाद में दोबारा बनाना चाहूँगा।
शुरुआत में मैं स्वत: पूर्ण लागू नहीं करना चाहता था क्योंकि मैं तर्क के बारे में सोचना नहीं चाहता था। लेकिन इसके बिना कुछ गेम खेलने के बाद मैं होम रो में प्रत्येक कार्ड को टैप करने से इतना ऊब गया कि मुझे इसे लागू करने के लिए मजबूर होना पड़ा।
मुझे अपनी बात पर कायम रहना चाहिए क्योंकि यह बहुत बुरा है। यह कोड का एक बड़ा हिस्सा है जिसने शुरू में बहुत सारे बग और सिर खुजलाने का कारण बना। यह पूर्णतः स्वचालित भी नहीं है. दूसरी ओर, अब मुझे लगभग उतनी टैपिंग नहीं करनी पड़ती।
मैंने कार्डों को खींचने और छोड़ने योग्य न बनाने के बारे में अपनी बंदूकें रखीं, क्योंकि मैंने इसे ज्यादातर अपने फोन और टैबलेट पर चलाने के लिए बनाया था, इसलिए जगह में टैप करना यूएक्स-वार बहुत आसान है (कम से कम मेरा यूएक्स, ymmv).
कुल मिलाकर मैं परिणाम से खुश हूं, भले ही कुछ बग अभी भी नजरों से ओझल हैं।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3