Da WIKI CoderDojo Firenze.

Gli esercizi descitti in questa pagina sono stati adattati a partire da quelli messi a disposizione dal repository TeachCraft-Challenges. Si ringrazia TeachTheNet per l'interessante materiale messo a disposizione.

Prerequisiti

Deve essere stato installato l'interprete Python e il launcher Minecraft come descritto in un'altra pagina di questo sito. Deve essere disponibile un server Minecraft che disponga di un'interfaccia API in Python a cui collegarsi in modalità multiplayer.

Nel caso non lo avessete a disposizione in questo sito è disponibile una pagina che descrive come installarlo e avviarlo.

Nel seguito supponiamo che il server sia disponibile all'indirizzo IP 192.168.12.10.

Avviare il Launcher Minecraft

Per avviare il launcher Minecraft fare doppio click sull'icona Minecraft_Launcher.jar presente nella directory TeachCraft-Challenges preparare al punto precedente. In alternaltiva lanciare da terminale con il comando:

$ java -jar Minecraft_Launcher.jar

Una volta che il caricamento del launcher è terminato apparirà la seguente finestra:

File:TLauncher_1.964_217.png

Cliccare su Enter the Game in basso a destra. Attendere il caricamento di Minecraft. Apparirà la seguente finestra:

File:Minecraft_1.8.8_218.png

A questo punto cliccare sul pulsante Multiplayer. Apparirà una nuova finestra con una serie di pulsanti, scegliere Direct connect. Appare un'ulteriore finestra dove inserire l'indirizzo IP del server (nel nostro caso, come esempio, 192.168.12.10):

File:Minecraft_1.8.8_219.png

Cliccare su Join Server. Se tutto andrà a buon fine ci si troverà all'interno di un paesaggio Minecraft. Possiamo finalmente iniziare gli esperimenti con Python.

Scrivere il primo programma Python

Questo esercizio insegna come aprire una connessione con il server Minecraft per realizzare una semplice operazione di scrittura sulla chat del gioco.

Aprire l'editor che si è scelto per scrivere il programma Python e inserire le seguenti righe:

  1. import mcpi.minecraft as minecraft
  2. mc = minecraft.Minecraft.create(address="192.168.12.10", name="rodmcban")
  3. mc.postToChat("Ciao Minecraft!")

Al posto dell'indirizzo assegnato alla variabile address inserire l'indirizzo del server a cui si è collegati (quello inserito nella finestra precedente nel campo server address) e come "name" utilizzare quello del proprio personaggio (inserito all'inizio nella prima schermata del launcher).

Salvare il file così scritto all'interno della directory TeachCraft-Challenges.

Eseguire il programma Python con l'interprete che si ha a disposizione. Sulla finestra di Minecraft apparirà una riga di chat con scritto "Ciao Minecraft!"


Vediamo nel dettaglio cosa significano le tre righe che abbiamo scritto.

  1. import mcpi.minecraft as minecraft

Questa prima riga serve per spiegare a Python che abbiamo intenzione di utilizzare la libreria mcpi che è quella che fornisce le funzionalità per comunicare con il server Minecraft. Non realizza nessuna operazione visibile, ma dice a Python che vogliamo inviare dei comandi a Minecraft.

  1. mc = minecraft.Minecraft.create(address="192.168.12.10", name="rodmcban")

Questa seconda riga dice a Python di collegarsi al server Minecraft che si trova all'indirizzo 192.168.12.10 e, su questo server, agganciarsi al personaggio di nome rodmcban.

Queste due righe, che ancora non fanno nulla di visibile, sono obbligatorie per tutti i programmi che scriveremo: senza di queste infatti Python non è in grado di sapere come interpretare i comandi che seguono.

Notare la variabile mc: in questo "contenitore" viene salvata la connessione con il personaggio che abbiamo scelto. D'ora in avanti, quando useremo questa variabile, Python capirà che vogliamo fare un'operazione con quello specifico personaggio.

Con queste prime due righe abbiamo stabilito la comunicazione con Minecraft, ma, se ci fermassimo qui, non succederebbe niente. Diciamo che avremmo scritto un programma inutile: apriamo una connessione ma poi non ci facciamo niente. Il succo di questo semplicissimo programma è nella terza istruzione:

  1. mc.postToChat("Ciao Minecraft!")

Con questa istruzione diciamo a Python di eseguire un'operazione con la variabile mc (e quindi verso il personaggio che abbiamo scelto). In particolare l'operazione che chiediamo di eseguire è postToChat che mostra un messaggio sulla chat del personaggio.

Esercizio 1: Teletrasportare il personaggio

Questo esercizio insegna come aprire una connessione con il server Minecraft e inviare un comando che cambia la posizione del personaggio sotto il nostro controllo. L'esempio è tratto dalla prima lezione del sito TeachCraft-Challenges.


TO BE COMPLETED