Sužinokite „Python“ ir elektroniką naudodami „Minecraft Pi Edition“

Sužinokite „Python“ ir elektroniką naudodami „Minecraft Pi Edition“

Ar visada norėjote išmokti koduoti, bet nežinojote, nuo ko pradėti? Sužinokite, kaip valdyti „Minecraft“ „Raspberry Pi“ naudojant „Python“ ir paprastą elektroniką. Štai galutinis rezultatas:





Šiam projektui jums reikės „Pi 2“ ar naujesnės versijos, ir nors daugumą šių užduočių galėtumėte atlikti naudodami komandinę eilutę per „Secure Shell“ (SSH), šioje pamokoje pagrindinis dėmesys bus skiriamas tiesioginiam „Pi“ kodavimui.





Pirmą kartą naudojate „Minecraft“? Nesijaudinkite - čia mūsų „Minecraft“ vadovas pradedantiesiems .





Įvadas į „Minecraft Pi“

„Minecraft“, skirtas „Raspberry Pi“, buvo sukurtas mokytis ir mąstyti (ir tai nemokama). Komplekte yra programų programavimo sąsaja (API), kuri suteikia galimybę kodui lengvai susikalbėti su „Minecraft“. Tai puikiai tinka išmokti koduoti „Python“, taip pat pradėti dirbti su elektronika.

Kas yra Python?

Python yra programavimo kalba. tai yra interpretuojamas , o tai reiškia, kad paleidus „Python“ failą ar programą, kompiuteris pirmiausia turi atlikti nedidelį darbą su failu. Trūkumai yra tai, kad jis gali būti laikomas lėtu, palyginti su kompiliuotomis kalbomis [Broken URL Removed].



Vertimų žodžiu pranašumai yra kodavimo greitis ir jų draugiškumas. Nereikia to pasakyti kompiuteriui duomenis, kuriuos norite išsaugoti, tik tai, kad norite ką nors išsaugoti, o kompiuteris išsiaiškins, ką daryti. Žinoma, yra išimčių, ir tai yra šiek tiek supaprastintas požiūris, tačiau programavimas turėtų būti įdomus! Jei pradėsite gilintis į sudėtingas technines detales, tai gali būti šiek tiek sudėtinga.

„Python“ skiria didžiąsias ir mažąsias raides. Tai svarbu žinoti, nes „Python“ neatpažins objektų net jei jie parašyti teisingai jei byla neteisinga. „Dosomething ()“ neveiks, jei metodas iš tikrųjų vadinamas „DoSomething ()“. „Python“ taip pat naudoja įdubimą . Kitoms programavimo kalboms gali nerūpėti, kiek įtraukų turi jūsų kodas, tuo tarpu „Python“ daro priežiūra. Įtraukos naudojamos „Python“, kur nurodomas kodas. Kitos kalbos gali grupuoti kodą „Garbanotieji skliausteliai“ ({}) - „Python“ jų nenaudoja. „Python“ komentarams naudoja maišą (#), o komentarai naudojami kitiems kūrėjams ar žmonėms, žiūrintiems į kodą, pasakyti, ką daro tam tikra dalis arba kodėl ji reikalinga. Po maišos „Python“ nieko nepaiso.





Galiausiai yra dvi pagrindinės „Python“ versijos - „Python 2.7.x“ ir „Python 3.x“. Tarp šių dviejų yra tam tikrų skirtumų ( kokie skirtumai? ). Šioje pamokoje bus naudojamas „Python 3“.

Pradiniai nustatymai

Pateikti savo „Pi“ jau yra „Raspbian“ sąranka ir paleidimas , nereikia daug pradinės sąrankos.





Atidaryti terminalą ( Meniu> Priedai> Terminalas ) ir paleiskite šią komandą. Visada gera praktika yra nuolat atnaujinti saugyklų sąrašą, o tada bus atsisiųstas naujausias programų sąrašas (jis neatsisiunčia pačių programų, tai padeda „Pi“ žinoti, kokios programos vadinamos ir kur jas rasti).

sudo apt-get update

Dabar atnaujinkite „Pi“ (tai gali užtrukti):

sudo apt-get upgrade

„Python“ ir „Minecraft Pi“ jau įdiegti, tačiau jei „Minecraft Pi“ dėl kokių nors priežasčių neįdiegta, tai paprasta įdiegti:

sudo apt-get install minecraft-pi

Eikite į dokumentus ir sukurkite naują aplanką „Minecraft“:

cd Documents/
mkdir Minecraft

Galite peržiūrėti šio naujo aplanko turinį:

ls

Štai patarimas - jei pradėsite rašyti ir paspausite klavišą TAB, komandų eilutė bandys automatiškai užpildyti pareiškimą.

Galite ištirti kelią į dabartinį katalogą naudodami pwd, kuris reiškia spausdinimo darbo katalogą:

pwd

Paleiskite „Minecraft“ apsilankę Meniu> Žaidimai> Minecraft Pi . Tai jums reikės, bet vėliau grįšite.

Atidarykite „Python 3“ iš Meniu> Programavimas> Python 3 (IDLE) . Ši programa suteikia galimybę paleisti „Python“ komandas ir rašyti programas.

Dabar čia galite įvesti savo „Python“ komandas, tačiau tai nėra labai praktiška. Eiti į Failas> Naujas failas ir tada Failas> Išsaugoti ir išsaugokite tai anksčiau sukurtame aplanke. ( Dokumentai> Minecraft ). Pavadinkime tai ' hello_world.py “. Jums nereikia naudoti .py plėtinio, jis bus pridėtas automatiškai, tačiau tai yra gera praktika.

Jei grįšite į terminalą ir pereisite į „Minecraft“ aplanką, turėtumėte pamatyti ką tik sukurtą failą:

cd Minecraft/
ls

Šį failą galite paleisti taip:

python hello_world

Atkreipkite dėmesį, kaip „python“ yra mažosios raidės. Tai turi būti prieš failo pavadinimą, nes Pi nurodo, kad šis failas yra „Python“, todėl jis turėtų būti vykdomas kaip toks.

Grįžkite į „Python“ redaktorių ir įveskite:

print 'Hello, World!'

Išsaugokite šį failą ir paleiskite jį dar kartą - dabar turėtumėte pamatyti „Sveiki, pasauli!“ pasirodys komandinėje eilutėje - tvarkinga! Spausdinimo komanda tiesiog nurodo „Python“ išvesti šį tekstą dvigubomis kabutėmis. Tai gerai, bet nėra labai naudinga „Minecraft“, susiekime:

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

Dabar, jei išsaugosite ir paleisite šį failą, turėtumėte pamatyti „Sveiki, pasauli!“ pasirodo „Minecraft“ žaidime. Suskaidykime kodą:

from mcpi.minecraft import Minecraft

Ši eilutė nurodo „Python“, kad norite naudoti kito failo kodą. Šis failas „mcpi.minecraft“ buvo sukurtas taip, kad būtų galima lengvai valdyti „Minecraft“.

mc = Minecraft.create()

Ši eilutė sukuria objektą pavadinimu „mc“ („Minecraft“). Turite tai sukurti, kad galėtumėte bendrauti su „Minecraft“ žaidimu - nepakanka tik įtraukti failą.

mc.postToChat('Hello, World!')

Galiausiai ši eilutė liepia „Minecraft“ parašyti šiek tiek teksto į pokalbį. Pabandykite pakeisti „Sveiki, pasauli!“ į ką nors kitą ir pažiūrėkite, kas atsitiks, tačiau nepamirškite įtraukti ir dvigubų kabučių. Jei turite programinės įrangos problemų, tai yra kelios įprastos „Python“ ir „Minecraft Pi“ klaidos:

  • AttributeError - tai klaida, pvz., Pint arba prnt vietoj spausdinimo
  • NameError: pavadinimas „Minecraft“ nėra apibrėžtas - nepamirškite importuoti reikiamų modulių
  • NameError: pavadinimas „true“ nėra apibrėžtas - „Python“ skiria didžiąsias ir mažąsias raides, pakeiskite į „True“
  • socket.error: [Klaida 111] Ryšys atmestas - įsitikinkite, kad „Minecraft“ veikia

Projektai

Dabar, kai žinote „Python“ ir „Minecraft“ pagrindus, sukurkime keletą šaunių projektų. Visą kodą galima atsisiųsti iš „Github“.

Automatizuotas tiltų statytojas

Ši programa veiksmingai pastatys tiltą per vandenį. Kai žaidėjas priartėja prie vandens telkinio, programa keletą blokų pavers akmenimis. Kadangi „Minecraft“ naudoja koordinačių sistemą, labai lengva nustatyti grotuvo vietą ir blokų tipus aplink grotuvą. „Minecraft Pi“ yra šiek tiek ribotas, todėl neįmanoma atnaujinti kelių skirtingų blokų. Tačiau šį elgesį galite lengvai koduoti patys.

Sukurkite naują failą ( Failas> Naujas failas ) ir išsaugokite kaip ' bridge_builder.py “.

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)

Atkreipkite dėmesį, kaip y reikšmė iš tikrųjų žiūri į y - 1. Tai yra grindų lygis. Jei būtų naudojama y vertė, scenarijus ieškotų blokų maždaug kelio lygyje - tai neveiks labai gerai! Mc.getBlock () grąžina nurodytų koordinačių bloko ID. Kadangi x, y ir z yra grotuvo koordinatės, galite jas pridėti arba atimti, kad gautumėte pozicijas aplink grotuvą. Nereikia naudoti x, y ir z reikšmių, galite naudoti bet kurį skaičių, tačiau galbūt nežinote, kaip tas blokas yra susijęs su grotuvu - geriau naudoti vertes, susijusias su grotuvu. Paleiskite šį failą iš komandinės eilutės ir pažiūrėkite, kas atsitiks.

Turėtumėte pamatyti, kad žaidėjui pasiekus vandens telkinį, nedidelis žemės plotas virsta akmeniu. Tai nėra puiku - jūs galite vaikščioti pakankamai greitai, kad sukeltumėte problemą. Tai galite išspręsti paversdami didesnį vandens kiekį į sausumą. Paskutinė „mc.setBlocks“ () metodo dalis yra bloko ID. Vienas iš jų yra akmens bloko ID. Tai galite pakeisti į medieną, žolę ar bet ką. Jei norėtumėte, galite tai lengvai paversti sudėtingu dizainu - galbūt pakabinamu tiltu!

„Super Mining“ mygtukas

Šis pavyzdys padarys trumpą kasybos darbą. Jį sudaro fizinis mygtukas, kurį paspaudus bus iškasti 10 kubelių kubelių. Pradėkime nuo mygtuko. Panašiai kaip „Arduino“ mygtukai, jums reikės nedidelio kiekio elektronikos, visa tai turėtų būti pagrindiniame pradiniame rinkinyje:

  • 1 x duonos lenta
  • 1 x momentinis jungiklis
  • 1 x 220 omų rezistorius
  • Moteriški> vyriški šokinėjimo kabeliai
  • Vyriški> Vyriški šuolių kabeliai

Štai grandinė:

„Pi-Button-Connection“

Šis rezistorius vadinamas „nuleidžiamu“ rezistoriumi. Tai padeda užtikrinti, kad tai, ką „Pi“ mano, yra paspaudžiamas mygtukas, iš tikrųjų yra mygtukas. Jums to nereikia naudoti, tačiau tai rekomenduojama, nes be jo galite rasti daug triukšmo ir klaidingų rodmenų.

Mygtukas yra prijungtas prie bendrosios paskirties įvesties išvesties (GPIO) kaiščio 14. Galite naudoti bet kurį GPIO kaištį, tačiau žiūrėkite pinout pirma, nes jie ne visi yra valdomi naudojant „Pi“ ir šiek tiek skiriasi įvairiuose modeliuose.

Dabar, kai mygtukas prijungtas, atėjo laikas jį išbandyti. Sukurkite naują failą ir išsaugokite jį kaip „ button_test.py “. Pridėkite šį kodą, išsaugokite jį ir paleiskite jį terminale.

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

Paspauskite „Control“ + C. sustabdyti scenarijų. Jei viskas veikia teisingai, turėtumėte pamatyti „MYGTUKAS VEIKIA!“. terminale. Atkreipkite dėmesį, kaip šis bandymas, kaip ir „Minecraft“ modulis, naudoja RPi.GPIO ir laiko modulius. Tai leidžia „Pi“ pasiekti aparatūros kaiščius ir suteikia naudingų laiko funkcijų.

Dabar baigsime likusią kodo dalį. Sukurkite naują failą, pavadintą „ super_mine.py “. Štai kodas:

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 () grąžina žaidėjams dabartines koordinates, kurios vėliau saugomos x, y ir z. The setBlocks () metodas nurodo „Minecraft“ užpildyti visus blokus tarp pradžios ir pabaigos tokiu bloku. Nulis yra oro blokas. Galite pakeisti tai į kitą bloko ID, kad užpildytumėte plotą. Taip pat galite pakeisti koordinates į +100 ar net +1000 blokų, tačiau Pi gali pradėti kovoti, jei per daug išprotėsite. Atkreipkite dėmesį, kaip y + 10 yra vienodas abiejose eilutėse. Tai galite pakeisti į y - 10, jei norite pašalinti blokus po žeme.

Teleportavimas

Kitas paprastas šio mygtuko naudojimas gali būti „teleportavimasis“. „Minecraft Pi Api“ suteikia galimybę nustatyti žaidėjo poziciją. Šis kodas „teleportuos“ grotuvą į iš anksto nustatytą vietą:

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

Atkreipkite dėmesį, kad jo metodas priima tris parametrus; x, y ir z - kad galėtumėte nustatyti bet ką, kad akimirksniu teleportuotumėte grotuvą į tą vietą.

Sukurkite failo super_mine kopiją ( Failas> Išsaugoti kopiją kaip ) ir pakeiskite jį pakeisdami „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

Dabar šis failas turėtų atrodyti taip:

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

Išsaugoti kaip „ teleport.py 'ir bėk.

Naudodami tai galite pastebėti, kad grotuvas užstringa kai kuriuose blokuose, tokiu atveju turėsite koreguoti koordinates pagal žinomą atvirą erdvę (ekrano viršuje kairėje rodoma jūsų dabartinė vieta).

Pastatyti namą

Paskutinė šio mygtuko užduotis yra statyti namą. Panašiai kaip aukščiau pateiktas greitos kasybos pavyzdys, tai tiesiog pakeis grotuvą supančius blokus, kad sukurtų namą. Skirtingoms medžiagoms (langams, sienoms ir pan.) Bus naudojami skirtingi blokų ID. Kad būtų lengviau koduoti, bus sukurtas tvirtas blokas, o tada pašalintas vidus (nustatykite bloką į orą), taip bus sukurtas tuščiaviduris apvalkalas. Galite pridėti papildomų priedų, tokių kaip lova ar durys, tačiau „Minecraft Pi“ projektas yra šiek tiek neišsamus, ir nors šie objektai veikia, kai juos įdeda grotuvas, jie nėra puikūs naudojant „Python“.

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

Išsaugoti kaip „ namas.py 'ir bėk. Jei viskas gerai, turėtumėte pamatyti nedidelį namą (gali tekti apsisukti, kad jį rastumėte). Tai labai paprasta, atidarymas ir kai kurie langai. Teoriškai nėra jokių apribojimų, kiek didelio ar sudėtingo pastato galėtumėte pastatyti.

Sukurkite mini žaidimą

Toliau sukurkime mini žaidimą! Tai bus gana paprasta, kai žaidėjas užlips ant smėlio bloko, po atsitiktinio laiko jis virs lava. Tai geras žaidimas, kurį galite sukurti, nes galite sukurti savo lygius arba juos pakeisti, kad būtų sunkiau. Šio pavyzdžio mygtuko jums nereikės.

Sukurkite naują failą ir išsaugokite jį kaip „ mini_game.py “. Štai kodas:

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

Šis kodas yra geras pradininkas atsitiktinis () funkcija: atsitiktinis.uniforminis (0,1, 2,5) sugeneruos atsitiktinį skaičių nuo 0,1 (1/10 sekundės) iki 2,5 (2 1/2 sekundės). Padidinus šiuos skaičius, žaidimas bus lengvesnis.

Išbandyk! Atsistokite ant smėlio bloko ir netrukus jis virs lava. Tai galėtų būti sudėtingesnio žaidimo pagrindas.

Sukurkite kitą mini žaidimą

Šio žaidimo prielaida paprasta - nestovėkite ant medinių grindų, kai laikas baigiasi. Žaidėjas teleportuojamas į „areną“. Jie yra priversti stovėti vietoje iki žaidimo pradžios. Kai tik laikmatis pasibaigs, grindys pradės virsti vandeniu. Norėdami išgyventi, žaidėjas turi stovėti saugioje zonoje (deimantiniai blokai). Kiekvienas lygis sumažina laikmatį viena sekunde. Po kiekvieno sėkmingo lygio saugi zona tampa didesnė. Patikrinkite žemiau esantį kodą:

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

Išsaugoti kaip „ mini_game_2.py “ir paleisk.

„Pi 2“ turi keletą našumo problemų, kai veikia „Minecraft“. Centrinio procesoriaus (CPU) naudojimo grafikas ( viršutiniame dešiniajame kampe ) niekada nerodo didelės apkrovos, todėl tai turi lemti prastas kūrėjų dizainas ir optimizavimas. Šios problemos nėra susijusios su kodo vykdymu (nes jos tęsiasi, kai „Python“ neveikia), tačiau jas papildo šis mini žaidimas. Jei jūsų „Pi“ tikrai kovoja, galbūt norėsite sumažinti arenos dydį arba perlaikyti „Pi“.

Žaidimai, kuriuose nėra duomenų

Deimantinis detektorius

Padarykime kitą grandinę. Tam bus naudojamas šviesos diodas (LED), kuris užsidegs, kai apačioje yra deimantų (per 15 blokų). Štai ko jums reikia:

  • 1 x duonos lenta
  • 1 x LED
  • 1 x 220 omų rezistorius
  • Moteriški> vyriški šokinėjimo kabeliai
  • Vyriški> Vyriški šuolių kabeliai

Štai grandinė:

Prijunkite anodą (ilgą koją) prie GPIO kaiščio 14. Šis kaištis veikia kaip +5v. Prijunkite katodą (trumpą koją) prie žemės.

Naudojau pigų rūdos žaislą ir pakeičiau jį, nuimdamas galinį dangtelį ir elektroniką, po juo įdėjau šviesos diodą. Tai galite lengvai padaryti nuolatiniu karštais klijais ar kažkuo panašiu.

Išsaugoti šį kodą kaip deimantai.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

Kai po grotuvu (ne daugiau kaip 15 blokų) yra deimantų rūdos blokas, lemputė mirksi.

„ThinkGeek Minecraft Light -Up Blue Stone“ deimantinė rūda - būtinai laikykitės kiaulių PIRKITE DABAR AMAZON

Ar sukūrėte ką nors įdomaus naudodami „Minecraft Pi“? Praneškite man komentaruose, ką padarėte ar kiek pasiekėte žaidimuose.

Tikimės, kad jums patiks mūsų rekomenduojami ir aptarti dalykai! MUO turi filialų ir remiamų partnerysčių, todėl mes gauname dalį pajamų iš kai kurių jūsų pirkinių. Tai neturės įtakos jūsų mokamai kainai ir padės mums pasiūlyti geriausias produktų rekomendacijas.

Dalintis Dalintis „Tweet“ Paštu Ar verta atnaujinti į „Windows 11“?

„Windows“ buvo pertvarkytas. Bet ar to pakanka norint įtikinti jus pereiti nuo „Windows 10“ prie „Windows 11“?

Skaityti toliau
Susijusios temos
  • Pasidaryk pats
  • Programavimas
  • Minecraft
  • Raspberry Pi
  • Elektronika
  • Python
Apie autorių Joe Coburn(Paskelbti 136 straipsniai)

Joe yra baigęs informatikos studijas Linkolno universitete, JK. Jis yra profesionalus programinės įrangos kūrėjas, o kai jis neskraido dronais ir nerašo muzikos, jį dažnai galima rasti fotografuojant ar kuriant vaizdo įrašus.

Daugiau iš Joe Coburn

Prenumeruokite mūsų naujienlaiškį

Prisijunkite prie mūsų naujienlaiškio, kad gautumėte techninių patarimų, apžvalgų, nemokamų el. Knygų ir išskirtinių pasiūlymų!

Norėdami užsiprenumeruoti, spustelėkite čia