11 KiB
గేమ్ను మాక్ అప్ చేయండి: డిజైన్ ప్యాటరన్లు అప్లై చేయండి
అసైన్మెంట్ సమీక్ష
డిజైన్ ప్యాటరన్లపై మీ కొత్త జ్ఞానాన్ని ఉపయోగించి ఒక సింపుల్ గేమ్ ప్రొటోటైప్ సృష్టించండి! ఈ అసైన్మెంట్ మీరు ఆర్కిటెక్చరల్ ప్యాటరన్లు (ఇన్హెరిటెన్స్ లేదా కంపోజిషన్) మరియు లెషన్లో నేర్చుకున్న పబ్/సబ్ కమ్యూనికేషన్ సిస్టమ్ను ప్రాక్టీస్ చేయడంలో సహాయపడుతుంది.
సూచనలు
ఈ లెషన్లో ఉన్న డిజైన్ ప్యాటరన్లను ప్రదర్శించే ఒక సింపుల్ గేమ్ ప్రాతినిధ్యం సృష్టించండి. మీ గేమ్ ఫంక్షనల్గా ఉండాలి కానీ క్లిష్టమైన గ్రాఫిక్స్ అవసరం లేదు – క్రింద ఉన్న ఆర్కిటెక్చర్ మరియు కమ్యూనికేషన్ ప్యాటరన్లపై దృష్టి పెట్టండి.
అవసరాలు
మీ ఆర్కిటెక్చర్ ప్యాటరన్ ఎంచుకోండి:
- ఎంపిక ఏ: క్లాస్-ఆధారిత ఇన్హెరిటెన్స్ ఉపయోగించండి (ఉదాహరణకు
GameObject→Movable→Heroమాదిరి) - ఎంపిక బి: కంపోజిషన్ ఉపయోగించండి (ఫ్యాక్టరీ ఫంక్షన్ విధానంతో మిక్స్ చేసిన ప్రవర్తనల మాదిరి)
కమ్యూనికేషన్ అమలు చేయండి:
- రాబట్టండి
EventEmitterక్లాస్ పబ్/సబ్ మెసేజింగ్ కోసం - సెట్ చేయండి కనీసం 2-3 వేర్వేరు మెసేజ్ రకాలును (ఉదా:
PLAYER_MOVE,ENEMY_SPAWN,SCORE_UPDATE) - కనెక్ట్ చేయండి యూజర్ ఇన్పుట్ (కీబోర్డ్/మౌస్) ను గేమ్ ఈవెంట్లతో ఈవెంట్ సిస్టమ్ ద్వారా
గేమ్ అంశాలు చేర్చండి:
- కనీసంగా ఒక ప్లేయర్ నియంత్రిత క్యారెక్టర్
- కనీసం ఒకటి మరొక గేమ్ ఆబ్జెక్ట్ (ఎనమీ, సేకరించే వస్తువు లేదా పరిసర అంశం)
- ఆబ్జెక్టుల మధ్య ప్రాథమిక ఇంటరాక్షన్ (కొలిజన్, సేకరణ, లేదా కమ్యూనికేషన్)
సూచించిన గేమ్ ఆలోచనలు
పరిగణించదగిన సింపుల్ గేమ్స్:
- స్నేక్ గేమ్ – స్నేక్ సెగ్మెంట్లు తలను అనుసరిస్తాయి, ఆహారం యాదృచ్ఛికంగా స్పాన్ అవుతుంది
- పాంగ్ వెరియేషన్ – ప్యాడిల్ ఇన్పుట్కు స్పందిస్తుంది, బంతి గోడలకు తగిలి తిరుగుతుంది
- కలెక్టర్ గేమ్ – ప్లేయర్ వస్తువులను సేకరించే సమయంలో అడ్డంకులను తప్పుకుంటూ మళ్ళిశీలిస్తాడు
- టవర్ డిఫెన్స్ బేసిక్స్ – టవర్లు పొడవుగా నడిచే శత్రువులను గుర్తించి వాటిపై షూట్ చేస్తాయి
కోడ్ నిర్మాణ మార్గదర్శకాలు
// ఉదాహరణ ప్రారంభ నిర్మాణం
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 */ }
మీ అమలును పరీక్షించడం
మీ కోడ్ పనిచేస్తుందా అని సరిచూడండి:
- ఫలితంగా ఆబ్జెక్టులు ఈవెంట్లు ట్రిగ్గర్ అయినప్పుడు కదిలితే లేదా మారితే
- పట్టుకుని ఉండు ఒకే ఈవెంట్కు అనేక ఆబ్జెక్టులు స్పందిస్తాయేమో
- తీయండి మీరు కొత్త ప్రవర్తనలు చేర్చడంలో ప్రస్తుతం ఉన్న కోడ్ మార్చాల్సిన అవసరం లేకుండా చేయగలుగుతారు
- ఖచ్చితంగా చూసుకోండి మీ కీబోర్డ్/మౌస్ ఇన్పుట్ గేమ్ ఈవెంట్లను సరికొత్తగా ట్రిగ్గర్ చేస్తుందని
సమర్పణ మార్గదర్శకాలు
మీ సమర్పణలో ఉండాలి:
- JavaScript ఫైల్(లు) మీ గేమ్ అమలుతో
- HTML ఫైల్ మీ గేమ్ని రన్ చేసి పరీక్షించడానికి (సింపుల్ కావచ్చు)
- వ్యాఖ్యలు మీరు ఎంచుకున్న ప్యాటరన్ ఏది మరియు ఎందుకు ఎంచుకున్నారో వివరిస్తూ
- సంక్షిప్త డాక్యుమెంటేషన్ మీ మెసేజ్ రకాల గురించి మరియు అవి ఏవీ చేస్తాయో
రూబ్రిక్
| ప్రమాణం | ఉదాత్తమైనది (3 పాయింట్లు) | సరైనది (2 పాయింట్లు) | మెరుగుపరచాల్సినదే (1 పాయింట్) |
|---|---|---|---|
| ఆర్కిటెక్చర్ ప్యాటరన్ | ఇన్హెరిటెన్స్ లేదా కంపోజిషన్ లో సరైన క్లాస్/ఆబ్జెక్ట్ హైరార్కీ తో అమలు | ఎంచుకున్న ప్యాటర్న్ ను సన్న jooksలతో ఉపయోగిస్తుంది | ప్యాటర్న్ వాడదలచిన ప్రయత్నం కానీ అమలులో పెద్ద సమస్యలు ఉన్నాయి |
| పబ్/సబ్ అమలు | EventEmitter సరిగ్గా మల్టిపుల్ మెసేజ్ రకాలతో మరియు సరైన ఈవెంట్ ఫ్లో తో పనిచేస్తుంది | ప్రాథమిక పబ్/సబ్ సిస్టమ్ కొంత ఈవెంట్ హ్యాండ్లింగ్ తో పనిచేస్తుంది | ఈవెంట్ సిస్టమ్ ఉంది కానీ విశ్వసనీయంగా పనిచేయదు |
| గేమ్ ఫంక్షనాలిటీ | ఈవెంట్ల ద్వారా కమ్యూనికేట్ చేసే మూడు లేదా అంతకు మించి ఇంటరాక్టివ్ అంశాలు | రెండు ఇంటరాక్టివ్ అంశాలు ప్రాథమిక ఈవెంట్ కమ్యూనికేషన్ తో | ఒక అంశం ఈవెంట్లకు స్పందిస్తుంది లేదా ప్రాథమిక ఇంటరాక్షన్ ఉంది |
| కోడ్ నాణ్యత | పరిశుభ్రమైన, బాగుగా వ్యాఖ్యానించిన కోడ్ లాజికల్ ఆర్గనైజేషన్ తో తాజా JavaScript ఉపయోగించి | సాధారణంగా బాగున్న కోడ్ సరైన వ్యాఖ్యలతో | కోడ్ పనిచేస్తుంది కానీ ఆర్గనైజేషన్ లేదా స్పష్టమైన వ్యాఖ్యలు లేవు |
బోనస్ పాయింట్లు:
- సృజనాత్మక గేమ్ యంత్రాంగాలు ప్యాటరన్ల ఆసక్తికరమైన ఉపయోగాలను ప్రదర్శించేవి
- అనేక ఇన్పుట్ విధానాలు (కీబోర్డ్ మరియు మౌస్ ఈవెంట్లు)
- విస్తరించదగిన ఆర్కిటెక్చర్ దీని ద్వారా కొత్త ఫీచర్లను సులభంగా జోడించవచ్చు
అస్పష్టత:
ఈ పత్రాన్ని AI అనువాద సేవ అయిన Co-op Translator ఉపయోగించి అనువదించాము. మనం సరిచూడటానికి ప్రయత్నిస్తే కూడా, ఆటోమేటెడ్ అనువాదాల్లో పాపదోషాలు లేదా తప్పులుంటే ఉండొచ్చు. అసలు పత్రం అసలు భాషలో ఉన్నది అధికారిక వనరు గా పరిగణించాలి. కీలక సమాచారం కోసం, ప్రొఫెషనల్ మానవ అనువాదాన్ని సిఫారసు చేస్తాము. ఈ అనువాదం వలన సంఘటనలైన ఎలాంటి అపార్థాలు లేదా తప్పుదోపిడుల బాధ్యత మేము తీసుకోవము.