|
|
# గేమ్ను మాక్ అప్ చేయండి: డిజైన్ ప్యాటరన్లు అప్లై చేయండి
|
|
|
|
|
|
## అసైన్మెంట్ సమీక్ష
|
|
|
|
|
|
డిజైన్ ప్యాటరన్లపై మీ కొత్త జ్ఞానాన్ని ఉపయోగించి ఒక సింపుల్ గేమ్ ప్రొటోటైప్ సృష్టించండి! ఈ అసైన్మెంట్ మీరు ఆర్కిటెక్చరల్ ప్యాటరన్లు (ఇన్హెరిటెన్స్ లేదా కంపోజిషన్) మరియు లెషన్లో నేర్చుకున్న పబ్/సబ్ కమ్యూనికేషన్ సిస్టమ్ను ప్రాక్టీస్ చేయడంలో సహాయపడుతుంది.
|
|
|
|
|
|
## సూచనలు
|
|
|
|
|
|
ఈ లెషన్లో ఉన్న డిజైన్ ప్యాటరన్లను ప్రదర్శించే ఒక సింపుల్ గేమ్ ప్రాతినిధ్యం సృష్టించండి. మీ గేమ్ ఫంక్షనల్గా ఉండాలి కానీ క్లిష్టమైన గ్రాఫిక్స్ అవసరం లేదు – క్రింద ఉన్న ఆర్కిటెక్చర్ మరియు కమ్యూనికేషన్ ప్యాటరన్లపై దృష్టి పెట్టండి.
|
|
|
|
|
|
### అవసరాలు
|
|
|
|
|
|
**మీ ఆర్కిటెక్చర్ ప్యాటరన్ ఎంచుకోండి:**
|
|
|
- **ఎంపిక ఏ**: క్లాస్-ఆధారిత ఇన్హెరిటెన్స్ ఉపయోగించండి (ఉదాహరణకు `GameObject` → `Movable` → `Hero` మాదిరి)
|
|
|
- **ఎంపిక బి**: కంపోజిషన్ ఉపయోగించండి (ఫ్యాక్టరీ ఫంక్షన్ విధానంతో మిక్స్ చేసిన ప్రవర్తనల మాదిరి)
|
|
|
|
|
|
**కమ్యూనికేషన్ అమలు చేయండి:**
|
|
|
- **రాబట్టండి** `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 పాయింట్) |
|
|
|
|----------|---------------------|---------------------|------------------------------|
|
|
|
| **ఆర్కిటెక్చర్ ప్యాటరన్** | ఇన్హెరిటెన్స్ లేదా కంపోజిషన్ లో సరైన క్లాస్/ఆబ్జెక్ట్ హైరార్కీ తో అమలు | ఎంచుకున్న ప్యాటర్న్ ను సన్న jooksలతో ఉపయోగిస్తుంది | ప్యాటర్న్ వాడదలచిన ప్రయత్నం కానీ అమలులో పెద్ద సమస్యలు ఉన్నాయి |
|
|
|
| **పబ్/సబ్ అమలు** | EventEmitter సరిగ్గా మల్టిపుల్ మెసేజ్ రకాలతో మరియు సరైన ఈవెంట్ ఫ్లో తో పనిచేస్తుంది | ప్రాథమిక పబ్/సబ్ సిస్టమ్ కొంత ఈవెంట్ హ్యాండ్లింగ్ తో పనిచేస్తుంది | ఈవెంట్ సిస్టమ్ ఉంది కానీ విశ్వసనీయంగా పనిచేయదు |
|
|
|
| **గేమ్ ఫంక్షనాలిటీ** | ఈవెంట్ల ద్వారా కమ్యూనికేట్ చేసే మూడు లేదా అంతకు మించి ఇంటరాక్టివ్ అంశాలు | రెండు ఇంటరాక్టివ్ అంశాలు ప్రాథమిక ఈవెంట్ కమ్యూనికేషన్ తో | ఒక అంశం ఈవెంట్లకు స్పందిస్తుంది లేదా ప్రాథమిక ఇంటరాక్షన్ ఉంది |
|
|
|
| **కోడ్ నాణ్యత** | పరిశుభ్రమైన, బాగుగా వ్యాఖ్యానించిన కోడ్ లాజికల్ ఆర్గనైజేషన్ తో తాజా JavaScript ఉపయోగించి | సాధారణంగా బాగున్న కోడ్ సరైన వ్యాఖ్యలతో | కోడ్ పనిచేస్తుంది కానీ ఆర్గనైజేషన్ లేదా స్పష్టమైన వ్యాఖ్యలు లేవు |
|
|
|
|
|
|
**బోనస్ పాయింట్లు:**
|
|
|
- **సృజనాత్మక గేమ్ యంత్రాంగాలు** ప్యాటరన్ల ఆసక్తికరమైన ఉపయోగాలను ప్రదర్శించేవి
|
|
|
- **అనేక ఇన్పుట్ విధానాలు** (కీబోర్డ్ మరియు మౌస్ ఈవెంట్లు)
|
|
|
- **విస్తరించదగిన ఆర్కిటెక్చర్** దీని ద్వారా కొత్త ఫీచర్లను సులభంగా జోడించవచ్చు
|
|
|
|
|
|
---
|
|
|
|
|
|
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
|
|
|
**అస్పష్టత**:
|
|
|
ఈ పత్రాన్ని AI అనువాద సేవ అయిన [Co-op Translator](https://github.com/Azure/co-op-translator) ఉపయోగించి అనువదించాము. మనం సరిచూడటానికి ప్రయత్నిస్తే కూడా, ఆటోమేటెడ్ అనువాదాల్లో పాపదోషాలు లేదా తప్పులుంటే ఉండొచ్చు. అసలు పత్రం అసలు భాషలో ఉన్నది అధికారిక వనరు గా పరిగణించాలి. కీలక సమాచారం కోసం, ప్రొఫెషనల్ మానవ అనువాదాన్ని సిఫారసు చేస్తాము. ఈ అనువాదం వలన సంఘటనలైన ఎలాంటి అపార్థాలు లేదా తప్పుదోపిడుల బాధ్యత మేము తీసుకోవము.
|
|
|
<!-- CO-OP TRANSLATOR DISCLAIMER END --> |