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.

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.
Annuncio pubblicitario

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 $ 29, 99

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, non preoccuparti: questa guida per principianti ti ha coperto. Leggi di più .

Introduzione a Minecraft Pi

Minecraft-Pi-Menu

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 sapere 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 po 'di 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 è necessario comunicare al computer quali dati si desidera archiviare, solo che si desidera 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. "Dosomething ()" non funzionerà se il metodo è in realtà chiamato "DoSomething ()". Python usa anche indentazione . Ad altri linguaggi di programmazione potrebbe non interessare il numero di rientri del codice, mentre a Python interessa. I rientri sono usati per dire a Python dove il codice appartiene. Altre lingue possono usare "Curly Braces" ({}) per raggruppare il codice - Python non le 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.

Apri Terminale ( Menu> Accessori> Terminale ) ed esegui questo comando. È sempre buona norma mantenere aggiornato l'elenco dei repository, e questo scaricherà l'ultimo elenco di programmi (non scaricherà i programmi da soli, 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 denominata "Minecraft":

 cd Documents/ 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 su 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 salva questo 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 "python" è 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:

 print "Hello, World!" 

Salva questo file ed eseguilo di nuovo - ora dovresti vedere "Hello, World!" Comparire 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:

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

Ora se salvi ed esegui questo file, dovresti vedere "Hello, World!" Apparire nel gioco di Minecraft. Analizziamo il codice:

 from 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 "Hello, World!" Con qualcos'altro e guarda 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, passa a "True"
  • 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

Minecraft-Pi-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 salvalo come " 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) 

Si noti come il valore y stia effettivamente osservando y - 1. Questo è il livello del pavimento. Se il valore di y è stato usato, lo script dovrebbe cercare 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

Minecraft-Pi-Super-Mine

Questo esempio renderà breve il lavoro di estrazione. Consiste in un pulsante fisico, che quando premuto, verrà estratto di 10 blocchi in cubetti. Iniziamo con il pulsante. Analogamente ai pulsanti di Arduino, avrai bisogno di una piccola quantità di componenti elettronici, che dovrebbero essere trovati in un kit base di partenza. Cosa c'è nel tuo kit di avvio 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:

Pi-Button-Connection

Questo resistore è chiamato un resistore "pull down". 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 di GPU (General Purpose Input Output). È possibile utilizzare qualsiasi pin GPIO, tuttavia si osservi prima il pinout, poiché non sono tutti 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.

 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 

Premi Ctrl + C per interrompere lo script. Se tutto funziona correttamente dovresti vedere "BUTTON WORKS!" 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 un nuovo nome " super_mine.py ". Ecco il codice:

 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 () restituisce le coordinate correnti dei giocatori, che vengono quindi memorizzate in x, yez. Il metodo setBlocks () 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

Minecraft-Pi-Teleporting

Un altro semplice utilizzo per questo pulsante potrebbe essere quello di "teletrasportarsi". Il Minecraft Pi Api fornisce un modo per impostare la posizione del giocatore. Il seguente codice "teletrasporterà" 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.

Creare una copia del file super_mine ( File> Salva copia come ) e modificarlo sostituendo il se con il seguente:

 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 

Questo file dovrebbe ora assomigliare a questo:

 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 

Salvalo come " teleport.py " ed esegui.

Potresti scoprire che il giocatore si blocca all'interno di alcuni blocchi quando lo usi, nel qual caso dovrai regolare le coordinate in uno spazio aperto noto (nella parte in alto a sinistra dello schermo viene visualizzata la posizione corrente).

Costruire una casa

Minecraft-Pi-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.

 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 

Salva questo come " house.py " ed esegui. 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

Minecraft-Pi-Lava-Game

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:

 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 

Questo codice è un buon antipasto della funzione random () : random.uniform (0.1, 2.5) genererà un numero casuale compreso tra 0.1 (1 / 10th 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

Minecraft-Pi-Mini-Game

La premessa per questo gioco è semplice: non stare sul pavimento di legno quando scade il tempo. Il giocatore viene teletrasportato in una "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() # 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 

Salva questo come " mini_game_2.py " e fallo correre.

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 a una progettazione e ottimizzazioni scadenti 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 è probabile che ti innamori, è il dolce Raspberry Pi, un mini computer progettato e costruito nel Regno Unito che ha fatto il giro del mondo. .. Leggi di più .

Diamond Detector

Minecraft-Pi-Diamonds

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:

Pi-LED-Connection

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.

Minecraft-Ore-giocattolo

Salva questo codice come " diamonds.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 

Quando c'è un blocco di minerale di diamante sotto il giocatore (entro 15 blocchi) la luce lampeggia.

Pensa a Geek Minecraft Light-Up Diamond Ore Pensa a Geek Minecraft Light-Up Diamond Ore Acquista ora su Amazon $ 12, 89

Hai fatto qualcosa di interessante con Minecraft Pi? Fammi sapere nei commenti cosa hai fatto o in che misura lo hai fatto nei giochi.

In this article