Minecraft Pi ఎడిషన్‌తో పైథాన్ మరియు ఎలక్ట్రానిక్స్ నేర్చుకోండి

Minecraft Pi ఎడిషన్‌తో పైథాన్ మరియు ఎలక్ట్రానిక్స్ నేర్చుకోండి

మీరు ఎల్లప్పుడూ కోడ్ నేర్చుకోవాలనుకుంటున్నారా కానీ ఎక్కడ ప్రారంభించాలో తెలియదా? పైథాన్ మరియు కొన్ని సాధారణ ఎలక్ట్రానిక్‌లను ఉపయోగించి రాస్‌ప్బెర్రీ పైలో Minecraft ని ఎలా నియంత్రించాలో తెలుసుకోండి. తుది ఫలితం ఇక్కడ ఉంది:





ఈ ప్రాజెక్ట్ కోసం మీకు Pi 2 లేదా కొత్తది అవసరం, మరియు మీరు సురక్షిత షెల్ (SSH) ద్వారా కమాండ్ లైన్ ద్వారా ఈ పనులను చాలా వరకు పూర్తి చేయవచ్చు, ఈ ట్యుటోరియల్ నేరుగా పైపై కోడింగ్‌పై దృష్టి పెడుతుంది.





Minecraft కి కొత్తదా? చింతించకండి - ఇది మాది Minecraft బిగినర్స్ గైడ్ .





Minecraft Pi పరిచయం

రాస్‌ప్బెర్రీ పై కోసం Minecraft నేర్చుకోవడం మరియు టింకరింగ్ కోసం అభివృద్ధి చేయబడింది (మరియు ఇది ఉచితం). ఇది అప్లికేషన్ ప్రోగ్రామింగ్ ఇంటర్‌ఫేస్ (API) తో వస్తుంది, ఇది Minecraft తో కోడ్ సులభంగా మాట్లాడటానికి ఒక మార్గాన్ని అందిస్తుంది. పైథాన్‌లో కోడ్ ఎలా చేయాలో నేర్చుకోవడంతో పాటు ఎలక్ట్రానిక్స్‌తో ప్రారంభించడానికి ఇది అద్భుతమైనది.

పైథాన్ అంటే ఏమిటి?

పైథాన్ ఒక ప్రోగ్రామింగ్ భాష. అది వివరించబడింది , అంటే మీరు పైథాన్ ఫైల్ లేదా ప్రోగ్రామ్‌ని అమలు చేస్తున్నప్పుడు, కంప్యూటర్ ముందుగా ఫైల్‌కు ఒక చిన్న పని చేయాలి. ప్రతికూలతలు ఏమిటంటే సంకలనం చేయబడిన భాషలతో పోల్చినప్పుడు ఇది నెమ్మదిగా పరిగణించబడుతుంది [బ్రోకెన్ URL తీసివేయబడింది].



వివరించబడిన భాషల యొక్క ప్రయోజనాలు కోడింగ్ వేగం మరియు వాటి స్నేహపూర్వకత. మీరు కంప్యూటర్‌కు చెప్పాల్సిన అవసరం లేదు ఏమి మీరు నిల్వ చేయదలిచిన డేటా, మీరు ఏదైనా నిల్వ చేయాలనుకుంటే మరియు కంప్యూటర్ ఏమి చేయాలో కనుగొంటుంది. మినహాయింపులు ఉన్నాయి, మరియు ఇది కొంతవరకు సరళీకృత వీక్షణ, అయితే ప్రోగ్రామింగ్ సరదాగా ఉండాలి! మీరు క్లిష్టమైన సాంకేతిక వివరాలను త్రవ్వడం ప్రారంభిస్తే అది కాస్త శ్రమతో కూడుకున్నది కావచ్చు.

పైథాన్ కేస్ సెన్సిటివ్. ఇది తెలుసుకోవడం ముఖ్యం, ఎందుకంటే పైథాన్ వస్తువులను గుర్తించదు అవి సరిగ్గా వ్రాయబడినప్పటికీ కేసు తప్పు అయితే. ఈ పద్ధతిని వాస్తవానికి 'డోసోమెథింగ్ ()' అని పిలిస్తే 'డోసోమెథింగ్ ()' పనిచేయదు. పైథాన్ ఇండెంటేషన్‌ను కూడా ఉపయోగిస్తుంది . మీ కోడ్‌లో ఎన్ని ఇండెంట్‌లు ఉన్నాయో ఇతర ప్రోగ్రామింగ్ భాషలు పట్టించుకోకపోవచ్చు, అయితే పైథాన్ చేస్తుంది సంరక్షణ. కోడ్ ఎక్కడ ఉందో పైథాన్‌కు చెప్పడానికి ఇండెంట్‌లు ఉపయోగించబడతాయి. ఇతర భాషలు గ్రూప్ కోడ్‌కు 'కర్లీ బ్రేసెస్' ({}) ను ఉపయోగించవచ్చు - పైథాన్ వీటిని ఉపయోగించదు. పైథాన్ వ్యాఖ్యల కోసం హాష్ (#) ను ఉపయోగిస్తుంది మరియు నిర్దిష్ట డెవలపర్‌లు లేదా కోడ్‌ని చూస్తున్న వ్యక్తులకు ఒక నిర్దిష్ట భాగం ఏమి చేస్తుందో లేదా అది ఎందుకు అవసరమో చెప్పడానికి వ్యాఖ్యలు ఉపయోగించబడతాయి. పైథాన్ హాష్ తర్వాత దేనినైనా విస్మరిస్తుంది.





చివరగా, పైథాన్ యొక్క రెండు ప్రధాన వెర్షన్లు ఉన్నాయి - పైథాన్ 2.7.x మరియు పైథాన్ 3.x. రెండింటి మధ్య కొన్ని తేడాలు ఉన్నాయి ( తేడాలు ఏమిటి? ). ఈ ట్యుటోరియల్ పైథాన్ 3 ని ఉపయోగిస్తుంది.

మొదటి ఏర్పాటు

మీ పై అందించడం ఇప్పటికే ఉంది సెటప్ మరియు రస్పిబియన్ రన్నింగ్ , ప్రారంభ సెటప్ చాలా అవసరం లేదు.





ఓపెన్ టెర్మినల్ ( మెనూ> ఉపకరణాలు> టెర్మినల్ ) మరియు ఈ ఆదేశాన్ని అమలు చేయండి. రిపోజిటరీ జాబితాను తాజాగా ఉంచడం ఎల్లప్పుడూ మంచి పద్ధతి, మరియు ఇది తాజా ప్రోగ్రామ్‌ల జాబితాను డౌన్‌లోడ్ చేస్తుంది (ఇది ప్రోగ్రామ్‌లను తాము డౌన్‌లోడ్ చేయదు, ఇది ఏ ప్రోగ్రామ్‌లు పిలువబడుతుందో మరియు వాటిని ఎక్కడ కనుగొనాలో పైకి సహాయపడుతుంది).

sudo apt-get update

ఇప్పుడు Pi ని అప్‌డేట్ చేయండి (దీనికి కొంత సమయం పట్టవచ్చు):

sudo apt-get upgrade

పైథాన్ మరియు Minecraft Pi ఇప్పటికే ఇన్‌స్టాల్ చేయబడ్డాయి, అయితే Minecraft Pi ఏ కారణం చేతనైనా ఇన్‌స్టాల్ చేయకపోతే, ఇన్‌స్టాల్ చేయడం సులభం:

sudo apt-get install minecraft-pi

పత్రాలకు నావిగేట్ చేయండి మరియు 'Minecraft' అనే కొత్త ఫోల్డర్‌ను సృష్టించండి:

cd Documents/
mkdir Minecraft

మీరు ఈ కొత్త ఫోల్డర్‌లోని కంటెంట్‌లను చూడవచ్చు:

ls

ఇక్కడ ఒక చిట్కా ఉంది - మీరు టైప్ చేయడం ప్రారంభించి, TAB కీని నొక్కితే, కమాండ్ లైన్ మీ కోసం స్టేట్‌మెంట్‌ను స్వయంపూర్తి చేయడానికి ప్రయత్నిస్తుంది.

ప్రింట్ వర్కింగ్ డైరెక్టరీ అంటే పిడబ్ల్యుడి ఉపయోగించి ప్రస్తుత డైరెక్టరీకి మీరు మార్గాన్ని పరిశీలించవచ్చు:

pwd

వెళ్లడం ద్వారా Minecraft ని ప్రారంభించండి మెనూ> గేమ్స్> Minecraft Pi . మీకు ఈ రన్నింగ్ అవసరం, కానీ తర్వాత దానికి తిరిగి వస్తారు.

పైథాన్ 3 ను తెరవండి మెనూ> ప్రోగ్రామింగ్> పైథాన్ 3 (IDLE) . ఈ కార్యక్రమం మీరు పైథాన్ ఆదేశాలను అమలు చేయడానికి మరియు ప్రోగ్రామ్‌లను వ్రాయడానికి ఒక మార్గాన్ని అందిస్తుంది.

ఇప్పుడు మీరు మీ పైథాన్ ఆదేశాలను ఇక్కడ టైప్ చేయవచ్చు, కానీ అది చాలా ఆచరణాత్మకమైనది కాదు. కు వెళ్ళండి ఫైల్> కొత్త ఫైల్ ఆపై ఫైల్> సేవ్ మరియు మీరు ఇంతకు ముందు సృష్టించిన ఫోల్డర్‌లో దీన్ని సేవ్ చేయండి. ( పత్రాలు> Minecraft ). దీనిని పిలుద్దాం ' హలో_ప్రపంచం '. మీరు .py పొడిగింపును ఉపయోగించాల్సిన అవసరం లేదు, ఇది స్వయంచాలకంగా జోడించబడుతుంది, కానీ ఇది మంచి అభ్యాసం.

మీరు తిరిగి టెర్మినల్‌కు మారి, మరియు Minecraft ఫోల్డర్‌లోకి నావిగేట్ చేస్తే, మీరు ఇప్పుడే సృష్టించిన ఫైల్‌ను చూడాలి:

cd Minecraft/
ls

మీరు ఈ ఫైల్‌ని ఇలా అమలు చేయవచ్చు:

python hello_world

'పైథాన్' మొత్తం లోయర్ కేస్ ఎలా ఉందో గమనించండి. ఇది ఫైల్ పేరు కంటే ముందు ఉండాలి, ఎందుకంటే పై ఫైల్ పైథాన్ అని Pi కి చెబుతుంది, కనుక దీనిని అలాగే అమలు చేయాలి.

పైథాన్ ఎడిటర్‌కు తిరిగి మారండి మరియు టైప్ చేయండి:

print 'Hello, World!'

ఈ ఫైల్‌ను సేవ్ చేసి, దాన్ని మళ్లీ అమలు చేయండి - మీరు ఇప్పుడు 'హలో, వరల్డ్!' కమాండ్ లైన్‌లో కనిపిస్తాయి - చక్కగా! ప్రింట్ కమాండ్ పైథాన్‌కి కింది టెక్స్ట్‌ను డబుల్ కోట్స్‌లో అవుట్‌పుట్ చేయమని చెబుతుంది. ఇది మంచిది, కానీ Minecraft కోసం ఇది చాలా ఉపయోగకరంగా లేదు, దానిని లింక్ చేద్దాం:

from mcpi.minecraft import Minecraft
mc = Minecraft.create()
mc.postToChat('Hello, World!')

ఇప్పుడు మీరు ఈ ఫైల్‌ను సేవ్ చేసి రన్ చేస్తే, మీరు 'హలో, వరల్డ్!' Minecraft గేమ్‌లో కనిపిస్తాయి. కోడ్‌ను విచ్ఛిన్నం చేద్దాం:

from mcpi.minecraft import Minecraft

మీరు మరొక ఫైల్ నుండి కోడ్‌ని ఉపయోగించాలనుకుంటున్నట్లు ఈ లైన్ పైథాన్‌కు తెలియజేస్తుంది. ఈ mcpi.minecraft ఫైల్ Minecraft సులభంగా నియంత్రణను అనుమతించడానికి అభివృద్ధి చేయబడింది.

mc = Minecraft.create()

ఈ లైన్ 'mc' (Minecraft) అనే వస్తువును సృష్టిస్తుంది. Minecraft గేమ్‌కు కమ్యూనికేషన్‌ను అనుమతించడానికి మీరు దీన్ని సృష్టించాలి - ఫైల్‌ను చేర్చడం మాత్రమే సరిపోదు.

mc.postToChat('Hello, World!')

చివరగా, ఈ లైన్ Minecraft కి చాట్ కోసం కొంత టెక్స్ట్ రాయమని చెబుతుంది. 'హలో, వరల్డ్!' మార్చడానికి ప్రయత్నించండి వేరొకదానికి మరియు ఏమి జరుగుతుందో చూడండి, కానీ డబుల్-కోట్స్ రెండింటినీ చేర్చాలని గుర్తుంచుకోండి. మీకు సాఫ్ట్‌వేర్ సమస్యలు ఉంటే, ఇవి కొన్ని సాధారణ పైథాన్ మరియు Minecraft Pi లోపాలు:

  • AttributeError - ఇది ముద్రణకు బదులుగా పింట్ లేదా ప్రింట్ వంటి అక్షర దోషం
  • NameError: పేరు 'Minecraft' నిర్వచించబడలేదు - మీకు అవసరమైన మాడ్యూల్స్ దిగుమతి చేసుకోవాలని గుర్తుంచుకోండి
  • NameError: పేరు 'true' నిర్వచించబడలేదు - పైథాన్ కేస్ సెన్సిటివ్, 'ట్రూ' కి మార్చండి
  • socket.error: [Errno 111] కనెక్షన్ తిరస్కరించబడింది - Minecraft రన్ అవుతోందని నిర్ధారించుకోండి

ప్రాజెక్టులు

ఇప్పుడు మీరు పైథాన్ మరియు Minecraft యొక్క ప్రాథమికాలను తెలుసుకున్నారు, కొన్ని అద్భుతమైన ప్రాజెక్టులను చేద్దాం. కోడెకాన్ అంతా గితుబ్ నుండి డౌన్‌లోడ్ చేయబడుతుంది.

ఆటోమేటెడ్ బ్రిడ్జ్ బిల్డర్

ఈ కార్యక్రమం నీటిపై వంతెనను సమర్థవంతంగా నిర్మిస్తుంది. ఆటగాడు నీటి మట్టానికి దగ్గరగా ఉన్నప్పుడు, ప్రోగ్రామ్ అనేక బ్లాక్‌లను రాయిగా మారుస్తుంది. Minecraft ఒక కోఆర్డినేట్ సిస్టమ్‌ను ఉపయోగిస్తున్నందున, ప్లేయర్ చుట్టూ ఉన్న బ్లాక్‌ల రకంతో పాటు ప్లేయర్ స్థానాన్ని పొందడం చాలా సులభం. Minecraft Pi కొద్దిగా పరిమితం చేయబడింది, కాబట్టి బహుళ విభిన్న బ్లాక్‌లను పెద్దమొత్తంలో అప్‌డేట్ చేయడం సాధ్యం కాదు. అయితే, ఈ ప్రవర్తనను మీరే సులభంగా కోడ్ చేయవచ్చు.

క్రొత్త ఫైల్‌ను సృష్టించండి ( ఫైల్> కొత్త ఫైల్ ) మరియు 'గా సేవ్ చేయండి బ్రిడ్జ్_బిల్డర్. పై '.

from mcpi.minecraft import Minecraft
mc = Minecraft.create() # create Minecraft Object
while True:
x, y, z = mc.player.getPos() # store player position

# store the surrounding blocks
a = mc.getBlock(x, y - 1, z + 1)
b = mc.getBlock(x, y - 1, z - 1)
c = mc.getBlock(x - 1, y - 1, z)
d = mc.getBlock(x + 1, y - 1, z)
if a == 8 or a == 9 or b == 8 or b == 9 or c == 8 or c == 9 or d == 8 or d == 9:
# 8 or 9 is water. Set surrounding blocks on floor to a solid (stone) if water is found
mc.setBlocks(x, y - 1, z, x + 1, y - 1, z + 1, 1)
mc.setBlocks(x, y - 1, z, x - 1, y - 1, z - 1, 1)
mc.setBlocks(x, y - 1, z, x - 1, y - 1, z + 1, 1)
mc.setBlocks(x, y - 1, z, x + 1, y - 1, z - 1, 1)

Y విలువ వాస్తవానికి y - 1. ని ఎలా చూస్తుందో గమనించండి. ఇది నేల స్థాయి. Y యొక్క విలువను ఉపయోగించినట్లయితే, స్క్రిప్ట్ మోకాలి స్థాయిలో బ్లాక్స్ కోసం చూస్తుంది - ఇది బాగా పనిచేయదు! Mc.getBlock () ఇచ్చిన కోఆర్డినేట్‌ల కోసం బ్లాక్ యొక్క ఐడిని అందిస్తుంది. X, y మరియు z ప్లేయర్ యొక్క కోఆర్డినేట్‌లు కాబట్టి, ప్లేయర్ చుట్టూ స్థానాలను పొందడానికి మీరు వాటి నుండి జోడించవచ్చు లేదా తీసివేయవచ్చు. మీరు x, y మరియు z విలువలను ఉపయోగించాల్సిన అవసరం లేదు, మీరు ఏ సంఖ్యనైనా ఉపయోగించవచ్చు, అయితే నిర్దిష్ట బ్లాక్ ప్లేయర్‌తో ఎలా సంబంధం కలిగి ఉందో మీకు తెలియకపోవచ్చు - ప్లేయర్‌కు సంబంధించి విలువలను ఉపయోగించడం మంచిది. కమాండ్ లైన్ నుండి ఈ ఫైల్‌ను రన్ చేయండి మరియు ఏమి జరుగుతుందో చూడండి.

ఆటగాడు నీటి మట్టానికి చేరుకున్న తర్వాత భూమి యొక్క చిన్న ప్రాంతం రాయిగా మారడాన్ని మీరు చూడాలి. ఇది గొప్పది కాదు - మీరు సమస్యను కలిగించేంత వేగంగా నడవగలుగుతారు. నీటిని పెద్ద పరిమాణంలో భూమికి మార్చడం ద్వారా మీరు దీనిని పరిష్కరించవచ్చు. Mc.setBlocks () పద్ధతి యొక్క చివరి భాగం బ్లాక్ id. ఒకటి రాయి కోసం బ్లాక్ ఐడి. మీరు దీనిని కలప, గడ్డి లేదా ఏదైనా మార్చవచ్చు. మీకు కావాలంటే, మీరు దీన్ని చాలా క్లిష్టమైన డిజైన్‌గా మార్చవచ్చు - బహుశా సస్పెన్షన్ వంతెన కావచ్చు!

సూపర్ మైనింగ్ బటన్

ఈ ఉదాహరణ మైనింగ్ యొక్క చిన్న పని చేస్తుంది. ఇది ఒక భౌతిక బటన్ను కలిగి ఉంటుంది, అది నొక్కినప్పుడు, 10 బ్లాక్స్ క్యూబ్ చేయబడిన గని ఉంటుంది. బటన్‌తో ప్రారంభిద్దాం. ఆర్డునోలోని బటన్‌ల మాదిరిగానే, మీకు చిన్న మొత్తంలో ఎలక్ట్రానిక్స్ అవసరం, ఇవన్నీ ప్రాథమిక స్టార్టర్ కిట్‌లో చూడాలి:

  • 1 x బ్రెడ్‌బోర్డ్
  • 1 x క్షణిక స్విచ్
  • 1 x 220 ఓం రెసిస్టర్
  • ఆడ> మగ జంప్ కేబుల్స్
  • మగ> మగ జంప్ కేబుల్స్

ఇక్కడ సర్క్యూట్ ఉంది:

పై-బటన్-కనెక్షన్

ఈ నిరోధకాన్ని 'పుల్ డౌన్' నిరోధకం అంటారు. బటన్ నొక్కినప్పుడు, నిజంగా బటన్ నొక్కినట్లు పై అనుకుంటున్నట్లు నిర్ధారించడానికి ఇది సహాయపడుతుంది. మీరు దీన్ని ఉపయోగించాల్సిన అవసరం లేదు, అయితే ఇది సిఫార్సు చేయబడింది, ఎందుకంటే మీరు లేకుండా చాలా శబ్దం మరియు తప్పుడు రీడింగులను కనుగొనవచ్చు.

బటన్ జనరల్ పర్పస్ ఇన్‌పుట్ అవుట్‌పుట్ (GPIO) పిన్ 14 కి కనెక్ట్ చేయబడింది. మీరు ఏదైనా GPIO పిన్‌ని ఉపయోగించవచ్చు, అయితే చూడండి పిన్అవుట్ మొదట, అవి అన్నీ పై నుండి నియంత్రించబడవు మరియు మోడళ్ల మధ్య కొద్దిగా మారుతూ ఉంటాయి.

ఇప్పుడు బటన్ కనెక్ట్ చేయబడింది, దాన్ని పరీక్షించడానికి సమయం ఆసన్నమైంది. క్రొత్త ఫైల్‌ను సృష్టించి, దానిని ఇలా సేవ్ చేయండి button_test.py '. ఈ కోడ్‌ని జోడించి, దాన్ని సేవ్ చేసి, ఆపై టెర్మినల్‌లో అమలు చేయండి.

import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM) # tell the Pi what headers to use
GPIO.setup(14, GPIO.IN) # tell the Pi this pin is an input
while True:
if GPIO.input(14) == True: # look for button press
print 'BUTTON WORKS!' # log result
time.sleep(0.5) # wait 0.5 seconds

నొక్కండి నియంత్రణ + సి స్క్రిప్ట్ ఆపడానికి. ప్రతిదీ సరిగ్గా పనిచేస్తుంటే మీరు 'బటన్ వర్క్స్!' టెర్మినల్‌లో. Minecraft మాడ్యూల్ వలె, ఈ పరీక్ష RPi.GPIO మరియు టైమ్ మాడ్యూల్స్‌ని ఎలా ఉపయోగిస్తుందో గమనించండి. ఇవి పైకి హార్డ్‌వేర్ పిన్‌లను యాక్సెస్ చేయడానికి మరియు ఉపయోగకరమైన టైమింగ్ ఫంక్షన్‌లను అందించడానికి అనుమతిస్తాయి.

ఇప్పుడు మిగిలిన కోడ్‌ను పూర్తి చేద్దాం. కొత్త ఫైల్‌కాల్‌ని సృష్టించండి ' super_mine.py '. కోడ్ ఇక్కడ ఉంది:

import RPi.GPIO as GPIO
import time
from mcpi.minecraft import Minecraft
mc = Minecraft.create() # create Minecraft Object
GPIO.setmode(GPIO.BCM) # tell the Pi what headers to use
GPIO.setup(14, GPIO.IN) # tell the Pi this pin is an input
while True:
if GPIO.input(14) == True: # look for button press
x, y, z = mc.player.getPos() # read the player position
mc.setBlocks(x, y, z, x + 10, y + 10, z + 10, 0) # mine 10 blocks
mc.setBlocks(x, y, z, x - 10, y + 10, z - 10, 0) # mine 10 blocks
time.sleep(0.5) # wait 0.5 seconds

mc.player.getPos () ప్లేయర్‌ల ప్రస్తుత కోఆర్డినేట్‌లను తిరిగి ఇస్తుంది, తర్వాత అవి x, y మరియు z లలో నిల్వ చేయబడతాయి. ది సెట్‌బ్లాక్స్ () ప్రారంభం మరియు ముగింపు మధ్య ఉన్న అన్ని బ్లాక్‌లను కింది బ్లాక్‌తో పూరించమని పద్ధతి Minecraft కి చెబుతుంది. జీరో అనేది గాలికి బ్లాక్ ఐడి. ఒక ప్రాంతాన్ని నింపడానికి మీరు దీన్ని మరొక బ్లాక్-ఐడికి మార్చవచ్చు. మీరు కోఆర్డినేట్‌లను +100 లేదా +1000 బ్లాక్‌లకు కూడా మార్చవచ్చు, అయితే మీరు చాలా పిచ్చిగా ఉంటే పై కష్టపడటం ప్రారంభించవచ్చు. రెండు పంక్తులకు y + 10 ఎలా సమానంగా ఉంటుందో గమనించండి. మీరు భూగర్భంలోని బ్లాక్‌లను తొలగించాలనుకుంటే మీరు దీన్ని y - 10 కి మార్చవచ్చు.

టెలిపోర్టింగ్

ఈ బటన్ కోసం మరొక సాధారణ ఉపయోగం 'టెలిపోర్ట్' కావచ్చు. Minecraft Pi Api ప్లేయర్ స్థానాన్ని సెట్ చేయడానికి ఒక మార్గాన్ని అందిస్తుంది. కింది కోడ్ ప్లేయర్‌ను ప్రీసెట్ స్థానానికి 'టెలిపోర్ట్' చేస్తుంది:

mc.player.setPos(0, 0, 0)

అతని పద్ధతి మూడు పారామితులను అంగీకరిస్తుందని గమనించండి; x, y, మరియు z - కాబట్టి ప్లేయర్‌ని తక్షణమే ఆ స్థానానికి టెలిపోర్ట్ చేయడానికి మీరు వీటిని దేనికైనా సెట్ చేయవచ్చు.

సూపర్_మైన్ ఫైల్ కాపీని సృష్టించండి ( ఫైల్> కాపీని ఇలా సేవ్ చేయండి ) మరియు if ని కింది వాటితో భర్తీ చేయడం ద్వారా దాన్ని సవరించండి:

if GPIO.input(14) == True: # look for button press
mc.player.setPos(0, 0, 0) # teleport player
time.sleep(0.5) # wait 0.5 seconds

ఈ ఫైల్ ఇప్పుడు ఇలా ఉండాలి:

import RPi.GPIO as GPIO
from mcpi.minecraft import Minecraft
import time
mc = Minecraft.create() # create Minecraft Object
GPIO.setmode(GPIO.BCM) # tell the Pi what headers to use
GPIO.setup(14, GPIO.IN) # tell the Pi this pin is an input
while True:
if GPIO.input(14) == True: # look for button press
mc.player.setPos(0, 0, 0) # teleport player
time.sleep(0.5) # wait 0.5 seconds

ఇలా సేవ్ చేయండి ' teleport.py 'మరియు పరిగెత్తండి.

దీనిని ఉపయోగించినప్పుడు ప్లేయర్ కొన్ని బ్లాకుల లోపల చిక్కుకున్నట్లు మీరు కనుగొనవచ్చు, ఈ సందర్భంలో మీరు కోఆర్డినేట్‌లను తెలిసిన ఓపెన్ స్పేస్‌కు సర్దుబాటు చేయాలి (స్క్రీన్ ఎగువ ఎడమవైపు మీ ప్రస్తుత స్థానాన్ని చూపుతుంది).

ఇల్లు కట్టుకొను

ఈ బటన్ కోసం ఒక చివరి పని ఇల్లు నిర్మించడం. పైన ఉన్న త్వరిత-మైనింగ్ ఉదాహరణ వలె, ఇది ఇల్లు చేయడానికి ప్లేయర్ చుట్టూ ఉన్న బ్లాక్‌లను భర్తీ చేస్తుంది. వేర్వేరు మెటీరియల్స్ (విండో, గోడలు మొదలైనవి) కోసం వివిధ బ్లాక్-ఐడీలు ఉపయోగించబడతాయి. విషయాలను కోడ్ చేయడానికి సులభతరం చేయడానికి, ఒక ఘన బ్లాక్ సృష్టించబడుతుంది, ఆపై లోపలి భాగం తీసివేయబడుతుంది (బ్లాక్‌ని గాలికి సెట్ చేయండి), ఇది బోలు షెల్‌ను సృష్టిస్తుంది. మీరు మంచం లేదా తలుపు వంటి అదనపు వస్తువులను జోడించవచ్చు, అయితే Minecraft Pi ప్రాజెక్ట్ కొద్దిగా అసంపూర్తిగా ఉంది, మరియు ఈ వస్తువులు ఆటగాడు ఉంచినప్పుడు పనిచేస్తాయి, అయితే పైథాన్‌ను ఉపయోగించినప్పుడు అవి తెలివైనవి కావు.

from mcpi.minecraft import Minecraft
import RPi.GPIO as GPIO
import time
mc = Minecraft.create() # create Minecraft Object
GPIO.setmode(GPIO.BCM) # tell the Pi what headers to use
GPIO.setup(14, GPIO.IN) # tell the Pi this pin is an input
while True:
if GPIO.input(14) == True:
x, y, z = mc.player.getPos()
mc.setBlocks(x + 2, y - 1, z + 2, x + 7, y + 3, z + 8, 5) # make shell
mc.setBlocks(x + 3, y, z + 3, x + 6, y + 2, z + 7, 0) # remove inside
mc.setBlocks(x + 2, y, z + 5, x + 2, y + 1, z + 5, 0) # make doorway
mc.setBlocks(x + 4, y + 1, z + 8, x + 5, y + 1, z + 8, 102) # make window 1
mc.setBlocks(x + 4, y + 1, z + 2, x + 5, y + 1, z + 2, 102) # make window 2
mc.setBlocks(x + 7, y + 1, z + 4, x + 7, y + 1, z + 6, 102) # make window 3

దీనిని ఇలా సేవ్ చేయండి ' house.py 'మరియు పరిగెత్తండి. అంతా బాగానే ఉంది, మీరు ఒక చిన్న ఇల్లు కనిపించడాన్ని చూడాలి (దాన్ని కనుగొనడానికి మీరు చుట్టూ తిరగాల్సి రావచ్చు). ఇది చాలా సులభం, ఓపెనింగ్ మరియు కొన్ని కిటికీలు. సిద్ధాంతంలో, మీరు ఎంత పెద్ద లేదా సంక్లిష్టమైన భవనాన్ని నిర్మించాలో పరిమితి లేదు.

మినీ గేమ్ చేయండి

తరువాత, ఒక చిన్న గేమ్ చేద్దాం! ఇది చాలా సులభం, ప్లేయర్ ఇసుక బ్లాక్‌పై అడుగుపెట్టినప్పుడు, అది యాదృచ్ఛిక సమయం తర్వాత లావాగా మారుతుంది. ఇది మీ స్వంత స్థాయిలను రూపొందించుకోవచ్చు లేదా విషయాలను కష్టతరం చేయడానికి సవరించవచ్చు కనుక ఇది ఒక మంచి గేమ్. ఈ ఉదాహరణ కోసం మీకు బటన్ అవసరం లేదు.

క్రొత్త ఫైల్‌ను సృష్టించి, దానిని ఇలా సేవ్ చేయండి mini_game.py '. కోడ్ ఇక్కడ ఉంది:

from mcpi.minecraft import Minecraft
import random
import time
mc = Minecraft.create() # create Minecraft Object
while True:
x, y, z = mc.player.getPos()
block_under_player = mc.getBlock(x, y - 1, z)

if block_under_player == 12:
# player standing on sand, start the timer
random_time = random.uniform(0.1, 2.5) # generate random number
time.sleep(random_time); # wait
mc.setBlock(x, y - 1, z, 11) # turn it into lava

ఈ కోడ్ ఒక మంచి స్టార్టర్ యాదృచ్ఛిక () ఫంక్షన్: random.uniform (0.1, 2.5) 0.1 (1/10 సెకను) మరియు 2.5 (2 1/2 సెకన్లు) మధ్య యాదృచ్ఛిక సంఖ్యను ఉత్పత్తి చేస్తుంది. ఈ సంఖ్యలను పెంచడం ఆటను సులభతరం చేస్తుంది.

ప్రయత్నించి చూడండి! ఇసుక బ్లాక్ మీద నిలబడండి, అది త్వరలో లావాగా మారుతుంది. ఇది మరింత క్లిష్టమైన ఆటకు ఆధారం కావచ్చు.

మరొక మినీ గేమ్ చేయండి

ఈ ఆట ఆవరణ చాలా సులభం - సమయం ముగిసినప్పుడు చెక్క నేలపై నిలబడవద్దు. ప్లేయర్ ఒక 'అరేనా'లోకి టెలిపోర్ట్ చేయబడుతుంది. ఆట ప్రారంభమయ్యే వరకు వారు నిలబడవలసి వస్తుంది. ఒకసారి ప్రారంభించిన తర్వాత, టైమర్ అయిపోయిన తర్వాత నేల నీటికి మారుతుంది. మనుగడ సాగించడానికి ప్లేయర్ తప్పనిసరిగా సేఫ్ జోన్‌లో (డైమండ్ బ్లాక్స్) నిలబడి ఉండాలి. ప్రతి స్థాయి టైమర్‌ని ఒక సెకను తగ్గిస్తుంది. ప్రతి విజయవంతమైన స్థాయి తర్వాత సురక్షిత ప్రాంతం పెద్దది అవుతుంది. దిగువ కోడ్‌ని తనిఖీ చేయండి:

import time
import random
from mcpi.minecraft import Minecraft
mc = Minecraft.create() # create Minecraft Object
# clear area
mc.setBlocks(-10, 1, -10, 25, 5, 25, 0)
# create arena shell
mc.setBlocks(0, 0, 0, 25, 10, 25, 17)
# hollow out arena
mc.setBlocks(1, 1, 1, 24, 10, 24, 0)
# move player to arena
mc.player.setPos(14, 25, 20) # teleport player
# make them stay put
# teleport player to start position every 1/10th second.
# do this for 5 seconds then start the game
time.sleep(2)
total_wait = 0
mc.postToChat('Waiting to Start')
while total_wait <5:
mc.player.setPos(14, 1, 20) # teleport player
time.sleep(0.1)
total_wait += 0.1
mc.postToChat('BEGIN!')
# 10 levels
for level in range(10):
x, y, z = mc.player.getPos()
level_time = 10 - level # reduce time by 1 second for each level
mc.postToChat('Level - ' + str(level + 1) + ' start')
# build floor
mc.setBlocks(0, 0, 0, 25, 0, 25, 17)
# make safe area
safe_area_start = random.uniform(0, 22)
safe_area_end = random.uniform(0, 22)
mc.setBlocks(safe_area_start, 0, safe_area_end, safe_area_start + level, 0, safe_area_end + level, 57)
elapsed_time = 0
while elapsed_time <10:
x, y, z = mc.player.getPos()
time.sleep(0.25)
elapsed_time += 0.25
# check player is still on floor
if y <0.75:
mc.postToChat('Game Over')
break;
else:
# remove floor
mc.setBlocks(-10, 0, -10, 25, 0, 25, 8)
# put safe area back
mc.setBlocks(safe_area_start, 0, safe_area_end, safe_area_start + level, 0, safe_area_end + level, 57)
time.sleep(2.5)
continue
break

దీనిని ఇలా సేవ్ చేయండి ' mini_game_2.py 'మరియు దానిని అమలు చేయండి.

Minecraft నడుస్తున్నప్పుడు Pi 2 కొన్ని పనితీరు సమస్యలను కలిగి ఉంది. సెంట్రల్ ప్రాసెసింగ్ యూనిట్ (CPU) వినియోగ గ్రాఫ్ ( ఎగువ కుడి మూలలో ) భారీ భారాన్ని ఎన్నడూ చూపించదు, కాబట్టి ఇది డెవలపర్‌ల పేలవమైన డిజైన్ మరియు ఆప్టిమైజేషన్‌ల వరకు ఉండాలి. ఈ సమస్యలు రన్నింగ్ కోడ్‌తో సంబంధం లేనివి (పైథాన్ రన్ కానప్పుడు అవి కొనసాగుతాయి), అయితే అవి ఈ మినీ గేమ్ ద్వారా మిశ్రమంగా ఉంటాయి. మీ పై నిజంగా కష్టపడుతుంటే మీరు అరేనా పరిమాణాన్ని తగ్గించాలని లేదా మీ పైని ఓవర్‌లాక్ చేయాలనుకోవచ్చు.

xbox one ఎప్పుడు బయటకు వచ్చింది

డైమండ్ డిటెక్టర్

మరొక సర్క్యూట్ చేద్దాం. కింద (15 బ్లాక్‌లలోపు) వజ్రాలు ఉన్నప్పుడు వెలిగించడానికి ఇది లైట్ ఎమిటింగ్ డయోడ్ (LED) ని ఉపయోగిస్తుంది. మీకు కావలసింది ఇక్కడ ఉంది:

  • 1 x బ్రెడ్‌బోర్డ్
  • 1 x LED
  • 1 x 220 ఓం రెసిస్టర్
  • ఆడ> మగ జంప్ కేబుల్స్
  • మగ> మగ జంప్ కేబుల్స్

ఇక్కడ సర్క్యూట్ ఉంది:

యానోడ్ (లాంగ్ లెగ్) ని GPIO పిన్ 14 కి కనెక్ట్ చేయండి. ఈ పిన్ +5v లాగా పనిచేస్తుంది. కాథోడ్ (షార్ట్ లెగ్) నేలకు కనెక్ట్ చేయండి.

నేను చౌకైన ధాతువు బొమ్మను ఉపయోగించాను మరియు వెనుక కవర్ మరియు ఎలక్ట్రానిక్స్ తీసివేయడం ద్వారా దాన్ని సవరించాను, అప్పుడు నేను దాని కింద ఒక LED ని ఉంచాను. వేడి జిగురు లేదా ఇలాంటి వాటితో మీరు దీన్ని సులభంగా శాశ్వతంగా చేయవచ్చు.

ఈ కోడ్‌ని ఇలా సేవ్ చేయండి వజ్రాలు. py ':

import RPi.GPIO as GPIO
import time
from mcpi.minecraft import Minecraft
mc = Minecraft.create() # create Minecraft Object
led_pin = 14 # store the GPIO pin number
GPIO.setmode(GPIO.BCM) # tell the Pi what headers to use
GPIO.setup(14, GPIO.OUT) # tell the Pi this pin is an output
while True:
# repeat indefinitely
x, y, z = mc.player.getPos()
for i in range(15):
# look at every block until block 15
if mc.getBlock(x, y - i, z) == 56:
GPIO.output(led_pin, True) # turn LED on
time.sleep(0.25) # wait
GPIO.output(led_pin, False) # turn LED off
time.sleep(0.25) # wait

ప్లేయర్ కింద (15 బ్లాకుల లోపల) డైమండ్ ఓర్ బ్లాక్ ఉన్నప్పుడు లైట్ ఫ్లాష్ అవుతుంది.

థింక్‌గీక్ మిన్‌క్రాఫ్ట్ లైట్ -అప్ బ్లూ స్టోన్ డైమండ్ ఒరే - పిగ్‌మెన్‌ను దూరంగా ఉంచడం ఖాయం ఇప్పుడు అమెజాన్‌లో కొనండి

మీరు Minecraft Pi తో ఏదైనా బాగున్నారా? వ్యాఖ్యలలో మీరు ఏమి చేశారో లేదా ఆటలలో మీరు ఎంత దూరం చేశారో నాకు తెలియజేయండి.

మేము సిఫార్సు చేసిన మరియు చర్చించే అంశాలు మీకు నచ్చుతాయని మేము ఆశిస్తున్నాము! MUO అనుబంధ మరియు ప్రాయోజిత భాగస్వామ్యాలను కలిగి ఉంది, కాబట్టి మీ కొన్ని కొనుగోళ్ల నుండి మేము ఆదాయంలో వాటాను స్వీకరిస్తాము. ఇది మీరు చెల్లించే ధరను ప్రభావితం చేయదు మరియు ఉత్తమమైన ఉత్పత్తి సిఫార్సులను అందించడంలో మాకు సహాయపడుతుంది.

షేర్ చేయండి షేర్ చేయండి ట్వీట్ ఇమెయిల్ ఇది విండోస్ 11 కి అప్‌గ్రేడ్ చేయడం విలువైనదేనా?

Windows పునesరూపకల్పన చేయబడింది. విండోస్ 10 నుండి విండోస్ 11 కి మారడానికి మిమ్మల్ని ఒప్పించడానికి ఇది సరిపోతుందా?

తదుపరి చదవండి
సంబంధిత అంశాలు
  • DIY
  • ప్రోగ్రామింగ్
  • Minecraft
  • రాస్ప్బెర్రీ పై
  • ఎలక్ట్రానిక్స్
  • పైథాన్
రచయిత గురుంచి జో కోబర్న్(136 కథనాలు ప్రచురించబడ్డాయి)

జో UK లోని లింకన్ విశ్వవిద్యాలయం నుండి కంప్యూటర్ సైన్స్‌లో గ్రాడ్యుయేట్. అతను ఒక ప్రొఫెషనల్ సాఫ్ట్‌వేర్ డెవలపర్, మరియు అతను డ్రోన్‌లను ఎగురవేయనప్పుడు లేదా సంగీతం వ్రాయనప్పుడు, అతను తరచుగా ఫోటోలు తీయడం లేదా వీడియోలను ఉత్పత్తి చేయడం చూడవచ్చు.

జో కోబర్న్ నుండి మరిన్ని

మా వార్తాలేఖకు సభ్యత్వాన్ని పొందండి

టెక్ చిట్కాలు, సమీక్షలు, ఉచిత ఈబుక్‌లు మరియు ప్రత్యేకమైన డీల్స్ కోసం మా వార్తాలేఖలో చేరండి!

సభ్యత్వం పొందడానికి ఇక్కడ క్లిక్ చేయండి
వర్గం Diy