# ஒரு விளையாட்டை உருவாக்கு: வடிவமைப்பு படிமுறைகள் பயன்படுத்தல் ## பணியின் மேம்பாடு உங்கள் புதியபெறப்பட்ட வடிவமைப்பு படிமுறைகள் அறிவைப் பயன்படுத்தி ஒரு எளிய விளையாட்டு முன்னோட்டத்தை உருவாக்குங்கள்! இந்த பணி, கட்டமைப்பு படிமுறைகள் (புரிதல் அல்லது சேர்க்கை) மற்றும் பாடப் பாடத்தில் கற்றுக்கொண்ட pub/sub தொடர்பு முறையைப் பயிற்சி செய்ய உதவும். ## வழிமுறைகள் இந்த பாடத்திலிருந்து வடிவமைப்பு படிமுறைகளை காட்டும் ஒரு எளிய விளையாட்டு பிரதிநிதித்துவத்தை உருவாக்குங்கள். உங்கள் விளையாட்டு செயல்பாட்டுடனும் இருக்க வேண்டும், ஆனால் சிக்கலான கிராபிக்ஸ் தேவையில்லை - அடிப்படை கட்டமைப்பு மற்றும் தொடர்பு படிமுறைகளில் கவனம் செலுத்துங்கள். ### தேவைகள் **உங்கள் கட்டமைப்பு படிமுறையைத் தேர்வு செய்யவும்:** - **முறை A**: வகுப்பு அடிப்படையிலான புரிதலைப் பயன்படுத்துக (உதாரணமாக `GameObject` → `Movable` → `Hero`) - **முறை B**: சேர்க்கையைப் பயன்படுத்துக ( கலந்த நடத்தை கொண்ட தொழிற்சாலை செயல்முறை போல) **தொடர்பு செயல்படுத்தல்:** -பபு/சப் செய்திமாற்றத்திற்கான `EventEmitter` வகுப்பை **சேர்க்கவும்** - குறைந்தது 2-3 வெவ்வேறு செய்தி வகைகளை அமைக்கவும் (உதாரணமாக `PLAYER_MOVE`, `ENEMY_SPAWN`, `SCORE_UPDATE`) - பயனரின் உள்ளீட்டு (கீபோர்டு/எறும்பு) விளையாட்டுச் செயல்களின் மூலம் நிகழ்வுகள் தொடர்பு கொள்ளுதல் **விளையாட்டு கூறுகளைச் சேர்க்கவும்:** - குறைந்தது ஒரு வீரர் கட்டுப்படும் கதாப்பாத்திரம் - குறைந்தது மற்றொரு விளையாட்டு பொருள் (சசுகம், சேகரிக்கும் பொருள், அல்லது சுற்றுப்புற கூறு) - பொருட்களின் அடிப்படை தொடர்பு (தொற்று, சேகரிப்பு, அல்லது தொடர்பு) ### பரிந்துரைக்கப்பட்ட விளையாட்டு கருத்துகள் **எளிய விளையாட்டுகள் கருதி:** - **பாம்பு விளையாட்டு** – பாம்பு துண்டுகள் தலை பின்பற்றும், உணவு சீரற்ற முறையில் தோன்றும் - **போங் மாறுபாடு** – பிட்கி உள்ளீட்டை பதிலளிக்கும், பந்து சுவர் படிப்படியாக பந்து வீசுகிறது - **சேகரிக்கும் விளையாட்டு** – வீரர் பொருட்களை சேகரிக்க சுற்றி நடக்கும் மற்றும் தடைகளைத் தவிர்க்கும் - **கோலை பாதுகாப்பு அடிப்படைகள்** – கோபுரங்கள் நகரும் எதிரிகளை கண்டறிந்து துப்பாக்கி தறு ### குறியீடு அமைப்பு வழிகாட்டுதல்கள் ```javascript // உதாரண ஆரம்ப அமைப்பு const Messages = { // உங்கள் விளையாட்டு செய்திகளை இங்கே வரையறுக்கவும் }; class EventEmitter { // உங்கள் நிகழ்வு அமைப்பு செயலாக்கம் } // வகுப்பு அடிப்படையிலான அல்லது சேர்க்கை முறையில் ஒன்றை தேர்வுசெய்க // வகுப்பு அடிப்படையிலான உதாரணம்: class GameObject { /* base properties */ } class Player extends GameObject { /* player-specific behavior */ } // அல்லது சேர்க்கை உதாரணம்: const gameObject = { /* base properties */ }; const movable = { /* movement behavior */ }; function createPlayer() { /* combine behaviors */ } ``` ### உங்கள் செயல்பாட்டை சோதனை செய்வது **உங்கள் குறியீடு செயல் படுமா என்பதை சரிபார்க்க:** - நிகழ்வுகள் நிகழும்போது பொருட்கள் நகர்கின்றன அல்லது மாறுகின்றன என்பதை **சோதனை செய்யவும்** - பல பொருட்கள் ஒரே நிகழ்வுக்கு பதிலளிக்க முடியும் என்பதை **உறுதிசெய்யவும்** - புதிய நடத்தை சேர்க்க பழைய குறியீட்டை மாற்றாமல் முடியும் என்பதை **உறுதிசெய்யவும்** - கீபோர்டு/எறும்பு உள்ளீடுகள் விளையாட்டு நிகழ்வுகளை சரியாக தூண்டுகின்றன என்பதை **உறுதிசெய்யவும்** ## சமர்ப்பிப்பு வழிகாட்டுதல்கள் **உங்கள் சமர்ப்பிப்பில் அடங்க வேண்டும்:** 1. உங்கள் விளையாட்டு செயல்முறையுடன் **JavaScript கோப்பு(கள்)** 2. உங்கள் விளையாட்டை இயக்கு மற்றும் சோதனை செய்ய **HTML கோப்பு** (எளியதாக இருக்கலாம்) 3. நீங்கள் தேர்ந்தெடுத்த படிமுறை மற்றும் காரணம் குறித்து விளக்கும் **குறிப்புகள்** 4. உங்கள் செய்தி வகைகள் மற்றும் அவற்றின் செயல்பாடுகள் குறித்து சுருக்கமான **ஆவணம்** ## மதிப்பீட்டுப் பட்டியல் | தரம் | சிறந்தது (3 புள்ளிகள்) | தகுதி உள்ளது (2 புள்ளிகள்) | மேம்படுத்தப்பட வேண்டும் (1 புள்ளி) | |----------|---------------------|---------------------|------------------------------| | **கட்டமைப்பு படிமுறை** | புரிதல் அல்லது சேர்க்கையை சரியாக வகுப்பு/பொருள் வரிசையில் செயல்படுத்தல் | தேர்ந்தெடுத்த படிமுறையை சிறு பிரச்சினைகள் அல்லது முரண்பாடுகளுடன் பயன்படுத்தல் | படிமுறையை முயற்சி செய்தாலும் முக்கிய பிரச்சினைகள் உள்ள செயல்பாடு | | **பப்/சப் செயல்பாடு** | EventEmitter பல செய்தி வகைகளுடன் மற்றும் சரியான நிகழ்ச்சி ஓட்டத்துடன் வேலை செய்யும் | அடிப்படை பப்/சப் அமைப்பு மற்றும் சில நிகழ்வு கையாளல் | நிகழ்ச்சி முறை உள்ளது ஆனால் நம்பகமாக வேலை செய்யாது | | **விளையாட்டு செயல்பாடு** | நிகழ்வுகளின் மூலம் தொடர்பு கொண்ட மூன்று அல்லது அதற்கு மேற்பட்ட உள்ளடக்கங்கள் | இரண்டு செயல்பாட்டுள்ள கூறுகள் அடிப்படை நிகழ்வுகளைப் பகிர்ந்து கொள்ளும் | ஒன்று சம்பந்தப்பட்டாலும், அடிப்படை தொடர்பு மட்டுமே | | **குறியீடு தரம்** | சுத்தமாக, நன்கு கருத்துக்கள் கொண்ட, தர்க்கபூர்வமாக சங்கிலிகள் செய்யப்பட்ட மற்றும் நவீன JavaScript | பொதுவாக நன்கு அமைந்த குறியீடு மற்றும் சரியான கருத்துக்கள் | குறியீடு செயல் படுகிறது ஆனால் அமைப்பு அல்லது தெளிவான கருத்துக்கள் இல்லை | **போனஸ் புள்ளிகள்:** - கவர்ச்சியான படிமுறை பயன்படுத்தும் புதுமையான விளையாட்டு இயந்திரங்கள் - பல உள்ளீட்டு முறைகள் (கீபோர்டும் மற்றும் எறும்பு நிகழ்வுகளும்) - புதிய அம்சங்களுடன் விரிவெடுக்க எளிதான அளவிடக்கூடிய கட்டமைப்பு --- **அறிக்கை**: இந்த தாள்த் தொழில்நுட்ப மொழிபெயர்ப்புச் சேவை [Co-op Translator](https://github.com/Azure/co-op-translator) மூலம் மொழிபெயர்க்கப்பட்டது. நாங்கள் சரியானதற்காக முயற்சித்துள்ளபோதிலும், தானாக生成 செய்யப்பட்ட மொழிபெயர்ப்புகளில் பிழைகள் அல்லது தவறுகள் இருக்கலாம் என்பதை கவனத்தில் கொள்ளவும். தாய் மொழியில் உள்ள அசல் ஆவணம் அங்கீகாரம் பெறுமிடமாக இருக்க வேண்டும். முக்கியமான தகவல்களுக்கு, தொழிற்சங்க மனித மொழிபெயர்ப்பைப் பின்பற்ற பரிந்துரைக்கப்படுகிறது. இந்த மொழிபெயர்ப்பின் பயன்பாட்டு காரணமாக ஏற்படும் ஏதாவது தவறுதல்கள் அல்லது தவறான விளக்கங்களுக்கு நாங்கள் பொறுப்பேற்கவில்லை.