You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Web-Dev-For-Beginners/translations/mr/6-space-game/1-introduction/assignment.md

11 KiB

गेम तयार करा: डिझाइन पॅटर्न लागू करा

असाइनमेंटचा आढावा

डिझाइन पॅटर्नबद्दल मिळालेल्या नवीन ज्ञानाचा उपयोग करून एक साधा गेम प्रोटोटाइप तयार करा! ही असाइनमेंट तुम्हाला आर्किटेक्चरल पॅटर्न (इनहेरिटन्स किंवा कंपोझिशन) आणि तुम्ही शिकलेल्या पब/सब कम्युनिकेशन सिस्टमचा सराव करण्यास मदत करेल.

सूचना

या धड्याच्या डिझाइन पॅटर्न्सचे प्रदर्शन करणारे एक साधे गेम तयार करा. तुमचा गेम कार्यक्षम असावा, परंतु त्यात जटिल ग्राफिक्स असण्याची गरज नाही \u2013 अंतर्गत आर्किटेक्चर आणि कम्युनिकेशन पॅटर्नवर लक्ष केंद्रित करा.

आवश्यकता

तुमचा आर्किटेक्चर पॅटर्न निवडा:

  • पर्याय A: वर्ग-आधारित इनहेरिटन्स वापरा (जसे GameObjectMovableHero उदाहरण)
  • पर्याय B: कंपोझिशन वापरा (मिश्रित वर्तनांसह फॅक्टरी फंक्शन दृष्टिकोनासारखे)

कम्युनिकेशन अंमलात आणा:

  • समाविष्ट करा EventEmitter वर्ग पब/सब मेसेजिंगसाठी
  • सेट अप करा किमान 2-3 वेगवेगळ्या मेसेज प्रकार (जसे PLAYER_MOVE, ENEMY_SPAWN, SCORE_UPDATE)
  • कनेक्ट करा वापरकर्ता इनपुट (कीबोर्ड/माऊस) गेम इव्हेंट्सशी इव्हेंट सिस्टमद्वारे

गेम घटक समाविष्ट करा:

  • किमान एक खेळाडू-नियंत्रित पात्र
  • किमान एक इतर गेम ऑब्जेक्ट (शत्रू, गोळा करण्यायोग्य वस्तू, किंवा पर्यावरणीय घटक)
  • ऑब्जेक्ट्समधील मूलभूत परस्परसंवाद (कोलिजन, संग्रह, किंवा कम्युनिकेशन)

सुचवलेले गेम कल्पना

विचार करण्यासाठी साधे गेम्स:

  • स्नेक गेम \u2013 सापाचे भाग डोक्याचे अनुसरण करतात, अन्न यादृच्छिकपणे तयार होते
  • पॉन्ग व्हेरिएशन \u2013 पॅडल इनपुटला प्रतिसाद देते, बॉल भिंतींवरून उडतो
  • कलेक्टर गेम \u2013 खेळाडू वस्तू गोळा करताना अडथळ्यांपासून बचाव करतो
  • टॉवर डिफेन्स बेसिक्स \u2013 टॉवर्स हालणाऱ्या शत्रूंना शोधून त्यांच्यावर गोळीबार करतात

कोड स्ट्रक्चर मार्गदर्शक

// Example starting structure
const Messages = {
  // Define your game messages here
};

class EventEmitter {
  // Your event system implementation
}

// Choose either class-based OR composition approach
// Class-based example:
class GameObject { /* base properties */ }
class Player extends GameObject { /* player-specific behavior */ }

// OR Composition example:
const gameObject = { /* base properties */ };
const movable = { /* movement behavior */ };
function createPlayer() { /* combine behaviors */ }

तुमची अंमलबजावणी तपासणे

तुमचा कोड कार्यरत असल्याची खात्री करा:

  • तपासा की इव्हेंट्स ट्रिगर झाल्यावर ऑब्जेक्ट्स हलतात किंवा बदलतात
  • पुष्टी करा की अनेक ऑब्जेक्ट्स एकाच इव्हेंटला प्रतिसाद देऊ शकतात
  • तपासा की नवीन वर्तन विद्यमान कोडमध्ये बदल न करता जोडता येते
  • खात्री करा की कीबोर्ड/माऊस इनपुट योग्य प्रकारे गेम इव्हेंट्स ट्रिगर करतो

सबमिशन मार्गदर्शक

तुमच्या सबमिशनमध्ये समाविष्ट असावे:

  1. जावास्क्रिप्ट फाइल(स) तुमच्या गेमच्या अंमलबजावणीसह
  2. HTML फाइल तुमचा गेम चालवण्यासाठी आणि तपासण्यासाठी (साधी असू शकते)
  3. टिप्पण्या तुम्ही कोणता पॅटर्न निवडला आणि का निवडला याचे स्पष्टीकरण देणाऱ्या
  4. संक्षिप्त दस्तऐवज तुमच्या मेसेज प्रकारांचे आणि ते काय करतात याचे

मूल्यांकन निकष

निकष उत्कृष्ट (3 गुण) पुरेसे (2 गुण) सुधारणा आवश्यक (1 गुण)
आर्किटेक्चर पॅटर्न इनहेरिटन्स किंवा कंपोझिशन योग्य प्रकारे अंमलात आणले आहे, स्पष्ट वर्ग/ऑब्जेक्ट श्रेणीसह निवडलेल्या पॅटर्नचा वापर किरकोळ समस्या किंवा विसंगतींसह पॅटर्न वापरण्याचा प्रयत्न केला परंतु अंमलबजावणीत महत्त्वाच्या समस्या आहेत
पब/सब अंमलबजावणी EventEmitter अनेक मेसेज प्रकारांसह आणि योग्य इव्हेंट फ्लोसह कार्य करते मूलभूत पब/सब सिस्टम काही इव्हेंट हँडलिंगसह कार्य करते इव्हेंट सिस्टम उपस्थित आहे परंतु विश्वासार्हपणे कार्य करत नाही
गेम कार्यक्षमता तीन किंवा अधिक परस्परसंवादी घटक जे इव्हेंट्सद्वारे संवाद साधतात दोन परस्परसंवादी घटक मूलभूत इव्हेंट कम्युनिकेशनसह एक घटक इव्हेंट्सला प्रतिसाद देतो किंवा मूलभूत परस्परसंवाद
कोड गुणवत्ता स्वच्छ, चांगल्या प्रकारे टिप्पणी केलेला कोड, तार्किक संघटनासह आणि आधुनिक जावास्क्रिप्टसह सामान्यतः चांगल्या प्रकारे आयोजित कोड, पुरेश्या टिप्पण्या असलेल्या कोड कार्य करतो परंतु संघटन किंवा स्पष्ट टिप्पणींचा अभाव आहे

अतिरिक्त गुण:

  • सर्जनशील गेम यांत्रिकी जे पॅटर्न्सच्या मनोरंजक उपयोगाचे प्रदर्शन करतात
  • अनेक इनपुट पद्धती (कीबोर्ड आणि माऊस इव्हेंट्स)
  • स्केलेबल आर्किटेक्चर जे नवीन वैशिष्ट्यांसह सहजपणे विस्तारित करता येईल

अस्वीकरण:
हा दस्तऐवज AI भाषांतर सेवा Co-op Translator वापरून भाषांतरित करण्यात आला आहे. आम्ही अचूकतेसाठी प्रयत्नशील असलो तरी, कृपया लक्षात ठेवा की स्वयंचलित भाषांतरे त्रुटी किंवा अचूकतेच्या अभावाने युक्त असू शकतात. मूळ भाषेतील दस्तऐवज हा अधिकृत स्रोत मानला जावा. महत्त्वाच्या माहितीसाठी व्यावसायिक मानवी भाषांतराची शिफारस केली जाते. या भाषांतराचा वापर करून उद्भवलेल्या कोणत्याही गैरसमज किंवा चुकीच्या अर्थासाठी आम्ही जबाबदार राहणार नाही.