నేను 150 లైన్ల JavaScriptతో Pac-Manని రూపొందించాను

ఒక క్లాసిక్ గేమ్‌ను రూపొందించడానికి మీకు సంక్లిష్టమైన AI లేదా ఫిజిక్స్ ఇంజన్‌లు అవసరం లేదు.

నేను కేవలం 150 లైన్ల vanilla JavaScript ఉపయోగించి Pac-Manని రూపొందించాను.

దీని లాజిక్ మూడు సరళమైన అంశాలపై ఆధారపడి ఉంటుంది:

  • టెక్స్ట్ ఆధారిత మేజ్ (text-based maze)
  • గ్రిడ్ మూవ్‌మెంట్ (grid movement)
  • గ్రీడీ ఘోస్ట్ లాజిక్ (greedy ghost logic)

ఈ మేజ్ అనేది స్ట్రింగ్స్ యొక్క ఒక సాధారణ అర్రే (array). క్యారెక్టర్లు గోడలను మరియు పెల్లెట్స్‌ను (pellets) సూచిస్తాయి. మీరు టెక్స్ట్‌ను టైప్ చేయడం ద్వారా లెవల్‌ను ఎడిట్ చేయవచ్చు.

కొలిజన్ డిటెక్షన్ (Collision detection) చాలా సులభం. పిక్సెల్ మ్యాథ్స్ (pixel math) బదులుగా, మీరు గ్రిడ్‌ను తనిఖీ చేస్తారు. తదుపరి గ్రిడ్ సెల్ గోడ కాకపోతే, ప్లేయర్ కదులుతాడు. ఒక చిన్న తనిఖీతోనే అంతా పూర్తవుతుంది.

రెస్పాన్సివ్ కంట్రోల్స్ కోసం ఒక చిన్న బఫర్ (buffer) అవసరం. ప్లేయర్ వెళ్లాలనుకుంటున్న దిశను విడిగా స్టోర్ చేయండి. మార్గం సుగమం అయినప్పుడు మాత్రమే ఆ దిశలోకి మారండి. ఇది మూవ్‌మెంట్ అసహజంగా (stiff) అనిపించకుండా చేస్తుంది.

ఘోస్ట్‌లు (ghosts) గ్రీడీ లాజిక్‌ను ఉపయోగిస్తాయి. అవి సాధ్యమయ్యే మూవ్స్‌ను చూసి, మీకు అత్యంత దగ్గరగా ఉన్న దానిని ఎంచుకుంటాయి. కొంచెం రాండమ్‌నెస్ (randomness) జోడించడం వల్ల మీరు గేమ్‌లో నిలబడటానికి సహాయపడుతుంది. ఈ సరళమైన గణితం ఘోస్ట్‌లు తెలివైనవిగా అనిపించేలా చేస్తుంది.

ఒక టెక్స్ట్ మేజ్, గ్రిడ్ స్టెప్స్ మరియు గ్రీడీ ఘోస్ట్‌లు కలిస్తే ఒక ఆర్కేడ్ ఐకాన్ (arcade icon) తయారవుతుంది.

ఇక్కడ ఆడండి: https://dev48v.infy.uk/game/day11-pacman.html

మూలం: https://dev.to/dev48v/i-built-pac-man-in-150-lines-of-vanilla-javascript-39a0