Impara Python ed elettronica con Minecraft Pi Edition
Hai sempre desiderato imparare a programmare ma non sapevi da dove cominciare? Scopri come controllare Minecraft sul Raspberry Pi usando Python e alcuni semplici dispositivi elettronici. Ecco il risultato finale:
Avrai bisogno di un Pi 2 o più recente per questo progetto, e mentre potresti completare la maggior parte di queste attività tramite la linea di comando su Secure Shell (SSH), questo tutorial si concentrerà sulla codifica direttamente sul Pi.
Scheda madre Raspberry Pi 3 Model B scheda madre Raspberry Pi 3 Model B Acquista ora su Amazon $ 34,49
Nuovo a Minecraft? Non preoccuparti - ecco la nostra guida per principianti Minecraft La guida per principianti (Latecomer) per Minecraft La (principiante) Guida per principianti Per Minecraft Se sei in ritardo per la festa però, non ti preoccupare - questa guida per principianti ti ha coperto. Leggi di più .
Introduzione a Minecraft Pi
Minecraft per Raspberry Pi è stato sviluppato per l'apprendimento e il bricolage (ed è gratuito). Viene fornito con una API (Application Programming Interface) che consente al codice di comunicare facilmente con Minecraft. È geniale per imparare a codificare in Python, così come iniziare con l'elettronica Elettronica per principianti: 10 competenze che devi conoscere Elettronica per principianti: 10 competenze che devi sapere Molti di noi non hanno mai nemmeno toccato un saldatore - ma fare cose può incredibilmente gratificante. Ecco dieci delle più elementari competenze elettroniche fai-da-te per aiutarti a iniziare. Leggi di più .
Cos'è Python?
Python è un linguaggio di programmazione. È interpretato, il che significa che quando si esegue un file o un programma Python, il computer deve prima eseguire un piccolo lavoro sul file. Gli svantaggi sono che può essere considerato lento rispetto alle lingue compilate.
I vantaggi delle lingue interpretate sono la velocità della codifica e la loro cordialità. Non hai bisogno di dirlo al computer che cosa dati che vuoi memorizzare, solo che vuoi memorizzare qualcosa e il computer capirà cosa fare. Ci sono eccezioni, naturalmente, e questa è una visione un po 'semplificata, tuttavia la programmazione dovrebbe essere divertente! Se si inizia a scavare nei dettagli tecnici complessi può diventare un po 'laborioso.
Python è case sensitive. Questo è importante sapere, poichè Python non riconoscerà gli oggetti anche se sono scritti correttamente se il caso è sbagliato. “Fare qualcosa()” non funzionerà se il metodo viene effettivamente chiamato “Fare qualcosa()”. Python usa anche indentazione. Altri linguaggi di programmazione potrebbero non interessarsi a quanti rientri il tuo codice ha, mentre Python fa cura. I rientri sono usati per dire a Python dove il codice appartiene. Altre lingue possono usare “Parentesi graffe” () al codice di gruppo: Python non li usa. Python usa un hash (#) per i commenti, e i commenti sono usati per dire ad altri sviluppatori o persone che guardano al codice cosa fa una particolare parte, o perché è necessaria. Python ignora qualsiasi cosa dopo un hash.
Infine, ci sono due versioni principali di Python: Python 2.7.xe Python 3.x. Ci sono alcune differenze tra i due (quali sono le differenze?). Questo tutorial utilizzerà Python 3.
Configurazione iniziale
Fornire il tuo Pi è già configurato ed eseguito Raspbian Come installare un sistema operativo sul tuo Raspberry Pi Come installare un sistema operativo sul tuo Raspberry Pi Ecco come ottenere un nuovo sistema operativo installato e funzionante sul tuo Pi - e come clonare la tua configurazione perfetta per un rapido ripristino di emergenza. Per saperne di più, non c'è bisogno di molte impostazioni iniziali.
Terminale aperto (Menu> Accessori> Terminale) ed eseguire questo comando. È sempre buona norma mantenere aggiornato l'elenco dei repository, e questo scaricherà l'ultimo elenco di programmi (non scaricherà i programmi stessi, questo aiuterà il Pi a sapere quali programmi sono chiamati e dove trovarli).
sudo apt-get update
Ora aggiorna il Pi (potrebbe volerci un po '):
sudo apt-get upgrade
Python e Minecraft Pi sono già installati, tuttavia se Minecraft Pi non è installato per nessuna ragione, è semplice installare 5 modi per installare software su Raspberry Pi 5 modi per installare software su Raspberry Pi Per fare qualsiasi cosa con un Raspberry Pi, devi è necessario sapere come installare un sistema operativo e il software per eseguirlo. Se sei nuovo a Linux, questo può essere scoraggiante. Leggi di più :
sudo apt-get install minecraft-pi
Passare ai documenti e creare una nuova cartella chiamata “Minecraft”:
cd Documenti / mkdir Minecraft
È possibile visualizzare il contenuto di questa nuova cartella:
ls
Ecco un suggerimento: se inizi a digitare e premi il tasto TAB, la riga di comando tenterà di completare automaticamente l'istruzione per te.
È possibile esaminare il percorso della directory corrente utilizzando pwd, che sta per Stampa directory di lavoro:
pwd
Avvia Minecraft andando a Menu> Giochi> Minecraft Pi. Avrai bisogno di questa corsa, ma tornerai più tardi.
Apri Python 3 da Menu> Programmazione> Python 3 (IDLE). Questo programma fornisce un modo per eseguire comandi Python e scrivere programmi.
Ora puoi digitare i tuoi comandi Python qui, ma non è molto pratico. Vai a File> Nuovo file e poi File> Salva e salvarlo nella cartella creata in precedenza. (Documenti> Minecraft). Chiamiamolo “hello_world.py“. Non devi usare l'estensione .py, questa sarà aggiunta automaticamente, ma è una buona pratica.
Se torni al terminale e navighi nella cartella Minecraft dovresti vedere il file appena creato:
cd Minecraft / ls
Puoi eseguire questo file in questo modo:
python hello_world
Nota come “pitone” è tutto in minuscolo. Questo deve essere prima del nome del file, poiché dice al Pi che il seguente file è Python, quindi dovrebbe essere eseguito come tale.
Tornare all'editor Python e digitare:
stampa "Ciao, Mondo!"
Salva questo file ed eseguilo di nuovo, ora dovresti vedere “Ciao mondo!” apparire nella riga di comando - pulito! Il comando print dice semplicemente a Python di produrre il seguente testo tra virgolette. Questo è buono, ma non terribilmente utile per Minecraft, collegiamolo:
da mcpi.minecraft import Minecraft mc = Minecraft.create () mc.postToChat ("Hello, World!")
Ora se salvi ed esegui questo file, dovresti vedere “Ciao mondo!” apparire nel gioco Minecraft. Analizziamo il codice:
da mcpi.minecraft import Minecraft
Questa riga dice a Python che vuoi usare il codice da un altro file. Questo file mcpi.minecraft è stato sviluppato per consentire un facile controllo di Minecraft.
mc = Minecraft.create ()
Questa linea crea un oggetto chiamato “mc” (Minecraft). Devi creare questo per consentire la comunicazione al gioco Minecraft - non è sufficiente solo per includere il file.
mc.postToChat ("Hello, World!")
Infine, questa linea dice a Minecraft di scrivere del testo nella chat. Prova a cambiare “Ciao mondo!” a qualcos'altro e vedi cosa succede, ma ricorda di includere entrambe le virgolette. Se si verificano problemi software, si tratta di errori comuni di Python e Minecraft Pi:
- AttributeError - questo è un errore di battitura, come pint o prnt al posto della stampa
- NameError: name 'Minecraft' non è definito - ricorda di importare i moduli necessari
- NameError: il nome 'true' non è definito - Python fa distinzione tra maiuscole e minuscole, cambia in “Vero”
- socket.error: [Errno 111] Connessione rifiutata - Assicurati che Minecraft sia in esecuzione
progetti
Ora che conosci le basi di Python e Minecraft, facciamo progetti interessanti. Tutto il codice può essere scaricato da Github.
Automated Bridge Builder
Questo programma creerà effettivamente un ponte sull'acqua. Quando il giocatore si avvicina a un corpo d'acqua, il programma convertirà diversi blocchi in pietra. Dato che Minecraft usa un sistema di coordinate, è molto facile ottenere la posizione del giocatore, insieme al tipo di blocchi attorno al giocatore. Minecraft Pi è leggermente limitato, quindi non è possibile aggiornare più blocchi diversi alla rinfusa. Tuttavia, puoi facilmente codificare questo comportamento da solo.
Crea un nuovo file (File> Nuovo file) e salvarlo come “bridge_builder.py“.
da mcpi.minecraft import Minecraft mc = Minecraft.create () # crea oggetto Minecraft mentre True: x, y, z = mc.player.getPos () # store posizione giocatore # memorizza i blocchi circostanti 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) se a == 8 o a == 9 o b == 8 o b == 9 o c == 8 o c == 9 o d == 8 o d == 9: # 8 o 9 è acqua. Imposta i blocchi circostanti sul pavimento su un solido (pietra) se viene rilevata l'acqua 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)
Si noti come il valore y stia effettivamente osservando y - 1. Questo è il livello del pavimento. Se il valore di y è stato utilizzato, la sceneggiatura cercherebbe blocchi a livello del ginocchio - non funzionerebbe molto bene! Mc.getBlock () restituisce l'id di un blocco per le coordinate date. Poiché x, yez sono le coordinate del giocatore, puoi aggiungere o sottrarre da esse per ottenere posizioni attorno al giocatore. Non devi usare i valori x, yez, puoi usare qualsiasi numero, tuttavia non puoi sapere in che modo quel particolare blocco si riferisce al giocatore - è meglio usare valori relativi al giocatore. Esegui questo file dalla riga di comando e vedi cosa succede.
Dovresti vedere che una piccola area di terreno si trasforma in pietra quando il giocatore raggiunge un corpo d'acqua. Non è bello - puoi camminare abbastanza velocemente da causare un problema. Potresti risolvere questo problema convertendo un maggior volume d'acqua in terra. La parte finale del metodo mc.setBlocks () è l'id del blocco. Uno è l'id del blocco per la pietra. Puoi cambiarlo in legno, erba o altro. Se lo volessi, potresti facilmente convertirlo in un progetto complesso, forse un ponte sospeso!
Pulsante Super Mining
Questo esempio renderà breve il lavoro di estrazione. Consiste in un pulsante fisico, che se premuto, verrà estratto di 10 blocchi in cubetti. Iniziamo con il pulsante. Come per i pulsanti di Arduino, avrai bisogno di una piccola quantità di componenti elettronici, che dovrebbero essere trovati in un kit base di base. Cosa c'è nel tuo Starter Kit Arduino? [Arduino Beginners] Cosa c'è nel tuo Arduino Starter Kit? [Arduino Beginners] Di fronte a una scatola piena di componenti elettronici, è facile essere sopraffatti. Ecco una guida per esattamente quello che troverai nel tuo kit. Leggi di più :
- 1 x tagliere
- 1 x interruttore momentaneo
- 1 x 220 ohm di resistenza
- Femmina> cavi di salto maschio
- Uomo> Cavi di salto maschi
Ecco il circuito:
Questo resistore è chiamato a “abbattere” resistore. Aiuta a garantire che ciò che il Pi pensa sia il pulsante premuto, in realtà è il pulsante premuto. Non è necessario utilizzarlo, tuttavia è consigliato, in quanto si potrebbero riscontrare molti rumori e letture false senza di esso.
Il pulsante è collegato al pin 14 GPIO (General Purpose Input Output). È possibile utilizzare qualsiasi pin GPIO, tuttavia osservare prima il pinout, poiché non tutti sono controllabili dal Pi e variano leggermente tra i modelli.
Ora che il pulsante è collegato, è il momento di provarlo. Crea un nuovo file e salvalo come “button_test.py“. Aggiungi questo codice, salvalo e poi eseguilo in Terminale.
importare RPi.GPIO come tempo di importazione GPIO GPIO.setmode (GPIO.BCM) # indica al Pi quali intestazioni utilizzare GPIO.setup (14, GPIO.IN) # indica al Pi questo pin è un input mentre True: se GPIO.input (14) == Vero: # cerca pulsante stampa stampa "BUTTON WORKS!" # log result time.sleep (0.5) # wait 0.5 seconds
stampa Control + C per fermare la sceneggiatura. Se tutto funziona correttamente dovresti vedere “PULSANTE FUNZIONA!” nel Terminale. Nota come, come il modulo Minecraft, questo test utilizza i moduli RPi.GPIO e time. Questi consentono al Pi di accedere ai pin hardware e forniscono funzioni di temporizzazione utili.
Ora finiamo il resto del codice. Crea una nuova raccolta di file “super_mine.py“. Ecco il codice:
importare RPi.GPIO come tempo di importazione GPIO dall'importazione mcpi.minecraft Minecraft mc = Minecraft.create () # crea oggetto Minecraft GPIO.setmode (GPIO.BCM) # indica al Pi quali intestazioni utilizzare GPIO.setup (14, GPIO.IN ) # indica al Pi che questo pin è un input mentre True: se GPIO.input (14) == True: # cerca pulsante premi x, y, z = mc.player.getPos () # leggi la posizione del giocatore mc.setBlocks (x, y, z, x + 10, y + 10, z + 10, 0) # miniera 10 blocchi 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 () restituisce ai giocatori le coordinate correnti, che vengono quindi memorizzate in x, yez. Il setBlocks () metodo dice a Minecraft di riempire tutti i blocchi tra l'inizio e la fine con il seguente blocco. Zero è il block-id per l'aria. È possibile modificare questo in un altro ID blocco per riempire un'area piena. Puoi anche cambiare le coordinate a +100 o anche a +1000 blocchi, tuttavia il Pi potrebbe iniziare a lottare se sei troppo pazzo. Nota come y + 10 è uguale per entrambe le linee. È possibile modificare questo a y - 10 se si desidera rimuovere i blocchi sottoterra.
teletrasporto
Un altro semplice utilizzo per questo pulsante potrebbe essere “teletrasporto”. Il Minecraft Pi Api fornisce un modo per impostare la posizione del giocatore. Verrà il seguente codice “teletrasporto” il giocatore in una posizione preimpostata:
mc.player.setPos (0, 0, 0)
Si noti che il suo metodo accetta tre parametri; x, y e z - in modo da poterli impostare su qualsiasi cosa per teletrasportare istantaneamente il giocatore in quella posizione.
Crea una copia del file super_mine (File> Salva copia come) e modificarlo sostituendo il se con il seguente:
se GPIO.input (14) == True: # cerca pulsante premi mc.player.setPos (0, 0, 0) # teleport player time.sleep (0.5) # wait 0.5 seconds
Questo file dovrebbe ora assomigliare a questo:
importare RPi.GPIO come GPIO dall'importazione mcpi.minecraft Minecraft import time mc = Minecraft.create () # crea l'oggetto Minecraft GPIO.setmode (GPIO.BCM) # indica al Pi quali intestazioni utilizzare GPIO.setup (14, GPIO.IN ) # dire al Pi questo pin è un input mentre True: se GPIO.input (14) == True: # cerca pulsante premi mc.player.setPos (0, 0, 0) # teleport player time.sleep (0.5) # aspetta 0,5 secondi
Salva come “teleport.py” e corri.
Potresti scoprire che il giocatore si blocca all'interno di alcuni blocchi quando lo usi, nel qual caso dovrai regolare le coordinate su uno spazio aperto noto (la parte superiore sinistra dello schermo mostra la tua posizione corrente).
Costruire una casa
Un ultimo compito per questo pulsante è costruire una casa. Molto simile all'esempio di mining rapido sopra, questo semplicemente sostituirà i blocchi che circondano il giocatore per creare una casa. Saranno usati diversi block-id per materiali diversi (finestre, pareti, ecc.). Per rendere le cose più facili da codificare, verrà creato un blocco solido e quindi l'interno rimosso (set block to air), questo creerà un guscio vuoto. Puoi aggiungere extra come un letto o una porta, tuttavia il progetto Minecraft Pi è un po 'incompleto, e mentre questi oggetti funzionano quando sono posizionati dal giocatore, non sono brillanti quando si usa Python.
da mcpi.minecraft import Minecraft importa RPi.GPIO come tempo di importazione GPIO mc = Minecraft.create () # crea oggetto Minecraft GPIO.setmode (GPIO.BCM) # indica al Pi quali intestazioni usare GPIO.setup (14, GPIO.IN ) # dire al Pi questo pin è un input mentre 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) # crea shell mc.setBlocks (x + 3, y, z + 3, x + 6, y + 2, z + 7, 0) # rimuovi all'interno di 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
Salva questo come “house.py” e corri. Se tutto va bene, dovresti vedere apparire una piccola casa (potrebbe essere necessario girarsi per trovarlo). È molto semplice, un'apertura e alcune finestre. In teoria, non vi è alcun limite a quanto sia grande o complesso costruire un edificio.
Crea un mini gioco
Quindi, facciamo un mini-gioco! Questo sarà abbastanza semplice, quando il giocatore calpesta un blocco di sabbia, si trasformerà in lava dopo una quantità casuale di tempo. Questo è un buon gioco da fare, in quanto è possibile progettare i propri livelli o modificarlo per rendere le cose più difficili. Non avrai bisogno del pulsante per questo esempio.
Crea un nuovo file e salvalo come “mini_game.py“. Ecco il codice:
da mcpi.minecraft import Minecraft import importazione casuale time mc = Minecraft.create () # crea oggetto Minecraft mentre True: x, y, z = mc.player.getPos () block_under_player = mc.getBlock (x, y - 1, z ) se block_under_player == 12: # giocatore in piedi sulla sabbia, avvia il timer random_time = random.uniform (0.1, 2.5) # genera un numero casuale time.sleep (random_time); # aspetta mc.setBlock (x, y - 1, z, 11) # trasformalo in lava
Questo codice è un buon antipasto su casuale() funzione: random.uniform (0.1, 2.5) genererà un numero casuale compreso tra 0,1 (1/10 di secondo) e 2,5 (2 1/2 secondi). Aumentare questi numeri renderà il gioco più facile.
Provalo! Stare su un blocco di sabbia e presto si trasformerà in lava. Questa potrebbe essere la base di un gioco più complesso.
Crea un altro mini gioco
La premessa per questo gioco è semplice: non stare sul pavimento di legno quando scade il tempo. Il giocatore viene teletrasportato in un “arena”. Sono costretti a stare fermi fino all'avvio del gioco. Una volta avviato, il pavimento si trasformerà in acqua una volta scaduto il tempo. Il giocatore deve stare nella zona sicura (blocchi di diamanti) per sopravvivere. Ogni livello riduce il timer di un secondo. Dopo ogni livello di successo l'area di sicurezza diventa più grande. Controlla il codice qui sotto:
import time import random from mcpi.minecraft import Minecraft mc = Minecraft.create () # crea Minecraft # Cancella l'area mc.setBlocks (-10, 1, -10, 25, 5, 25, 0) # crea arena shell mc. setBlocks (0, 0, 0, 25, 10, 25, 17) # scava fuori arena mc.setBlocks (1, 1, 1, 24, 10, 24, 0) # sposta il giocatore nell'arena mc.player.setPos (14 , 25, 20) # teleport player # farli rimanere in posizione # teletrasportatore per iniziare la posizione ogni 1/10 di secondo. # fai questo per 5 secondi quindi avvia il gioco time.sleep (2) total_wait = 0 mc.postToChat ("Waiting to Start") mentre 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
Salva questo come “mini_game_2.py” e fagli una corsa.
Il Pi 2 ha alcuni problemi di prestazioni durante l'esecuzione di Minecraft. Il grafico di utilizzo dell'unità di elaborazione centrale (CPU) (angolo in alto a destra) non mostra mai carichi pesanti, quindi questo deve essere dovuto alla scarsa progettazione e all'ottimizzazione da parte degli sviluppatori. Questi problemi non sono correlati al codice in esecuzione (poiché continuano quando Python non è in esecuzione), tuttavia sono aggravati da questo mini gioco. Se il tuo Pi è davvero in difficoltà, potresti voler ridurre le dimensioni dell'arena o overclockare il tuo succo di Pi non abbastanza? Spremere il tuo Raspberry Pi da overclocking non abbastanza succo? Spremere il tuo Raspberry Pi Overclocking Se nel 2012 c'è qualche hardware rilasciato di cui ti innamorerai, è il dolce Raspberry Pi, un mini computer progettato e costruito nel Regno Unito che è stato spedito in tutto il mondo ... Leggi di più .
Diamond Detector
Facciamo un altro circuito. Questo userà un diodo ad emissione luminosa (LED) per illuminarsi quando ci sono dei diamanti sotto (entro 15 blocchi). Ecco di cosa hai bisogno:
- 1 x tagliere
- 1 x LED
- 1 x 220 ohm di resistenza
- Femmina> cavi di salto maschio
- Uomo> Cavi di salto maschi
Ecco il circuito:
Collega l'anodo (gamba lunga) al pin 14 di GPIO. Questo pin funziona come + 5v. Collegare il catodo (gamba corta) a terra.
Ho usato un giocattolo minerale economico e l'ho modificato rimuovendo il coperchio posteriore e l'elettronica, quindi ho posizionato un LED al di sotto di esso. Potresti facilmente renderlo permanente con colla a caldo o qualcosa di simile.
Salva questo codice come “diamonds.py“:
importare RPi.GPIO come tempo di importazione GPIO da mcpi.minecraft import Minecraft mc = Minecraft.create () # crea oggetto Minecraft led_pin = 14 # memorizza il numero pin GPIO GPIO.setmode (GPIO.BCM) # indica al Pi quali intestazioni utilizzare GPIO.setup (14, GPIO.OUT) # dice al Pi che questo pin è un output mentre True: # ripete indefinitamente x, y, z = mc.player.getPos () per i in range (15): # guarda ogni bloccare fino al blocco 15 se mc.getBlock (x, y - i, z) == 56: GPIO.output (led_pin, True) # accende il LED su time.sleep (0.25) # attende GPIO.output (led_pin, False) # spegnere il LED time.sleep (0.25) # attendere
Quando c'è un blocco di minerale di diamante sotto il giocatore (entro 15 blocchi) la luce lampeggia.
ThinkGeek Minecraft Light-Up Diamond Blue Diamond Ore - Sicuro per tenere lontano Pigmen ThinkGeek Minecraft Light-Up Diamond Blue Diamond Ore - Sicuro per mantenere Pigmen Away Acquista ora su Amazon $ 31,99
Hai fatto qualcosa di interessante con Minecraft Pi? Fammi sapere nei commenti cosa hai fatto o in che misura lo hai fatto nei giochi.
Scopri di più su: Elettronica, Minecraft, Programmazione, Python, Raspberry Pi.