<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://kata.coderdojo.it/wiki/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="it">
		<id>https://kata.coderdojo.it/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Fpiantini</id>
		<title>WIKI CoderDojo Firenze - Contributi utente [it]</title>
		<link rel="self" type="application/atom+xml" href="https://kata.coderdojo.it/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Fpiantini"/>
		<link rel="alternate" type="text/html" href="https://kata.coderdojo.it/wiki/index.php?title=Speciale:Contributi/Fpiantini"/>
		<updated>2026-04-28T13:21:15Z</updated>
		<subtitle>Contributi utente</subtitle>
		<generator>MediaWiki 1.23.2</generator>

	<entry>
		<id>https://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_Setup_PC_dei_Partecipanti</id>
		<title>Python - Minecraft: Setup PC dei Partecipanti</title>
		<link rel="alternate" type="text/html" href="https://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_Setup_PC_dei_Partecipanti"/>
				<updated>2016-05-29T22:17:07Z</updated>
		
		<summary type="html">&lt;p&gt;Fpiantini: /* Interprete Python 2.7 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Setup PC partecipanti a eventi Python / Minecraft =&lt;br /&gt;
&lt;br /&gt;
In questa pagina viene indicato come preparare i PC per partecipare agli eventi Python+Minecraft organizzati dal Coderdojo di Firenze.&lt;br /&gt;
&lt;br /&gt;
== Installazione Software di base ==&lt;br /&gt;
&lt;br /&gt;
Sul PC deve essere presente un buon editor di codice (per intendersi Notepad non va bene...).&lt;br /&gt;
&lt;br /&gt;
Se ne avete uno preferito potete utilizzarlo, altrimenti, se non avete idee, potete seguire i nostri consigli utilizzando i seguenti:&lt;br /&gt;
&lt;br /&gt;
*MS Windows: [https://notepad-plus-plus.org/download Notepad++]&lt;br /&gt;
&lt;br /&gt;
*OSX: [http://www.barebones.com/products/textwrangler/download.html TextWrangler]&lt;br /&gt;
&lt;br /&gt;
*Linux: le installazioni standard prevedono la presenza di editor di buona qualità come Gedit o Kate, per cui non è necessario installare niente di addizionale&lt;br /&gt;
&lt;br /&gt;
E' poi possibile anche utilizzare degli ambienti più &amp;quot;sofisticati&amp;quot;. Una buona IDE per Python è ad esempio [https://www.jetbrains.com/pycharm/download/ PyCharm versione Community].&lt;br /&gt;
&lt;br /&gt;
== Interprete Python 2.7 ==&lt;br /&gt;
&lt;br /&gt;
*Windows / OSX: scaricare e installare la versione appropriata dell'interprete dalla [http://www.python.it/download/ pagina del progetto Python]&lt;br /&gt;
&lt;br /&gt;
*Linux: a seconda della distribuzione utilizzare l'appropriato comando. Per esempio per Ubuntu e derivati utilizzare il comando da terminale:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install python&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''N.B.: E' IMPORTANTE INSTALLARE LA VERSIONE 2.7. LA VERSIONE 3.5 NON E' COMPATIBILE CON LA LIBRERIA UTILIZZATA PER PARLARE CON MINECRAFT.'''&lt;br /&gt;
&lt;br /&gt;
== Installazione Java ==&lt;br /&gt;
&lt;br /&gt;
Normalmente i PC con sistema operativo Windows o Mac OSX hanno già il software Java installato. L'unica cosa importante è che la versione Java installata sia la 8 (detta anche 1.8). Nel caso sia necessario installarla andare sul [http://www.java.com/en/download/ sito ufficiale di Java] e scaricare la JDK appropriata per la macchina in preparazione&lt;br /&gt;
&lt;br /&gt;
Per i sistemi operativi Linux occorre essere sicuri che la versione di Java installata sia quella ufficiale della Oracle e non una versione diversa (per esempio la OpenJDK). Per installare La Oracle Java seguire ad esempio [http://askubuntu.com/questions/56104/how-can-i-install-sun-oracles-proprietary-java-jdk-6-7-8-or-jre questa guida su AskUbuntu]. Per scaricare java andare nella [http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html pagina relativa] sul sito Oracle. Scaricare la versione appropriata al PC che si sta utilizzando (in base al sistema operativo e al tipo di architettura, 32 o 64 bits). Per verificare la versione di Java aprire un terminale e dare il comando:&lt;br /&gt;
&amp;lt;pre&amp;gt;java -version&amp;lt;/pre&amp;gt;&lt;br /&gt;
Devono essere stampate stringhe nella forma:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ java -version&lt;br /&gt;
&lt;br /&gt;
java version &amp;quot;1.8.0_91&amp;quot;&lt;br /&gt;
Java(TM) SE Runtime Environment (build 1.8.0_91-b14)&lt;br /&gt;
Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)&lt;br /&gt;
&lt;br /&gt;
$ _&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Installazione Launcher Minecraft ==&lt;br /&gt;
&lt;br /&gt;
Se il programma Minecraft è già installato sul PC non è necessario fare niente (passare al capitolo &amp;quot;Collegamento al server&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Per installare invece il launcher, scaricarlo da [http://kata.coderdojo.it/archivio/20_python_minecraft/TeachCraft-Challenges/TeachCraft-Challenges-master.zip questo link] dall'archivio del coderdojo di Firenze. Altrimenti è possibile scaricarlo direttamente dalla [https://github.com/teachthenet/TeachCraft-Challenges pagina GitHub del progetto TeachCraft-Challenges].&lt;br /&gt;
&lt;br /&gt;
Una volta copiato il pacchetto sul PC, effettuare l'unzip del file in una directory a piacere. Cliccare sull'icona &amp;quot;Minecraft_Launcher.jar&amp;quot; per effettuare l'installazione del pacchetto Minecraft. La prima volta che il programma viene lanciato potrebbe apparire una finestra che indicare che è stata trovata una versione aggiornata del launcher. Cliccare su &amp;quot;Yes&amp;quot; per effettuare l'aggiornamento. A questo punto appare una finestra &amp;quot;TLauncher&amp;quot;. Effettuare i seguenti passi:&lt;br /&gt;
&lt;br /&gt;
*In basso a sinistra inserire uno user name a piacere&lt;br /&gt;
*Sempre in basso a sinistra selezionare la release del server, selezionare il valore &amp;quot;Release 1.8.8&amp;quot;&lt;br /&gt;
*Cliccare sul pulsante &amp;quot;Install&amp;quot; in basso al centro&lt;br /&gt;
&lt;br /&gt;
Lasciare terminare l'aggiornamento e l'installazione. Alla fine della procedura, oppure lanciando nuovamente il &amp;quot;Minecraft_Launcher.jar&amp;quot; apparirà la seguente finestra (o qualcosa di simile):&lt;br /&gt;
&lt;br /&gt;
[[File:TLauncher 1.964 217.png|File:TLauncher_1.964_217.png]]&lt;br /&gt;
&lt;br /&gt;
Adesso è possibile provare a collegarsi al server e scrivere i primi programmi Python. Cominciare per esempio dall'esercizio descritto nella pagina [[Python+Minecraft: primi esercizi|Python+Minecraft: primi esercizi]]&lt;br /&gt;
[[Category:Python|P]]&lt;br /&gt;
[[Category:Minecraft|M]]&lt;/div&gt;</summary>
		<author><name>Fpiantini</name></author>	</entry>

	<entry>
		<id>https://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_Setup_PC_dei_Partecipanti</id>
		<title>Python - Minecraft: Setup PC dei Partecipanti</title>
		<link rel="alternate" type="text/html" href="https://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_Setup_PC_dei_Partecipanti"/>
				<updated>2016-05-29T22:16:52Z</updated>
		
		<summary type="html">&lt;p&gt;Fpiantini: /* Interprete Python */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Setup PC partecipanti a eventi Python / Minecraft =&lt;br /&gt;
&lt;br /&gt;
In questa pagina viene indicato come preparare i PC per partecipare agli eventi Python+Minecraft organizzati dal Coderdojo di Firenze.&lt;br /&gt;
&lt;br /&gt;
== Installazione Software di base ==&lt;br /&gt;
&lt;br /&gt;
Sul PC deve essere presente un buon editor di codice (per intendersi Notepad non va bene...).&lt;br /&gt;
&lt;br /&gt;
Se ne avete uno preferito potete utilizzarlo, altrimenti, se non avete idee, potete seguire i nostri consigli utilizzando i seguenti:&lt;br /&gt;
&lt;br /&gt;
*MS Windows: [https://notepad-plus-plus.org/download Notepad++]&lt;br /&gt;
&lt;br /&gt;
*OSX: [http://www.barebones.com/products/textwrangler/download.html TextWrangler]&lt;br /&gt;
&lt;br /&gt;
*Linux: le installazioni standard prevedono la presenza di editor di buona qualità come Gedit o Kate, per cui non è necessario installare niente di addizionale&lt;br /&gt;
&lt;br /&gt;
E' poi possibile anche utilizzare degli ambienti più &amp;quot;sofisticati&amp;quot;. Una buona IDE per Python è ad esempio [https://www.jetbrains.com/pycharm/download/ PyCharm versione Community].&lt;br /&gt;
&lt;br /&gt;
== Interprete Python 2.7 ==&lt;br /&gt;
&lt;br /&gt;
*Windows / OSX: scaricare e installare la versione appropriata dell'interprete dalla [http://www.python.it/download/ pagina del progetto Python]&lt;br /&gt;
&lt;br /&gt;
*Linux: a seconda della distribuzione utilizzare l'appropriato comando. Per esempio per Ubuntu e derivati utilizzare il comando da terminale:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install python&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''N.B.: E' IMPORTANTE INSTALLARE LA VERSIONE 2.7. LA VERSIONE 3.5 NON E' COMPATIBILE CON LA LIBRERIA UTILIZZATA PER PARLARE CON MINECRAFT.&lt;br /&gt;
&lt;br /&gt;
== Installazione Java ==&lt;br /&gt;
&lt;br /&gt;
Normalmente i PC con sistema operativo Windows o Mac OSX hanno già il software Java installato. L'unica cosa importante è che la versione Java installata sia la 8 (detta anche 1.8). Nel caso sia necessario installarla andare sul [http://www.java.com/en/download/ sito ufficiale di Java] e scaricare la JDK appropriata per la macchina in preparazione&lt;br /&gt;
&lt;br /&gt;
Per i sistemi operativi Linux occorre essere sicuri che la versione di Java installata sia quella ufficiale della Oracle e non una versione diversa (per esempio la OpenJDK). Per installare La Oracle Java seguire ad esempio [http://askubuntu.com/questions/56104/how-can-i-install-sun-oracles-proprietary-java-jdk-6-7-8-or-jre questa guida su AskUbuntu]. Per scaricare java andare nella [http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html pagina relativa] sul sito Oracle. Scaricare la versione appropriata al PC che si sta utilizzando (in base al sistema operativo e al tipo di architettura, 32 o 64 bits). Per verificare la versione di Java aprire un terminale e dare il comando:&lt;br /&gt;
&amp;lt;pre&amp;gt;java -version&amp;lt;/pre&amp;gt;&lt;br /&gt;
Devono essere stampate stringhe nella forma:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ java -version&lt;br /&gt;
&lt;br /&gt;
java version &amp;quot;1.8.0_91&amp;quot;&lt;br /&gt;
Java(TM) SE Runtime Environment (build 1.8.0_91-b14)&lt;br /&gt;
Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)&lt;br /&gt;
&lt;br /&gt;
$ _&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Installazione Launcher Minecraft ==&lt;br /&gt;
&lt;br /&gt;
Se il programma Minecraft è già installato sul PC non è necessario fare niente (passare al capitolo &amp;quot;Collegamento al server&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Per installare invece il launcher, scaricarlo da [http://kata.coderdojo.it/archivio/20_python_minecraft/TeachCraft-Challenges/TeachCraft-Challenges-master.zip questo link] dall'archivio del coderdojo di Firenze. Altrimenti è possibile scaricarlo direttamente dalla [https://github.com/teachthenet/TeachCraft-Challenges pagina GitHub del progetto TeachCraft-Challenges].&lt;br /&gt;
&lt;br /&gt;
Una volta copiato il pacchetto sul PC, effettuare l'unzip del file in una directory a piacere. Cliccare sull'icona &amp;quot;Minecraft_Launcher.jar&amp;quot; per effettuare l'installazione del pacchetto Minecraft. La prima volta che il programma viene lanciato potrebbe apparire una finestra che indicare che è stata trovata una versione aggiornata del launcher. Cliccare su &amp;quot;Yes&amp;quot; per effettuare l'aggiornamento. A questo punto appare una finestra &amp;quot;TLauncher&amp;quot;. Effettuare i seguenti passi:&lt;br /&gt;
&lt;br /&gt;
*In basso a sinistra inserire uno user name a piacere&lt;br /&gt;
*Sempre in basso a sinistra selezionare la release del server, selezionare il valore &amp;quot;Release 1.8.8&amp;quot;&lt;br /&gt;
*Cliccare sul pulsante &amp;quot;Install&amp;quot; in basso al centro&lt;br /&gt;
&lt;br /&gt;
Lasciare terminare l'aggiornamento e l'installazione. Alla fine della procedura, oppure lanciando nuovamente il &amp;quot;Minecraft_Launcher.jar&amp;quot; apparirà la seguente finestra (o qualcosa di simile):&lt;br /&gt;
&lt;br /&gt;
[[File:TLauncher 1.964 217.png|File:TLauncher_1.964_217.png]]&lt;br /&gt;
&lt;br /&gt;
Adesso è possibile provare a collegarsi al server e scrivere i primi programmi Python. Cominciare per esempio dall'esercizio descritto nella pagina [[Python+Minecraft: primi esercizi|Python+Minecraft: primi esercizi]]&lt;br /&gt;
[[Category:Python|P]]&lt;br /&gt;
[[Category:Minecraft|M]]&lt;/div&gt;</summary>
		<author><name>Fpiantini</name></author>	</entry>

	<entry>
		<id>https://kata.coderdojo.it/wiki/index.php?title=Python%2BMinecraft:_primi_esercizi</id>
		<title>Python+Minecraft: primi esercizi</title>
		<link rel="alternate" type="text/html" href="https://kata.coderdojo.it/wiki/index.php?title=Python%2BMinecraft:_primi_esercizi"/>
				<updated>2016-05-27T23:53:59Z</updated>
		
		<summary type="html">&lt;p&gt;Fpiantini: /* Esercizio 2: Seminare funghi... */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Gli esercizi descitti in questa pagina sono stati adattati a partire da quelli messi a disposizione dal repository [https://github.com/teachthenet/TeachCraft-Challenges TeachCraft-Challenges]. Si ringrazia [https://github.com/teachthenet TeachTheNet] per l'interessante materiale messo a disposizione.&lt;br /&gt;
&lt;br /&gt;
== Prerequisiti ==&lt;br /&gt;
&lt;br /&gt;
Deve essere stato installato l'interprete Python e il launcher Minecraft come descritto in [http://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_Setup_PC_dei_Partecipanti 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.&lt;br /&gt;
&lt;br /&gt;
Nel caso non lo avessete a disposizione in questo sito è disponibile [http://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_setup_di_un_server_Minecraft una pagina] che descrive come installarlo e avviarlo.&lt;br /&gt;
&lt;br /&gt;
Nel seguito supponiamo che il server sia disponibile all'indirizzo IP '''192.168.12.10'''.&lt;br /&gt;
&lt;br /&gt;
== Avviare il Launcher Minecraft ==&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ java -jar Minecraft_Launcher.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Una volta che il caricamento del launcher è terminato apparirà la seguente finestra:&lt;br /&gt;
&lt;br /&gt;
[[File:TLauncher 1.964 217.png|600px|File:TLauncher_1.964_217.png]]&lt;br /&gt;
&lt;br /&gt;
=== Configurazione ===&lt;br /&gt;
&lt;br /&gt;
Per evitare che tutte le volte che ci allontaniamo dalla finestra di Minecraft questa si disattivi, occorre modificare la configurazione di Minecraft.&lt;br /&gt;
In particolare occorre aprire il file di configurazione e modificare il parametro '''pauseOnLostFocus''' impostandolo al valore '''false''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pauseOnLostFocus:false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Per accedere al file di configurazione cliccare sul pulsante &amp;quot;Game Folder&amp;quot; in basso a destra della finestra del Launcher. All'interno della finestra che si aprirà cercare il file '''options.txt'''; aprirlo con un editor e modificare il parametro come indicato sopra.&lt;br /&gt;
&lt;br /&gt;
=== Collegamento al server ===&lt;br /&gt;
&lt;br /&gt;
Cliccare su '''Enter the Game''' in basso a destra. Attendere il caricamento di Minecraft. Apparirà la seguente finestra:&lt;br /&gt;
&lt;br /&gt;
[[File:Minecraft 1.8.8 218.png|600px|File:Minecraft_1.8.8_218.png]]&lt;br /&gt;
&lt;br /&gt;
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):&lt;br /&gt;
&lt;br /&gt;
[[File:Minecraft 1.8.8 219.png|600px|File:Minecraft_1.8.8_219.png]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Scrivere il primo programma Python ==&lt;br /&gt;
&lt;br /&gt;
Questo esercizio insegna come aprire una connessione con il server Minecraft per realizzare una semplice operazione di scrittura sulla chat del gioco.&lt;br /&gt;
&lt;br /&gt;
Aprire l'editor che si è scelto per scrivere il programma Python e inserire le seguenti righe:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line &amp;gt;&lt;br /&gt;
import mcpi.minecraft as minecraft&lt;br /&gt;
mc = minecraft.Minecraft.create(address=&amp;quot;192.168.12.10&amp;quot;, name=&amp;quot;rodmcban&amp;quot;)&lt;br /&gt;
mc.postToChat(&amp;quot;Ciao Minecraft!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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 '''&amp;quot;name&amp;quot;''' utilizzare quello del proprio personaggio (inserito all'inizio nella prima schermata del launcher).&lt;br /&gt;
&lt;br /&gt;
Salvare il file così scritto all'interno della directory '''TeachCraft-Challenges'''.&lt;br /&gt;
&lt;br /&gt;
Eseguire il programma Python con l'interprete che si ha a disposizione. Sulla finestra di Minecraft apparirà una riga di chat con scritto '''&amp;quot;Ciao Minecraft!&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
[[File:Minecraft 1.8.8 221.png|600px|File:Minecraft_1.8.8_221.png]]&lt;br /&gt;
&lt;br /&gt;
Vediamo nel dettaglio cosa significano le tre righe che abbiamo scritto.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line &amp;gt;&lt;br /&gt;
import mcpi.minecraft as minecraft&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line start=&amp;quot;2&amp;quot; &amp;gt;&lt;br /&gt;
mc = minecraft.Minecraft.create(address=&amp;quot;192.168.12.10&amp;quot;, name=&amp;quot;rodmcban&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Notare la variabile '''mc''': in questo &amp;quot;contenitore&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line start=&amp;quot;3&amp;quot; &amp;gt;&lt;br /&gt;
mc.postToChat(&amp;quot;Ciao Minecraft!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Esercizio 1: Teletrasportare il personaggio ==&lt;br /&gt;
&lt;br /&gt;
Con questo secondo programma vediamo come inviare un comando che cambia la posizione del personaggio a cui siamo agganciati. L'esempio è tratto dalla [https://github.com/teachthenet/TeachCraft-Challenges/blob/master/lesson_1.md prima lezione] del sito TeachCraft-Challenges.&lt;br /&gt;
&lt;br /&gt;
Il codice da scrivere stavolta è leggermente di più:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line &amp;gt;&lt;br /&gt;
# coding=utf-8&lt;br /&gt;
import mcpi.minecraft as minecraft&lt;br /&gt;
&lt;br /&gt;
# NOTA - sostituire l'indirizzo IP 192.168.12.10 con quello del server a cui&lt;br /&gt;
# si è collegati e &amp;quot;rodmcban&amp;quot; con il nome del proprio personaggio&lt;br /&gt;
mc = minecraft.Minecraft.create(address=&amp;quot;192.168.12.10&amp;quot;, name=&amp;quot;rodmcban&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
mc.player.setPos(-33, 20, 34)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Qui introduciamo i '''commenti''' che sono le righe che iniziano con il carattere '''#'''.&lt;br /&gt;
Queste righe servono a noi per ricordarci qualcosa sul codice che stiamo scrivendo ma sono completamente ignorate dall'interprete Python. Di fatto non servono all'esecuzione del programma&lt;br /&gt;
&lt;br /&gt;
A parte i commenti riconosciamo le prime due righe di codice, che altro non sono che quelle che già conosciamo e che servono a stabilire una connessione con un personaggio sul server.&lt;br /&gt;
&lt;br /&gt;
La terza riga che è quella che effettua veramente un'operazione questa volta utilizza il metodo '''setPos''' per impostare la posizione del personaggio a dove vogliamo noi.&lt;br /&gt;
&lt;br /&gt;
Provate a spostarvi per il mondo Minecraft dove volete e poi provate ad eseguire questo nuovo programma: tornerete tutte le volte a una posizione predefinita.&lt;br /&gt;
&lt;br /&gt;
=== Concetto di programmazione: le VARIABILI ===&lt;br /&gt;
&lt;br /&gt;
Usciamo adesso un attimo dal mondo Minecraft e parliamo di un concetto molto importante della programmazione: le '''variabili'''. &lt;br /&gt;
&lt;br /&gt;
Immaginate una variabile come un contenitore che contiene un valore. Per esempio L'istruzione:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line &amp;gt;&lt;br /&gt;
v = 1000&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
assegna alla variabile '''v''' il valore '''1000'''. Quando nel seguito faremo riferimento alla variabile '''v''' semplicemente otterremo il valore '''1000'''. Per esempio proviamo a scrivere ed eseguire il seguente programma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line &amp;gt;&lt;br /&gt;
v = 1000&lt;br /&gt;
print &amp;quot;la variabile di nome v vale: &amp;quot;, v&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il programma salva dentro la variabile '''v''' il valore '''1000''' e successivamente stampa sulla console un messaggio e il valore della variabile v. (Incidentalmente abbiamo scoperto la funzione '''print''', una funzione molto comoda che stampa messaggi sulla finestra dove eseguiamo il programma (la ''console'')).&lt;br /&gt;
&lt;br /&gt;
Scriviamo adesso una versione leggermente più complicata del programma di teletrasporto utilizzando delle '''variabili''' per indicare le tre componenti della posizione '''x''', '''y''' e '''z''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line &amp;gt;&lt;br /&gt;
# coding=utf-8&lt;br /&gt;
import mcpi.minecraft as minecraft&lt;br /&gt;
&lt;br /&gt;
# NOTA - sostituire l'indirizzo IP 192.168.12.10 con quello del server a cui&lt;br /&gt;
# si è collegati e &amp;quot;rodmcban&amp;quot; con il nome del proprio personaggio&lt;br /&gt;
mc = minecraft.Minecraft.create(address=&amp;quot;192.168.12.10&amp;quot;, name=&amp;quot;rodmcban&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
x = -33&lt;br /&gt;
y = 20&lt;br /&gt;
z = 34&lt;br /&gt;
&lt;br /&gt;
mc.player.setPos(x, y, z)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Esercizi ===&lt;br /&gt;
&lt;br /&gt;
* Provare a modificare i valori dei tre argomenti della funzione '''setPos'''. Cosa succede?&lt;br /&gt;
* Quale tra '''x''', '''y''' e '''z''' è quello che cambia la posizione verticale del personaggio?&lt;br /&gt;
* Scrivere un programma python che calcola il risultato dell'operazione '''2 + 3''', lo memorizza in una variabile e lo stampa nella console&lt;br /&gt;
&lt;br /&gt;
== Esercizio 2: Seminare funghi... ==&lt;br /&gt;
&lt;br /&gt;
I programmi visti finora facevano una singola cosa e poi terminavano.&lt;br /&gt;
Con il nuovo programma che stiamo per scrivere sperimenteremo una istruzione che ci permetterà di ripetere un ciclo di istruzioni più volte.&lt;br /&gt;
&lt;br /&gt;
L'istruzione si chiama '''while''' e significa '''ripeti fino a quando'''. In pratica questa istruzione ripete una o più operazioni finché una condizione rimane vera. Siccome noi in questo primo programma vogliamo ripetere un gruppo di istruzioni '''per sempre''' utilizzeremo un caso particolare del ciclo while che è il '''while True''' dove '''True''' e una variabile logica che significa '''Vero'''. Per questo '''while True''' significa in soldoni '''ripeti per sempre'''.&lt;br /&gt;
&lt;br /&gt;
Adesso dobbiamo capire un'altra cosa: con l'istruzione '''while''' noi non vogliamo ripetere per sempre non una singola cosa, ma un blocco di istruzioni. Come facciamo a riconoscere quali sono le istruzioni che devono essere ripetute? O in parole più tecniche il '''blocco''' di istruzioni da ripetere?&lt;br /&gt;
&lt;br /&gt;
Per questo in Python utilizziamo '''l'indentazione''' e cioè mettiamo all'inizio della riga un carattere '''TAB''' (quello che abbiamo sulla nostra tastiera a sinistra sopra il tasto che ci permettere di stampare i caratteri maiuscoli).&lt;br /&gt;
&lt;br /&gt;
Ecco alla fine come apparirà il nostro programma, con un po' di commenti che ci spiegano cosa sta succedendo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line &amp;gt;&lt;br /&gt;
# coding=utf-8&lt;br /&gt;
import time&lt;br /&gt;
&lt;br /&gt;
import mcpi.minecraft as minecraft&lt;br /&gt;
mc = minecraft.Minecraft.create(address=&amp;quot;192.168.12.10&amp;quot;, name=&amp;quot;rodmcban&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
# I blocchi utilizzati in Minecraft hanno un codice numerico.&lt;br /&gt;
# L'elenco dei codici è reperibile al seguente indirizzo:&lt;br /&gt;
#    http://minecraft-ids.grahamedgecombe.com/&lt;br /&gt;
#&lt;br /&gt;
# Utilizziamo il blocco 40, che rappresenta dei funghi:&lt;br /&gt;
block = 40&lt;br /&gt;
&lt;br /&gt;
print &amp;quot;Prima del ciclo.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
while True:&lt;br /&gt;
	# Recupera la posizione corrente del giocatore (coordinate X, Y e Z)&lt;br /&gt;
	# e le salva nella variabile pos:&lt;br /&gt;
	pos = mc.player.getPos()&lt;br /&gt;
&lt;br /&gt;
	# Estrae dalla variabile pos il valore delle coordinate&lt;br /&gt;
	# e le salva nelle variabili x, y, z&lt;br /&gt;
	x = pos.x&lt;br /&gt;
	y = pos.y&lt;br /&gt;
	z = pos.z&lt;br /&gt;
&lt;br /&gt;
	# &lt;br /&gt;
	# Cambia il blocco che si trova immediatamente dietro&lt;br /&gt;
	# il personaggio al tipo di blocco che abbiamo scelto&lt;br /&gt;
	# in precedenza&lt;br /&gt;
	mc.setBlock(x-1, y, z, block)&lt;br /&gt;
&lt;br /&gt;
	# Usa la funzione print per stampare la posizione del giocatore &lt;br /&gt;
	# e quindi torna all'inizio del ciclo&lt;br /&gt;
	print &amp;quot;Posizione = &amp;quot;, int(x), &amp;quot;, &amp;quot;, int(y), &amp;quot;, &amp;quot;, int(z), &amp;quot; ---  Aspettiamo 0.2 secondi e ripetiamo il ciclo&amp;quot;&lt;br /&gt;
	time.sleep (0.2)&lt;br /&gt;
&lt;br /&gt;
print &amp;quot;fuori dal ciclo&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Provate a muovervi per lo schermo e osservare cosa succede.&lt;br /&gt;
&lt;br /&gt;
=== Esercizi ===&lt;br /&gt;
* Provare a cambiare il tipo di blocco che viene generato dietro il personaggio&lt;br /&gt;
* Invece di mettere il blocco dietro il personaggio provare a metterlo sotto oppure a destra e a sinistra&lt;br /&gt;
 &lt;br /&gt;
Alcuni tipi di blocchi interessanti:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1 	Stone (minecraft:stone)&lt;br /&gt;
9 	Still Water (minecraft:water)&lt;br /&gt;
11 	Still Lava (minecraft:lava)&lt;br /&gt;
17 	Oak Wood (minecraft:log)&lt;br /&gt;
20 	Glass (minecraft:glass)&lt;br /&gt;
22 	Lapis Lazuli Block (minecraft:lapis_block)&lt;br /&gt;
37 	Dandelion (minecraft:yellow_flower)&lt;br /&gt;
41 	Gold Block (minecraft:gold_block)&lt;br /&gt;
42 	Iron Block (minecraft:iron_block)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== TO BE CONTINUED ==&lt;br /&gt;
&lt;br /&gt;
[[Category:Python|P]]&amp;lt;br/&amp;gt;[[Category:Minecraft|M]]&lt;/div&gt;</summary>
		<author><name>Fpiantini</name></author>	</entry>

	<entry>
		<id>https://kata.coderdojo.it/wiki/index.php?title=Python%2BMinecraft:_primi_esercizi</id>
		<title>Python+Minecraft: primi esercizi</title>
		<link rel="alternate" type="text/html" href="https://kata.coderdojo.it/wiki/index.php?title=Python%2BMinecraft:_primi_esercizi"/>
				<updated>2016-05-27T23:53:38Z</updated>
		
		<summary type="html">&lt;p&gt;Fpiantini: /* Esercizio 1: Teletrasportare il personaggio */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Gli esercizi descitti in questa pagina sono stati adattati a partire da quelli messi a disposizione dal repository [https://github.com/teachthenet/TeachCraft-Challenges TeachCraft-Challenges]. Si ringrazia [https://github.com/teachthenet TeachTheNet] per l'interessante materiale messo a disposizione.&lt;br /&gt;
&lt;br /&gt;
== Prerequisiti ==&lt;br /&gt;
&lt;br /&gt;
Deve essere stato installato l'interprete Python e il launcher Minecraft come descritto in [http://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_Setup_PC_dei_Partecipanti 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.&lt;br /&gt;
&lt;br /&gt;
Nel caso non lo avessete a disposizione in questo sito è disponibile [http://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_setup_di_un_server_Minecraft una pagina] che descrive come installarlo e avviarlo.&lt;br /&gt;
&lt;br /&gt;
Nel seguito supponiamo che il server sia disponibile all'indirizzo IP '''192.168.12.10'''.&lt;br /&gt;
&lt;br /&gt;
== Avviare il Launcher Minecraft ==&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ java -jar Minecraft_Launcher.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Una volta che il caricamento del launcher è terminato apparirà la seguente finestra:&lt;br /&gt;
&lt;br /&gt;
[[File:TLauncher 1.964 217.png|600px|File:TLauncher_1.964_217.png]]&lt;br /&gt;
&lt;br /&gt;
=== Configurazione ===&lt;br /&gt;
&lt;br /&gt;
Per evitare che tutte le volte che ci allontaniamo dalla finestra di Minecraft questa si disattivi, occorre modificare la configurazione di Minecraft.&lt;br /&gt;
In particolare occorre aprire il file di configurazione e modificare il parametro '''pauseOnLostFocus''' impostandolo al valore '''false''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pauseOnLostFocus:false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Per accedere al file di configurazione cliccare sul pulsante &amp;quot;Game Folder&amp;quot; in basso a destra della finestra del Launcher. All'interno della finestra che si aprirà cercare il file '''options.txt'''; aprirlo con un editor e modificare il parametro come indicato sopra.&lt;br /&gt;
&lt;br /&gt;
=== Collegamento al server ===&lt;br /&gt;
&lt;br /&gt;
Cliccare su '''Enter the Game''' in basso a destra. Attendere il caricamento di Minecraft. Apparirà la seguente finestra:&lt;br /&gt;
&lt;br /&gt;
[[File:Minecraft 1.8.8 218.png|600px|File:Minecraft_1.8.8_218.png]]&lt;br /&gt;
&lt;br /&gt;
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):&lt;br /&gt;
&lt;br /&gt;
[[File:Minecraft 1.8.8 219.png|600px|File:Minecraft_1.8.8_219.png]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Scrivere il primo programma Python ==&lt;br /&gt;
&lt;br /&gt;
Questo esercizio insegna come aprire una connessione con il server Minecraft per realizzare una semplice operazione di scrittura sulla chat del gioco.&lt;br /&gt;
&lt;br /&gt;
Aprire l'editor che si è scelto per scrivere il programma Python e inserire le seguenti righe:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line &amp;gt;&lt;br /&gt;
import mcpi.minecraft as minecraft&lt;br /&gt;
mc = minecraft.Minecraft.create(address=&amp;quot;192.168.12.10&amp;quot;, name=&amp;quot;rodmcban&amp;quot;)&lt;br /&gt;
mc.postToChat(&amp;quot;Ciao Minecraft!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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 '''&amp;quot;name&amp;quot;''' utilizzare quello del proprio personaggio (inserito all'inizio nella prima schermata del launcher).&lt;br /&gt;
&lt;br /&gt;
Salvare il file così scritto all'interno della directory '''TeachCraft-Challenges'''.&lt;br /&gt;
&lt;br /&gt;
Eseguire il programma Python con l'interprete che si ha a disposizione. Sulla finestra di Minecraft apparirà una riga di chat con scritto '''&amp;quot;Ciao Minecraft!&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
[[File:Minecraft 1.8.8 221.png|600px|File:Minecraft_1.8.8_221.png]]&lt;br /&gt;
&lt;br /&gt;
Vediamo nel dettaglio cosa significano le tre righe che abbiamo scritto.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line &amp;gt;&lt;br /&gt;
import mcpi.minecraft as minecraft&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line start=&amp;quot;2&amp;quot; &amp;gt;&lt;br /&gt;
mc = minecraft.Minecraft.create(address=&amp;quot;192.168.12.10&amp;quot;, name=&amp;quot;rodmcban&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Notare la variabile '''mc''': in questo &amp;quot;contenitore&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line start=&amp;quot;3&amp;quot; &amp;gt;&lt;br /&gt;
mc.postToChat(&amp;quot;Ciao Minecraft!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Esercizio 1: Teletrasportare il personaggio ==&lt;br /&gt;
&lt;br /&gt;
Con questo secondo programma vediamo come inviare un comando che cambia la posizione del personaggio a cui siamo agganciati. L'esempio è tratto dalla [https://github.com/teachthenet/TeachCraft-Challenges/blob/master/lesson_1.md prima lezione] del sito TeachCraft-Challenges.&lt;br /&gt;
&lt;br /&gt;
Il codice da scrivere stavolta è leggermente di più:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line &amp;gt;&lt;br /&gt;
# coding=utf-8&lt;br /&gt;
import mcpi.minecraft as minecraft&lt;br /&gt;
&lt;br /&gt;
# NOTA - sostituire l'indirizzo IP 192.168.12.10 con quello del server a cui&lt;br /&gt;
# si è collegati e &amp;quot;rodmcban&amp;quot; con il nome del proprio personaggio&lt;br /&gt;
mc = minecraft.Minecraft.create(address=&amp;quot;192.168.12.10&amp;quot;, name=&amp;quot;rodmcban&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
mc.player.setPos(-33, 20, 34)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Qui introduciamo i '''commenti''' che sono le righe che iniziano con il carattere '''#'''.&lt;br /&gt;
Queste righe servono a noi per ricordarci qualcosa sul codice che stiamo scrivendo ma sono completamente ignorate dall'interprete Python. Di fatto non servono all'esecuzione del programma&lt;br /&gt;
&lt;br /&gt;
A parte i commenti riconosciamo le prime due righe di codice, che altro non sono che quelle che già conosciamo e che servono a stabilire una connessione con un personaggio sul server.&lt;br /&gt;
&lt;br /&gt;
La terza riga che è quella che effettua veramente un'operazione questa volta utilizza il metodo '''setPos''' per impostare la posizione del personaggio a dove vogliamo noi.&lt;br /&gt;
&lt;br /&gt;
Provate a spostarvi per il mondo Minecraft dove volete e poi provate ad eseguire questo nuovo programma: tornerete tutte le volte a una posizione predefinita.&lt;br /&gt;
&lt;br /&gt;
=== Concetto di programmazione: le VARIABILI ===&lt;br /&gt;
&lt;br /&gt;
Usciamo adesso un attimo dal mondo Minecraft e parliamo di un concetto molto importante della programmazione: le '''variabili'''. &lt;br /&gt;
&lt;br /&gt;
Immaginate una variabile come un contenitore che contiene un valore. Per esempio L'istruzione:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line &amp;gt;&lt;br /&gt;
v = 1000&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
assegna alla variabile '''v''' il valore '''1000'''. Quando nel seguito faremo riferimento alla variabile '''v''' semplicemente otterremo il valore '''1000'''. Per esempio proviamo a scrivere ed eseguire il seguente programma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line &amp;gt;&lt;br /&gt;
v = 1000&lt;br /&gt;
print &amp;quot;la variabile di nome v vale: &amp;quot;, v&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il programma salva dentro la variabile '''v''' il valore '''1000''' e successivamente stampa sulla console un messaggio e il valore della variabile v. (Incidentalmente abbiamo scoperto la funzione '''print''', una funzione molto comoda che stampa messaggi sulla finestra dove eseguiamo il programma (la ''console'')).&lt;br /&gt;
&lt;br /&gt;
Scriviamo adesso una versione leggermente più complicata del programma di teletrasporto utilizzando delle '''variabili''' per indicare le tre componenti della posizione '''x''', '''y''' e '''z''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line &amp;gt;&lt;br /&gt;
# coding=utf-8&lt;br /&gt;
import mcpi.minecraft as minecraft&lt;br /&gt;
&lt;br /&gt;
# NOTA - sostituire l'indirizzo IP 192.168.12.10 con quello del server a cui&lt;br /&gt;
# si è collegati e &amp;quot;rodmcban&amp;quot; con il nome del proprio personaggio&lt;br /&gt;
mc = minecraft.Minecraft.create(address=&amp;quot;192.168.12.10&amp;quot;, name=&amp;quot;rodmcban&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
x = -33&lt;br /&gt;
y = 20&lt;br /&gt;
z = 34&lt;br /&gt;
&lt;br /&gt;
mc.player.setPos(x, y, z)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Esercizi ===&lt;br /&gt;
&lt;br /&gt;
* Provare a modificare i valori dei tre argomenti della funzione '''setPos'''. Cosa succede?&lt;br /&gt;
* Quale tra '''x''', '''y''' e '''z''' è quello che cambia la posizione verticale del personaggio?&lt;br /&gt;
* Scrivere un programma python che calcola il risultato dell'operazione '''2 + 3''', lo memorizza in una variabile e lo stampa nella console&lt;br /&gt;
&lt;br /&gt;
== Esercizio 2: Seminare funghi... ==&lt;br /&gt;
&lt;br /&gt;
I programmi visti finora facevano una singola cosa e poi terminavano.&lt;br /&gt;
Con il nuovo programma che stiamo per scrivere sperimenteremo una istruzione che ci permetterà di ripetere un ciclo di istruzioni più volte.&lt;br /&gt;
&lt;br /&gt;
L'istruzione si chiama '''while''' e significa '''ripeti fino a quando'''. In pratica questa istruzione ripete una o più operazioni finché una condizione rimane vera. Siccome noi in questo primo programma vogliamo ripetere un gruppo di istruzioni '''per sempre''' utilizzeremo un caso particolare del ciclo while che è il '''while True''' dove '''True''' e una variabile logica che significa '''Vero'''. Per questo '''while True''' significa in soldoni '''ripeti per sempre'''.&lt;br /&gt;
&lt;br /&gt;
Adesso dobbiamo capire un'altra cosa: con l'istruzione '''while''' noi non vogliamo ripetere per sempre non una singola cosa, ma un blocco di istruzioni. Come facciamo a riconoscere quali sono le istruzioni che devono essere ripetute? O in parole più tecniche il '''blocco''' di istruzioni da ripetere?&lt;br /&gt;
&lt;br /&gt;
Per questo in Python utilizziamo '''l'indentazione''' e cioè mettiamo all'inizio della riga un carattere '''TAB''' (quello che abbiamo sulla nostra tastiera a sinistra sopra il tasto che ci permettere di stampare i caratteri maiuscoli).&lt;br /&gt;
&lt;br /&gt;
Ecco alla fine come apparirà il nostro programma, con un po' di commenti che ci spiegano cosa sta succedendo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line &amp;gt;&lt;br /&gt;
# coding=utf-8&lt;br /&gt;
import time&lt;br /&gt;
&lt;br /&gt;
import mcpi.minecraft as minecraft&lt;br /&gt;
mc = minecraft.Minecraft.create(address=&amp;quot;192.168.12.10&amp;quot;, name=&amp;quot;rodmcban&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
# I blocchi utilizzati in Minecraft hanno un codice numerico.&lt;br /&gt;
# L'elenco dei codici è reperibile al seguente indirizzo:&lt;br /&gt;
#    http://minecraft-ids.grahamedgecombe.com/&lt;br /&gt;
#&lt;br /&gt;
# Utilizziamo il blocco 40, che rappresenta dei funghi:&lt;br /&gt;
block = 40&lt;br /&gt;
&lt;br /&gt;
print &amp;quot;Prima del ciclo.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
while True:&lt;br /&gt;
	# Recupera la posizione corrente del giocatore (coordinate X, Y e Z)&lt;br /&gt;
	# e le salva nella variabile pos:&lt;br /&gt;
	pos = mc.player.getPos()&lt;br /&gt;
&lt;br /&gt;
	# Estrae dalla variabile pos il valore delle coordinate&lt;br /&gt;
	# e le salva nelle variabili x, y, z&lt;br /&gt;
	x = pos.x&lt;br /&gt;
	y = pos.y&lt;br /&gt;
	z = pos.z&lt;br /&gt;
&lt;br /&gt;
	# &lt;br /&gt;
	# Cambia il blocco che si trova immediatamente dietro&lt;br /&gt;
	# il personaggio al tipo di blocco che abbiamo scelto&lt;br /&gt;
	# in precedenza&lt;br /&gt;
	mc.setBlock(x-1, y, z, block)&lt;br /&gt;
&lt;br /&gt;
	# Usa la funzione print per stampare la posizione del giocatore &lt;br /&gt;
	# e quindi torna all'inizio del ciclo&lt;br /&gt;
	print &amp;quot;Posizione = &amp;quot;, int(x), &amp;quot;, &amp;quot;, int(y), &amp;quot;, &amp;quot;, int(z), &amp;quot; ---  Aspettiamo 0.2 secondi e ripetiamo il ciclo&amp;quot;&lt;br /&gt;
	time.sleep (0.2)&lt;br /&gt;
&lt;br /&gt;
print &amp;quot;fuori dal ciclo&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Provate a muovervi per lo schermo e osservare cosa succede.&lt;br /&gt;
&lt;br /&gt;
'''Esercizi:'''&lt;br /&gt;
* Provare a cambiare il tipo di blocco che viene generato dietro il personaggio&lt;br /&gt;
* Invece di mettere il blocco dietro il personaggio provare a metterlo sotto oppure a destra e a sinistra&lt;br /&gt;
 &lt;br /&gt;
Alcuni tipi di blocchi interessanti:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1 	Stone (minecraft:stone)&lt;br /&gt;
9 	Still Water (minecraft:water)&lt;br /&gt;
11 	Still Lava (minecraft:lava)&lt;br /&gt;
17 	Oak Wood (minecraft:log)&lt;br /&gt;
20 	Glass (minecraft:glass)&lt;br /&gt;
22 	Lapis Lazuli Block (minecraft:lapis_block)&lt;br /&gt;
37 	Dandelion (minecraft:yellow_flower)&lt;br /&gt;
41 	Gold Block (minecraft:gold_block)&lt;br /&gt;
42 	Iron Block (minecraft:iron_block)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== TO BE CONTINUED ==&lt;br /&gt;
&lt;br /&gt;
[[Category:Python|P]]&amp;lt;br/&amp;gt;[[Category:Minecraft|M]]&lt;/div&gt;</summary>
		<author><name>Fpiantini</name></author>	</entry>

	<entry>
		<id>https://kata.coderdojo.it/wiki/index.php?title=Python%2BMinecraft:_primi_esercizi</id>
		<title>Python+Minecraft: primi esercizi</title>
		<link rel="alternate" type="text/html" href="https://kata.coderdojo.it/wiki/index.php?title=Python%2BMinecraft:_primi_esercizi"/>
				<updated>2016-05-27T23:53:08Z</updated>
		
		<summary type="html">&lt;p&gt;Fpiantini: /* Esercizio 2: Seminare funghi... */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Gli esercizi descitti in questa pagina sono stati adattati a partire da quelli messi a disposizione dal repository [https://github.com/teachthenet/TeachCraft-Challenges TeachCraft-Challenges]. Si ringrazia [https://github.com/teachthenet TeachTheNet] per l'interessante materiale messo a disposizione.&lt;br /&gt;
&lt;br /&gt;
== Prerequisiti ==&lt;br /&gt;
&lt;br /&gt;
Deve essere stato installato l'interprete Python e il launcher Minecraft come descritto in [http://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_Setup_PC_dei_Partecipanti 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.&lt;br /&gt;
&lt;br /&gt;
Nel caso non lo avessete a disposizione in questo sito è disponibile [http://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_setup_di_un_server_Minecraft una pagina] che descrive come installarlo e avviarlo.&lt;br /&gt;
&lt;br /&gt;
Nel seguito supponiamo che il server sia disponibile all'indirizzo IP '''192.168.12.10'''.&lt;br /&gt;
&lt;br /&gt;
== Avviare il Launcher Minecraft ==&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ java -jar Minecraft_Launcher.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Una volta che il caricamento del launcher è terminato apparirà la seguente finestra:&lt;br /&gt;
&lt;br /&gt;
[[File:TLauncher 1.964 217.png|600px|File:TLauncher_1.964_217.png]]&lt;br /&gt;
&lt;br /&gt;
=== Configurazione ===&lt;br /&gt;
&lt;br /&gt;
Per evitare che tutte le volte che ci allontaniamo dalla finestra di Minecraft questa si disattivi, occorre modificare la configurazione di Minecraft.&lt;br /&gt;
In particolare occorre aprire il file di configurazione e modificare il parametro '''pauseOnLostFocus''' impostandolo al valore '''false''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pauseOnLostFocus:false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Per accedere al file di configurazione cliccare sul pulsante &amp;quot;Game Folder&amp;quot; in basso a destra della finestra del Launcher. All'interno della finestra che si aprirà cercare il file '''options.txt'''; aprirlo con un editor e modificare il parametro come indicato sopra.&lt;br /&gt;
&lt;br /&gt;
=== Collegamento al server ===&lt;br /&gt;
&lt;br /&gt;
Cliccare su '''Enter the Game''' in basso a destra. Attendere il caricamento di Minecraft. Apparirà la seguente finestra:&lt;br /&gt;
&lt;br /&gt;
[[File:Minecraft 1.8.8 218.png|600px|File:Minecraft_1.8.8_218.png]]&lt;br /&gt;
&lt;br /&gt;
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):&lt;br /&gt;
&lt;br /&gt;
[[File:Minecraft 1.8.8 219.png|600px|File:Minecraft_1.8.8_219.png]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Scrivere il primo programma Python ==&lt;br /&gt;
&lt;br /&gt;
Questo esercizio insegna come aprire una connessione con il server Minecraft per realizzare una semplice operazione di scrittura sulla chat del gioco.&lt;br /&gt;
&lt;br /&gt;
Aprire l'editor che si è scelto per scrivere il programma Python e inserire le seguenti righe:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line &amp;gt;&lt;br /&gt;
import mcpi.minecraft as minecraft&lt;br /&gt;
mc = minecraft.Minecraft.create(address=&amp;quot;192.168.12.10&amp;quot;, name=&amp;quot;rodmcban&amp;quot;)&lt;br /&gt;
mc.postToChat(&amp;quot;Ciao Minecraft!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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 '''&amp;quot;name&amp;quot;''' utilizzare quello del proprio personaggio (inserito all'inizio nella prima schermata del launcher).&lt;br /&gt;
&lt;br /&gt;
Salvare il file così scritto all'interno della directory '''TeachCraft-Challenges'''.&lt;br /&gt;
&lt;br /&gt;
Eseguire il programma Python con l'interprete che si ha a disposizione. Sulla finestra di Minecraft apparirà una riga di chat con scritto '''&amp;quot;Ciao Minecraft!&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
[[File:Minecraft 1.8.8 221.png|600px|File:Minecraft_1.8.8_221.png]]&lt;br /&gt;
&lt;br /&gt;
Vediamo nel dettaglio cosa significano le tre righe che abbiamo scritto.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line &amp;gt;&lt;br /&gt;
import mcpi.minecraft as minecraft&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line start=&amp;quot;2&amp;quot; &amp;gt;&lt;br /&gt;
mc = minecraft.Minecraft.create(address=&amp;quot;192.168.12.10&amp;quot;, name=&amp;quot;rodmcban&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Notare la variabile '''mc''': in questo &amp;quot;contenitore&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line start=&amp;quot;3&amp;quot; &amp;gt;&lt;br /&gt;
mc.postToChat(&amp;quot;Ciao Minecraft!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Esercizio 1: Teletrasportare il personaggio ==&lt;br /&gt;
&lt;br /&gt;
Con questo secondo programma vediamo come inviare un comando che cambia la posizione del personaggio a cui siamo agganciati. L'esempio è tratto dalla [https://github.com/teachthenet/TeachCraft-Challenges/blob/master/lesson_1.md prima lezione] del sito TeachCraft-Challenges.&lt;br /&gt;
&lt;br /&gt;
Il codice da scrivere stavolta è leggermente di più:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line &amp;gt;&lt;br /&gt;
# coding=utf-8&lt;br /&gt;
import mcpi.minecraft as minecraft&lt;br /&gt;
&lt;br /&gt;
# NOTA - sostituire l'indirizzo IP 192.168.12.10 con quello del server a cui&lt;br /&gt;
# si è collegati e &amp;quot;rodmcban&amp;quot; con il nome del proprio personaggio&lt;br /&gt;
mc = minecraft.Minecraft.create(address=&amp;quot;192.168.12.10&amp;quot;, name=&amp;quot;rodmcban&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
mc.player.setPos(-33, 20, 34)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Qui introduciamo i '''commenti''' che sono le righe che iniziano con il carattere '''#'''.&lt;br /&gt;
Queste righe servono a noi per ricordarci qualcosa sul codice che stiamo scrivendo ma sono completamente ignorate dall'interprete Python. Di fatto non servono all'esecuzione del programma&lt;br /&gt;
&lt;br /&gt;
A parte i commenti riconosciamo le prime due righe di codice, che altro non sono che quelle che già conosciamo e che servono a stabilire una connessione con un personaggio sul server.&lt;br /&gt;
&lt;br /&gt;
La terza riga che è quella che effettua veramente un'operazione questa volta utilizza il metodo '''setPos''' per impostare la posizione del personaggio a dove vogliamo noi.&lt;br /&gt;
&lt;br /&gt;
Provate a spostarvi per il mondo Minecraft dove volete e poi provate ad eseguire questo nuovo programma: tornerete tutte le volte a una posizione predefinita.&lt;br /&gt;
&lt;br /&gt;
=== Concetto di programmazione: le VARIABILI ===&lt;br /&gt;
&lt;br /&gt;
Usciamo adesso un attimo dal mondo Minecraft e parliamo di un concetto molto importante della programmazione: le '''variabili'''. &lt;br /&gt;
&lt;br /&gt;
Immaginate una variabile come un contenitore che contiene un valore. Per esempio L'istruzione:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line &amp;gt;&lt;br /&gt;
v = 1000&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
assegna alla variabile '''v''' il valore '''1000'''. Quando nel seguito faremo riferimento alla variabile '''v''' semplicemente otterremo il valore '''1000'''. Per esempio proviamo a scrivere ed eseguire il seguente programma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line &amp;gt;&lt;br /&gt;
v = 1000&lt;br /&gt;
print &amp;quot;la variabile di nome v vale: &amp;quot;, v&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il programma salva dentro la variabile '''v''' il valore '''1000''' e successivamente stampa sulla console un messaggio e il valore della variabile v. (Incidentalmente abbiamo scoperto la funzione '''print''', una funzione molto comoda che stampa messaggi sulla finestra dove eseguiamo il programma (la ''console'')).&lt;br /&gt;
&lt;br /&gt;
Scriviamo adesso una versione leggermente più complicata del programma di teletrasporto utilizzando delle '''variabili''' per indicare le tre componenti della posizione '''x''', '''y''' e '''z''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line &amp;gt;&lt;br /&gt;
# coding=utf-8&lt;br /&gt;
import mcpi.minecraft as minecraft&lt;br /&gt;
&lt;br /&gt;
# NOTA - sostituire l'indirizzo IP 192.168.12.10 con quello del server a cui&lt;br /&gt;
# si è collegati e &amp;quot;rodmcban&amp;quot; con il nome del proprio personaggio&lt;br /&gt;
mc = minecraft.Minecraft.create(address=&amp;quot;192.168.12.10&amp;quot;, name=&amp;quot;rodmcban&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
x = -33&lt;br /&gt;
y = 20&lt;br /&gt;
z = 34&lt;br /&gt;
&lt;br /&gt;
mc.player.setPos(x, y, z)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Esercizi:&lt;br /&gt;
* Provate a modificare i valori dei tre argomenti della funzione '''setPos'''. Cosa succede?&lt;br /&gt;
* Quale tra '''x''', '''y''' e '''z''' è quello che cambia la posizione verticale del personaggio?&lt;br /&gt;
* Scrivere un programma python che calcola il risultato dell'operazione '''2 + 3''', lo memorizza in una variabile e lo stampa nella console&lt;br /&gt;
&lt;br /&gt;
== Esercizio 2: Seminare funghi... ==&lt;br /&gt;
&lt;br /&gt;
I programmi visti finora facevano una singola cosa e poi terminavano.&lt;br /&gt;
Con il nuovo programma che stiamo per scrivere sperimenteremo una istruzione che ci permetterà di ripetere un ciclo di istruzioni più volte.&lt;br /&gt;
&lt;br /&gt;
L'istruzione si chiama '''while''' e significa '''ripeti fino a quando'''. In pratica questa istruzione ripete una o più operazioni finché una condizione rimane vera. Siccome noi in questo primo programma vogliamo ripetere un gruppo di istruzioni '''per sempre''' utilizzeremo un caso particolare del ciclo while che è il '''while True''' dove '''True''' e una variabile logica che significa '''Vero'''. Per questo '''while True''' significa in soldoni '''ripeti per sempre'''.&lt;br /&gt;
&lt;br /&gt;
Adesso dobbiamo capire un'altra cosa: con l'istruzione '''while''' noi non vogliamo ripetere per sempre non una singola cosa, ma un blocco di istruzioni. Come facciamo a riconoscere quali sono le istruzioni che devono essere ripetute? O in parole più tecniche il '''blocco''' di istruzioni da ripetere?&lt;br /&gt;
&lt;br /&gt;
Per questo in Python utilizziamo '''l'indentazione''' e cioè mettiamo all'inizio della riga un carattere '''TAB''' (quello che abbiamo sulla nostra tastiera a sinistra sopra il tasto che ci permettere di stampare i caratteri maiuscoli).&lt;br /&gt;
&lt;br /&gt;
Ecco alla fine come apparirà il nostro programma, con un po' di commenti che ci spiegano cosa sta succedendo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line &amp;gt;&lt;br /&gt;
# coding=utf-8&lt;br /&gt;
import time&lt;br /&gt;
&lt;br /&gt;
import mcpi.minecraft as minecraft&lt;br /&gt;
mc = minecraft.Minecraft.create(address=&amp;quot;192.168.12.10&amp;quot;, name=&amp;quot;rodmcban&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
# I blocchi utilizzati in Minecraft hanno un codice numerico.&lt;br /&gt;
# L'elenco dei codici è reperibile al seguente indirizzo:&lt;br /&gt;
#    http://minecraft-ids.grahamedgecombe.com/&lt;br /&gt;
#&lt;br /&gt;
# Utilizziamo il blocco 40, che rappresenta dei funghi:&lt;br /&gt;
block = 40&lt;br /&gt;
&lt;br /&gt;
print &amp;quot;Prima del ciclo.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
while True:&lt;br /&gt;
	# Recupera la posizione corrente del giocatore (coordinate X, Y e Z)&lt;br /&gt;
	# e le salva nella variabile pos:&lt;br /&gt;
	pos = mc.player.getPos()&lt;br /&gt;
&lt;br /&gt;
	# Estrae dalla variabile pos il valore delle coordinate&lt;br /&gt;
	# e le salva nelle variabili x, y, z&lt;br /&gt;
	x = pos.x&lt;br /&gt;
	y = pos.y&lt;br /&gt;
	z = pos.z&lt;br /&gt;
&lt;br /&gt;
	# &lt;br /&gt;
	# Cambia il blocco che si trova immediatamente dietro&lt;br /&gt;
	# il personaggio al tipo di blocco che abbiamo scelto&lt;br /&gt;
	# in precedenza&lt;br /&gt;
	mc.setBlock(x-1, y, z, block)&lt;br /&gt;
&lt;br /&gt;
	# Usa la funzione print per stampare la posizione del giocatore &lt;br /&gt;
	# e quindi torna all'inizio del ciclo&lt;br /&gt;
	print &amp;quot;Posizione = &amp;quot;, int(x), &amp;quot;, &amp;quot;, int(y), &amp;quot;, &amp;quot;, int(z), &amp;quot; ---  Aspettiamo 0.2 secondi e ripetiamo il ciclo&amp;quot;&lt;br /&gt;
	time.sleep (0.2)&lt;br /&gt;
&lt;br /&gt;
print &amp;quot;fuori dal ciclo&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Provate a muovervi per lo schermo e osservare cosa succede.&lt;br /&gt;
&lt;br /&gt;
'''Esercizi:'''&lt;br /&gt;
* Provare a cambiare il tipo di blocco che viene generato dietro il personaggio&lt;br /&gt;
* Invece di mettere il blocco dietro il personaggio provare a metterlo sotto oppure a destra e a sinistra&lt;br /&gt;
 &lt;br /&gt;
Alcuni tipi di blocchi interessanti:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1 	Stone (minecraft:stone)&lt;br /&gt;
9 	Still Water (minecraft:water)&lt;br /&gt;
11 	Still Lava (minecraft:lava)&lt;br /&gt;
17 	Oak Wood (minecraft:log)&lt;br /&gt;
20 	Glass (minecraft:glass)&lt;br /&gt;
22 	Lapis Lazuli Block (minecraft:lapis_block)&lt;br /&gt;
37 	Dandelion (minecraft:yellow_flower)&lt;br /&gt;
41 	Gold Block (minecraft:gold_block)&lt;br /&gt;
42 	Iron Block (minecraft:iron_block)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== TO BE CONTINUED ==&lt;br /&gt;
&lt;br /&gt;
[[Category:Python|P]]&amp;lt;br/&amp;gt;[[Category:Minecraft|M]]&lt;/div&gt;</summary>
		<author><name>Fpiantini</name></author>	</entry>

	<entry>
		<id>https://kata.coderdojo.it/wiki/index.php?title=Python%2BMinecraft:_primi_esercizi</id>
		<title>Python+Minecraft: primi esercizi</title>
		<link rel="alternate" type="text/html" href="https://kata.coderdojo.it/wiki/index.php?title=Python%2BMinecraft:_primi_esercizi"/>
				<updated>2016-05-27T23:52:18Z</updated>
		
		<summary type="html">&lt;p&gt;Fpiantini: /* Esercizio 2: Seminare funghi... */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Gli esercizi descitti in questa pagina sono stati adattati a partire da quelli messi a disposizione dal repository [https://github.com/teachthenet/TeachCraft-Challenges TeachCraft-Challenges]. Si ringrazia [https://github.com/teachthenet TeachTheNet] per l'interessante materiale messo a disposizione.&lt;br /&gt;
&lt;br /&gt;
== Prerequisiti ==&lt;br /&gt;
&lt;br /&gt;
Deve essere stato installato l'interprete Python e il launcher Minecraft come descritto in [http://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_Setup_PC_dei_Partecipanti 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.&lt;br /&gt;
&lt;br /&gt;
Nel caso non lo avessete a disposizione in questo sito è disponibile [http://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_setup_di_un_server_Minecraft una pagina] che descrive come installarlo e avviarlo.&lt;br /&gt;
&lt;br /&gt;
Nel seguito supponiamo che il server sia disponibile all'indirizzo IP '''192.168.12.10'''.&lt;br /&gt;
&lt;br /&gt;
== Avviare il Launcher Minecraft ==&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ java -jar Minecraft_Launcher.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Una volta che il caricamento del launcher è terminato apparirà la seguente finestra:&lt;br /&gt;
&lt;br /&gt;
[[File:TLauncher 1.964 217.png|600px|File:TLauncher_1.964_217.png]]&lt;br /&gt;
&lt;br /&gt;
=== Configurazione ===&lt;br /&gt;
&lt;br /&gt;
Per evitare che tutte le volte che ci allontaniamo dalla finestra di Minecraft questa si disattivi, occorre modificare la configurazione di Minecraft.&lt;br /&gt;
In particolare occorre aprire il file di configurazione e modificare il parametro '''pauseOnLostFocus''' impostandolo al valore '''false''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pauseOnLostFocus:false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Per accedere al file di configurazione cliccare sul pulsante &amp;quot;Game Folder&amp;quot; in basso a destra della finestra del Launcher. All'interno della finestra che si aprirà cercare il file '''options.txt'''; aprirlo con un editor e modificare il parametro come indicato sopra.&lt;br /&gt;
&lt;br /&gt;
=== Collegamento al server ===&lt;br /&gt;
&lt;br /&gt;
Cliccare su '''Enter the Game''' in basso a destra. Attendere il caricamento di Minecraft. Apparirà la seguente finestra:&lt;br /&gt;
&lt;br /&gt;
[[File:Minecraft 1.8.8 218.png|600px|File:Minecraft_1.8.8_218.png]]&lt;br /&gt;
&lt;br /&gt;
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):&lt;br /&gt;
&lt;br /&gt;
[[File:Minecraft 1.8.8 219.png|600px|File:Minecraft_1.8.8_219.png]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Scrivere il primo programma Python ==&lt;br /&gt;
&lt;br /&gt;
Questo esercizio insegna come aprire una connessione con il server Minecraft per realizzare una semplice operazione di scrittura sulla chat del gioco.&lt;br /&gt;
&lt;br /&gt;
Aprire l'editor che si è scelto per scrivere il programma Python e inserire le seguenti righe:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line &amp;gt;&lt;br /&gt;
import mcpi.minecraft as minecraft&lt;br /&gt;
mc = minecraft.Minecraft.create(address=&amp;quot;192.168.12.10&amp;quot;, name=&amp;quot;rodmcban&amp;quot;)&lt;br /&gt;
mc.postToChat(&amp;quot;Ciao Minecraft!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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 '''&amp;quot;name&amp;quot;''' utilizzare quello del proprio personaggio (inserito all'inizio nella prima schermata del launcher).&lt;br /&gt;
&lt;br /&gt;
Salvare il file così scritto all'interno della directory '''TeachCraft-Challenges'''.&lt;br /&gt;
&lt;br /&gt;
Eseguire il programma Python con l'interprete che si ha a disposizione. Sulla finestra di Minecraft apparirà una riga di chat con scritto '''&amp;quot;Ciao Minecraft!&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
[[File:Minecraft 1.8.8 221.png|600px|File:Minecraft_1.8.8_221.png]]&lt;br /&gt;
&lt;br /&gt;
Vediamo nel dettaglio cosa significano le tre righe che abbiamo scritto.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line &amp;gt;&lt;br /&gt;
import mcpi.minecraft as minecraft&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line start=&amp;quot;2&amp;quot; &amp;gt;&lt;br /&gt;
mc = minecraft.Minecraft.create(address=&amp;quot;192.168.12.10&amp;quot;, name=&amp;quot;rodmcban&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Notare la variabile '''mc''': in questo &amp;quot;contenitore&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line start=&amp;quot;3&amp;quot; &amp;gt;&lt;br /&gt;
mc.postToChat(&amp;quot;Ciao Minecraft!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Esercizio 1: Teletrasportare il personaggio ==&lt;br /&gt;
&lt;br /&gt;
Con questo secondo programma vediamo come inviare un comando che cambia la posizione del personaggio a cui siamo agganciati. L'esempio è tratto dalla [https://github.com/teachthenet/TeachCraft-Challenges/blob/master/lesson_1.md prima lezione] del sito TeachCraft-Challenges.&lt;br /&gt;
&lt;br /&gt;
Il codice da scrivere stavolta è leggermente di più:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line &amp;gt;&lt;br /&gt;
# coding=utf-8&lt;br /&gt;
import mcpi.minecraft as minecraft&lt;br /&gt;
&lt;br /&gt;
# NOTA - sostituire l'indirizzo IP 192.168.12.10 con quello del server a cui&lt;br /&gt;
# si è collegati e &amp;quot;rodmcban&amp;quot; con il nome del proprio personaggio&lt;br /&gt;
mc = minecraft.Minecraft.create(address=&amp;quot;192.168.12.10&amp;quot;, name=&amp;quot;rodmcban&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
mc.player.setPos(-33, 20, 34)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Qui introduciamo i '''commenti''' che sono le righe che iniziano con il carattere '''#'''.&lt;br /&gt;
Queste righe servono a noi per ricordarci qualcosa sul codice che stiamo scrivendo ma sono completamente ignorate dall'interprete Python. Di fatto non servono all'esecuzione del programma&lt;br /&gt;
&lt;br /&gt;
A parte i commenti riconosciamo le prime due righe di codice, che altro non sono che quelle che già conosciamo e che servono a stabilire una connessione con un personaggio sul server.&lt;br /&gt;
&lt;br /&gt;
La terza riga che è quella che effettua veramente un'operazione questa volta utilizza il metodo '''setPos''' per impostare la posizione del personaggio a dove vogliamo noi.&lt;br /&gt;
&lt;br /&gt;
Provate a spostarvi per il mondo Minecraft dove volete e poi provate ad eseguire questo nuovo programma: tornerete tutte le volte a una posizione predefinita.&lt;br /&gt;
&lt;br /&gt;
=== Concetto di programmazione: le VARIABILI ===&lt;br /&gt;
&lt;br /&gt;
Usciamo adesso un attimo dal mondo Minecraft e parliamo di un concetto molto importante della programmazione: le '''variabili'''. &lt;br /&gt;
&lt;br /&gt;
Immaginate una variabile come un contenitore che contiene un valore. Per esempio L'istruzione:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line &amp;gt;&lt;br /&gt;
v = 1000&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
assegna alla variabile '''v''' il valore '''1000'''. Quando nel seguito faremo riferimento alla variabile '''v''' semplicemente otterremo il valore '''1000'''. Per esempio proviamo a scrivere ed eseguire il seguente programma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line &amp;gt;&lt;br /&gt;
v = 1000&lt;br /&gt;
print &amp;quot;la variabile di nome v vale: &amp;quot;, v&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il programma salva dentro la variabile '''v''' il valore '''1000''' e successivamente stampa sulla console un messaggio e il valore della variabile v. (Incidentalmente abbiamo scoperto la funzione '''print''', una funzione molto comoda che stampa messaggi sulla finestra dove eseguiamo il programma (la ''console'')).&lt;br /&gt;
&lt;br /&gt;
Scriviamo adesso una versione leggermente più complicata del programma di teletrasporto utilizzando delle '''variabili''' per indicare le tre componenti della posizione '''x''', '''y''' e '''z''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line &amp;gt;&lt;br /&gt;
# coding=utf-8&lt;br /&gt;
import mcpi.minecraft as minecraft&lt;br /&gt;
&lt;br /&gt;
# NOTA - sostituire l'indirizzo IP 192.168.12.10 con quello del server a cui&lt;br /&gt;
# si è collegati e &amp;quot;rodmcban&amp;quot; con il nome del proprio personaggio&lt;br /&gt;
mc = minecraft.Minecraft.create(address=&amp;quot;192.168.12.10&amp;quot;, name=&amp;quot;rodmcban&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
x = -33&lt;br /&gt;
y = 20&lt;br /&gt;
z = 34&lt;br /&gt;
&lt;br /&gt;
mc.player.setPos(x, y, z)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Esercizi:&lt;br /&gt;
* Provate a modificare i valori dei tre argomenti della funzione '''setPos'''. Cosa succede?&lt;br /&gt;
* Quale tra '''x''', '''y''' e '''z''' è quello che cambia la posizione verticale del personaggio?&lt;br /&gt;
* Scrivere un programma python che calcola il risultato dell'operazione '''2 + 3''', lo memorizza in una variabile e lo stampa nella console&lt;br /&gt;
&lt;br /&gt;
== Esercizio 2: Seminare funghi... ==&lt;br /&gt;
&lt;br /&gt;
I programmi visti finora facevano una singola cosa e poi terminavano.&lt;br /&gt;
Con il nuovo programma che stiamo per scrivere sperimenteremo una istruzione che ci permetterà di ripetere un ciclo di istruzioni più volte.&lt;br /&gt;
&lt;br /&gt;
L'istruzione si chiama '''while''' e significa '''ripeti fino a quando'''. In pratica questa istruzione ripete una o più operazioni finché una condizione rimane vera. Siccome noi in questo primo programma vogliamo ripetere un gruppo di istruzioni '''per sempre''' utilizzeremo un caso particolare del ciclo while che è il '''while True''' dove '''True''' e una variabile logica che significa '''Vero'''. Per questo '''while True''' significa in soldoni '''ripeti per sempre'''.&lt;br /&gt;
&lt;br /&gt;
Adesso dobbiamo capire un'altra cosa: con l'istruzione '''while''' noi non vogliamo ripetere per sempre non una singola cosa, ma un blocco di istruzioni. Come facciamo a riconoscere quali sono le istruzioni che devono essere ripetute? O in parole più tecniche il '''blocco''' di istruzioni da ripetere?&lt;br /&gt;
&lt;br /&gt;
Per questo in Python utilizziamo '''l'indentazione''' e cioè mettiamo all'inizio della riga un carattere '''TAB''' (quello che abbiamo sulla nostra tastiera a sinistra sopra il tasto che ci permettere di stampare i caratteri maiuscoli).&lt;br /&gt;
&lt;br /&gt;
Ecco alla fine come apparirà il nostro programma, con un po' di commenti che ci spiegano cosa sta succedendo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line &amp;gt;&lt;br /&gt;
# coding=utf-8&lt;br /&gt;
import time&lt;br /&gt;
&lt;br /&gt;
import mcpi.minecraft as minecraft&lt;br /&gt;
mc = minecraft.Minecraft.create(address=&amp;quot;192.168.12.10&amp;quot;, name=&amp;quot;rodmcban&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
# I blocchi utilizzati in Minecraft hanno un codice numerico.&lt;br /&gt;
# L'elenco dei codici è reperibile al seguente indirizzo:&lt;br /&gt;
#    http://minecraft-ids.grahamedgecombe.com/&lt;br /&gt;
#&lt;br /&gt;
# Utilizziamo il blocco 40, che rappresenta dei funghi:&lt;br /&gt;
block = 40&lt;br /&gt;
&lt;br /&gt;
print &amp;quot;Prima del ciclo.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
while True:&lt;br /&gt;
	# Recupera la posizione corrente del giocatore (coordinate X, Y e Z)&lt;br /&gt;
	# e le salva nella variabile pos:&lt;br /&gt;
	pos = mc.player.getPos()&lt;br /&gt;
&lt;br /&gt;
	# Estrae dalla variabile pos il valore delle coordinate&lt;br /&gt;
	# e le salva nelle variabili x, y, z&lt;br /&gt;
	x = pos.x&lt;br /&gt;
	y = pos.y&lt;br /&gt;
	z = pos.z&lt;br /&gt;
&lt;br /&gt;
	# &lt;br /&gt;
	# Cambia il blocco che si trova immediatamente dietro&lt;br /&gt;
	# il personaggio al tipo di blocco che abbiamo scelto&lt;br /&gt;
	# in precedenza&lt;br /&gt;
	mc.setBlock(x-1, y, z, block)&lt;br /&gt;
&lt;br /&gt;
	# Usa la funzione print per stampare la posizione del giocatore &lt;br /&gt;
	# e quindi torna all'inizio del ciclo&lt;br /&gt;
	print &amp;quot;Posizione = &amp;quot;, int(x), &amp;quot;, &amp;quot;, int(y), &amp;quot;, &amp;quot;, int(z), &amp;quot; ---  Aspettiamo 0.2 secondi e ripetiamo il ciclo&amp;quot;&lt;br /&gt;
	time.sleep (0.2)&lt;br /&gt;
&lt;br /&gt;
print &amp;quot;fuori dal ciclo&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Provate a muovervi per lo schermo e osservare cosa succede.&lt;br /&gt;
&lt;br /&gt;
Esercizi:&lt;br /&gt;
* Provare a cambiare il tipo di blocco che viene generato dietro il personaggio&lt;br /&gt;
* Invece di mettere il blocco dietro il personaggio provare a metterlo sotto oppure a destra e a sinistra&lt;br /&gt;
 &lt;br /&gt;
Alcuni tipi di blocchi interessanti:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1 	Stone (minecraft:stone)&lt;br /&gt;
9 	Still Water (minecraft:water)&lt;br /&gt;
11 	Still Lava (minecraft:lava)&lt;br /&gt;
17 	Oak Wood (minecraft:log)&lt;br /&gt;
20 	Glass (minecraft:glass)&lt;br /&gt;
22 	Lapis Lazuli Block (minecraft:lapis_block)&lt;br /&gt;
37 	Dandelion (minecraft:yellow_flower)&lt;br /&gt;
41 	Gold Block (minecraft:gold_block)&lt;br /&gt;
42 	Iron Block (minecraft:iron_block)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== TO BE CONTINUED ==&lt;br /&gt;
&lt;br /&gt;
[[Category:Python|P]]&amp;lt;br/&amp;gt;[[Category:Minecraft|M]]&lt;/div&gt;</summary>
		<author><name>Fpiantini</name></author>	</entry>

	<entry>
		<id>https://kata.coderdojo.it/wiki/index.php?title=Python%2BMinecraft:_primi_esercizi</id>
		<title>Python+Minecraft: primi esercizi</title>
		<link rel="alternate" type="text/html" href="https://kata.coderdojo.it/wiki/index.php?title=Python%2BMinecraft:_primi_esercizi"/>
				<updated>2016-05-27T23:26:45Z</updated>
		
		<summary type="html">&lt;p&gt;Fpiantini: /* Concetto di programmazione: le VARIABILI */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Gli esercizi descitti in questa pagina sono stati adattati a partire da quelli messi a disposizione dal repository [https://github.com/teachthenet/TeachCraft-Challenges TeachCraft-Challenges]. Si ringrazia [https://github.com/teachthenet TeachTheNet] per l'interessante materiale messo a disposizione.&lt;br /&gt;
&lt;br /&gt;
== Prerequisiti ==&lt;br /&gt;
&lt;br /&gt;
Deve essere stato installato l'interprete Python e il launcher Minecraft come descritto in [http://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_Setup_PC_dei_Partecipanti 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.&lt;br /&gt;
&lt;br /&gt;
Nel caso non lo avessete a disposizione in questo sito è disponibile [http://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_setup_di_un_server_Minecraft una pagina] che descrive come installarlo e avviarlo.&lt;br /&gt;
&lt;br /&gt;
Nel seguito supponiamo che il server sia disponibile all'indirizzo IP '''192.168.12.10'''.&lt;br /&gt;
&lt;br /&gt;
== Avviare il Launcher Minecraft ==&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ java -jar Minecraft_Launcher.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Una volta che il caricamento del launcher è terminato apparirà la seguente finestra:&lt;br /&gt;
&lt;br /&gt;
[[File:TLauncher 1.964 217.png|600px|File:TLauncher_1.964_217.png]]&lt;br /&gt;
&lt;br /&gt;
=== Configurazione ===&lt;br /&gt;
&lt;br /&gt;
Per evitare che tutte le volte che ci allontaniamo dalla finestra di Minecraft questa si disattivi, occorre modificare la configurazione di Minecraft.&lt;br /&gt;
In particolare occorre aprire il file di configurazione e modificare il parametro '''pauseOnLostFocus''' impostandolo al valore '''false''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pauseOnLostFocus:false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Per accedere al file di configurazione cliccare sul pulsante &amp;quot;Game Folder&amp;quot; in basso a destra della finestra del Launcher. All'interno della finestra che si aprirà cercare il file '''options.txt'''; aprirlo con un editor e modificare il parametro come indicato sopra.&lt;br /&gt;
&lt;br /&gt;
=== Collegamento al server ===&lt;br /&gt;
&lt;br /&gt;
Cliccare su '''Enter the Game''' in basso a destra. Attendere il caricamento di Minecraft. Apparirà la seguente finestra:&lt;br /&gt;
&lt;br /&gt;
[[File:Minecraft 1.8.8 218.png|600px|File:Minecraft_1.8.8_218.png]]&lt;br /&gt;
&lt;br /&gt;
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):&lt;br /&gt;
&lt;br /&gt;
[[File:Minecraft 1.8.8 219.png|600px|File:Minecraft_1.8.8_219.png]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Scrivere il primo programma Python ==&lt;br /&gt;
&lt;br /&gt;
Questo esercizio insegna come aprire una connessione con il server Minecraft per realizzare una semplice operazione di scrittura sulla chat del gioco.&lt;br /&gt;
&lt;br /&gt;
Aprire l'editor che si è scelto per scrivere il programma Python e inserire le seguenti righe:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line &amp;gt;&lt;br /&gt;
import mcpi.minecraft as minecraft&lt;br /&gt;
mc = minecraft.Minecraft.create(address=&amp;quot;192.168.12.10&amp;quot;, name=&amp;quot;rodmcban&amp;quot;)&lt;br /&gt;
mc.postToChat(&amp;quot;Ciao Minecraft!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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 '''&amp;quot;name&amp;quot;''' utilizzare quello del proprio personaggio (inserito all'inizio nella prima schermata del launcher).&lt;br /&gt;
&lt;br /&gt;
Salvare il file così scritto all'interno della directory '''TeachCraft-Challenges'''.&lt;br /&gt;
&lt;br /&gt;
Eseguire il programma Python con l'interprete che si ha a disposizione. Sulla finestra di Minecraft apparirà una riga di chat con scritto '''&amp;quot;Ciao Minecraft!&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
[[File:Minecraft 1.8.8 221.png|600px|File:Minecraft_1.8.8_221.png]]&lt;br /&gt;
&lt;br /&gt;
Vediamo nel dettaglio cosa significano le tre righe che abbiamo scritto.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line &amp;gt;&lt;br /&gt;
import mcpi.minecraft as minecraft&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line start=&amp;quot;2&amp;quot; &amp;gt;&lt;br /&gt;
mc = minecraft.Minecraft.create(address=&amp;quot;192.168.12.10&amp;quot;, name=&amp;quot;rodmcban&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Notare la variabile '''mc''': in questo &amp;quot;contenitore&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line start=&amp;quot;3&amp;quot; &amp;gt;&lt;br /&gt;
mc.postToChat(&amp;quot;Ciao Minecraft!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Esercizio 1: Teletrasportare il personaggio ==&lt;br /&gt;
&lt;br /&gt;
Con questo secondo programma vediamo come inviare un comando che cambia la posizione del personaggio a cui siamo agganciati. L'esempio è tratto dalla [https://github.com/teachthenet/TeachCraft-Challenges/blob/master/lesson_1.md prima lezione] del sito TeachCraft-Challenges.&lt;br /&gt;
&lt;br /&gt;
Il codice da scrivere stavolta è leggermente di più:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line &amp;gt;&lt;br /&gt;
# coding=utf-8&lt;br /&gt;
import mcpi.minecraft as minecraft&lt;br /&gt;
&lt;br /&gt;
# NOTA - sostituire l'indirizzo IP 192.168.12.10 con quello del server a cui&lt;br /&gt;
# si è collegati e &amp;quot;rodmcban&amp;quot; con il nome del proprio personaggio&lt;br /&gt;
mc = minecraft.Minecraft.create(address=&amp;quot;192.168.12.10&amp;quot;, name=&amp;quot;rodmcban&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
mc.player.setPos(-33, 20, 34)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Qui introduciamo i '''commenti''' che sono le righe che iniziano con il carattere '''#'''.&lt;br /&gt;
Queste righe servono a noi per ricordarci qualcosa sul codice che stiamo scrivendo ma sono completamente ignorate dall'interprete Python. Di fatto non servono all'esecuzione del programma&lt;br /&gt;
&lt;br /&gt;
A parte i commenti riconosciamo le prime due righe di codice, che altro non sono che quelle che già conosciamo e che servono a stabilire una connessione con un personaggio sul server.&lt;br /&gt;
&lt;br /&gt;
La terza riga che è quella che effettua veramente un'operazione questa volta utilizza il metodo '''setPos''' per impostare la posizione del personaggio a dove vogliamo noi.&lt;br /&gt;
&lt;br /&gt;
Provate a spostarvi per il mondo Minecraft dove volete e poi provate ad eseguire questo nuovo programma: tornerete tutte le volte a una posizione predefinita.&lt;br /&gt;
&lt;br /&gt;
=== Concetto di programmazione: le VARIABILI ===&lt;br /&gt;
&lt;br /&gt;
Usciamo adesso un attimo dal mondo Minecraft e parliamo di un concetto molto importante della programmazione: le '''variabili'''. &lt;br /&gt;
&lt;br /&gt;
Immaginate una variabile come un contenitore che contiene un valore. Per esempio L'istruzione:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line &amp;gt;&lt;br /&gt;
v = 1000&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
assegna alla variabile '''v''' il valore '''1000'''. Quando nel seguito faremo riferimento alla variabile '''v''' semplicemente otterremo il valore '''1000'''. Per esempio proviamo a scrivere ed eseguire il seguente programma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line &amp;gt;&lt;br /&gt;
v = 1000&lt;br /&gt;
print &amp;quot;la variabile di nome v vale: &amp;quot;, v&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il programma salva dentro la variabile '''v''' il valore '''1000''' e successivamente stampa sulla console un messaggio e il valore della variabile v. (Incidentalmente abbiamo scoperto la funzione '''print''', una funzione molto comoda che stampa messaggi sulla finestra dove eseguiamo il programma (la ''console'')).&lt;br /&gt;
&lt;br /&gt;
Scriviamo adesso una versione leggermente più complicata del programma di teletrasporto utilizzando delle '''variabili''' per indicare le tre componenti della posizione '''x''', '''y''' e '''z''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line &amp;gt;&lt;br /&gt;
# coding=utf-8&lt;br /&gt;
import mcpi.minecraft as minecraft&lt;br /&gt;
&lt;br /&gt;
# NOTA - sostituire l'indirizzo IP 192.168.12.10 con quello del server a cui&lt;br /&gt;
# si è collegati e &amp;quot;rodmcban&amp;quot; con il nome del proprio personaggio&lt;br /&gt;
mc = minecraft.Minecraft.create(address=&amp;quot;192.168.12.10&amp;quot;, name=&amp;quot;rodmcban&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
x = -33&lt;br /&gt;
y = 20&lt;br /&gt;
z = 34&lt;br /&gt;
&lt;br /&gt;
mc.player.setPos(x, y, z)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Esercizi:&lt;br /&gt;
* Provate a modificare i valori dei tre argomenti della funzione '''setPos'''. Cosa succede?&lt;br /&gt;
* Quale tra '''x''', '''y''' e '''z''' è quello che cambia la posizione verticale del personaggio?&lt;br /&gt;
* Scrivere un programma python che calcola il risultato dell'operazione '''2 + 3''', lo memorizza in una variabile e lo stampa nella console&lt;br /&gt;
&lt;br /&gt;
== Esercizio 2: Seminare funghi... ==&lt;br /&gt;
&lt;br /&gt;
I programmi visti finora facevano una singola cosa e poi terminavano.&lt;br /&gt;
Con il nuovo programma che stiamo per scrivere sperimenteremo una istruzione che ci permetterà di ripetere un ciclo di istruzioni più volte &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line &amp;gt;&lt;br /&gt;
# coding=utf-8&lt;br /&gt;
import time&lt;br /&gt;
&lt;br /&gt;
import mcpi.minecraft as minecraft&lt;br /&gt;
mc = minecraft.Minecraft.create(address=&amp;quot;192.168.12.10&amp;quot;, name=&amp;quot;rodmcban&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
# I blocchi utilizzati in Minecraft hanno un codice numerico.&lt;br /&gt;
# L'elenco dei codici è reperibile al seguente indirizzo:&lt;br /&gt;
#    http://minecraft-ids.grahamedgecombe.com/&lt;br /&gt;
#&lt;br /&gt;
# Utilizziamo il blocco 40, che rappresenta dei funghi:&lt;br /&gt;
block = 40&lt;br /&gt;
&lt;br /&gt;
print &amp;quot;Prima del ciclo.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
while True:&lt;br /&gt;
	# Recupera la posizione corrente del giocatore (coordinate X, Y e Z)&lt;br /&gt;
	# e le salva nella variabile pos:&lt;br /&gt;
	pos = mc.player.getPos()&lt;br /&gt;
&lt;br /&gt;
	# Estrae dalla variabile pos il valore delle coordinate&lt;br /&gt;
	# e le salva nelle variabili x, y, z&lt;br /&gt;
	x = pos.x&lt;br /&gt;
	y = pos.y&lt;br /&gt;
	z = pos.z&lt;br /&gt;
&lt;br /&gt;
	# &lt;br /&gt;
	# Cambia il blocco che si trova immediatamente dietro&lt;br /&gt;
	# il personaggio al tipo di blocco che abbiamo scelto&lt;br /&gt;
	# in precedenza&lt;br /&gt;
	mc.setBlock(x-1, y, z, block)&lt;br /&gt;
&lt;br /&gt;
	# Usa la funzione print per stampare la posizione del giocatore &lt;br /&gt;
	# e quindi torna all'inizio del ciclo&lt;br /&gt;
	print &amp;quot;Posizione = &amp;quot;, int(x), &amp;quot;, &amp;quot;, int(y), &amp;quot;, &amp;quot;, int(z), &amp;quot; ---  Aspettiamo 0.2 secondi e ripetiamo il ciclo&amp;quot;&lt;br /&gt;
	time.sleep (0.2)&lt;br /&gt;
&lt;br /&gt;
print &amp;quot;fuori dal loop&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''TO BE COMPLETED'''&lt;br /&gt;
[[Category:Python|P]]&amp;lt;br/&amp;gt;[[Category:Minecraft|M]]&lt;/div&gt;</summary>
		<author><name>Fpiantini</name></author>	</entry>

	<entry>
		<id>https://kata.coderdojo.it/wiki/index.php?title=Python%2BMinecraft:_primi_esercizi</id>
		<title>Python+Minecraft: primi esercizi</title>
		<link rel="alternate" type="text/html" href="https://kata.coderdojo.it/wiki/index.php?title=Python%2BMinecraft:_primi_esercizi"/>
				<updated>2016-05-27T23:25:39Z</updated>
		
		<summary type="html">&lt;p&gt;Fpiantini: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Gli esercizi descitti in questa pagina sono stati adattati a partire da quelli messi a disposizione dal repository [https://github.com/teachthenet/TeachCraft-Challenges TeachCraft-Challenges]. Si ringrazia [https://github.com/teachthenet TeachTheNet] per l'interessante materiale messo a disposizione.&lt;br /&gt;
&lt;br /&gt;
== Prerequisiti ==&lt;br /&gt;
&lt;br /&gt;
Deve essere stato installato l'interprete Python e il launcher Minecraft come descritto in [http://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_Setup_PC_dei_Partecipanti 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.&lt;br /&gt;
&lt;br /&gt;
Nel caso non lo avessete a disposizione in questo sito è disponibile [http://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_setup_di_un_server_Minecraft una pagina] che descrive come installarlo e avviarlo.&lt;br /&gt;
&lt;br /&gt;
Nel seguito supponiamo che il server sia disponibile all'indirizzo IP '''192.168.12.10'''.&lt;br /&gt;
&lt;br /&gt;
== Avviare il Launcher Minecraft ==&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ java -jar Minecraft_Launcher.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Una volta che il caricamento del launcher è terminato apparirà la seguente finestra:&lt;br /&gt;
&lt;br /&gt;
[[File:TLauncher 1.964 217.png|600px|File:TLauncher_1.964_217.png]]&lt;br /&gt;
&lt;br /&gt;
=== Configurazione ===&lt;br /&gt;
&lt;br /&gt;
Per evitare che tutte le volte che ci allontaniamo dalla finestra di Minecraft questa si disattivi, occorre modificare la configurazione di Minecraft.&lt;br /&gt;
In particolare occorre aprire il file di configurazione e modificare il parametro '''pauseOnLostFocus''' impostandolo al valore '''false''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pauseOnLostFocus:false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Per accedere al file di configurazione cliccare sul pulsante &amp;quot;Game Folder&amp;quot; in basso a destra della finestra del Launcher. All'interno della finestra che si aprirà cercare il file '''options.txt'''; aprirlo con un editor e modificare il parametro come indicato sopra.&lt;br /&gt;
&lt;br /&gt;
=== Collegamento al server ===&lt;br /&gt;
&lt;br /&gt;
Cliccare su '''Enter the Game''' in basso a destra. Attendere il caricamento di Minecraft. Apparirà la seguente finestra:&lt;br /&gt;
&lt;br /&gt;
[[File:Minecraft 1.8.8 218.png|600px|File:Minecraft_1.8.8_218.png]]&lt;br /&gt;
&lt;br /&gt;
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):&lt;br /&gt;
&lt;br /&gt;
[[File:Minecraft 1.8.8 219.png|600px|File:Minecraft_1.8.8_219.png]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Scrivere il primo programma Python ==&lt;br /&gt;
&lt;br /&gt;
Questo esercizio insegna come aprire una connessione con il server Minecraft per realizzare una semplice operazione di scrittura sulla chat del gioco.&lt;br /&gt;
&lt;br /&gt;
Aprire l'editor che si è scelto per scrivere il programma Python e inserire le seguenti righe:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line &amp;gt;&lt;br /&gt;
import mcpi.minecraft as minecraft&lt;br /&gt;
mc = minecraft.Minecraft.create(address=&amp;quot;192.168.12.10&amp;quot;, name=&amp;quot;rodmcban&amp;quot;)&lt;br /&gt;
mc.postToChat(&amp;quot;Ciao Minecraft!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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 '''&amp;quot;name&amp;quot;''' utilizzare quello del proprio personaggio (inserito all'inizio nella prima schermata del launcher).&lt;br /&gt;
&lt;br /&gt;
Salvare il file così scritto all'interno della directory '''TeachCraft-Challenges'''.&lt;br /&gt;
&lt;br /&gt;
Eseguire il programma Python con l'interprete che si ha a disposizione. Sulla finestra di Minecraft apparirà una riga di chat con scritto '''&amp;quot;Ciao Minecraft!&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
[[File:Minecraft 1.8.8 221.png|600px|File:Minecraft_1.8.8_221.png]]&lt;br /&gt;
&lt;br /&gt;
Vediamo nel dettaglio cosa significano le tre righe che abbiamo scritto.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line &amp;gt;&lt;br /&gt;
import mcpi.minecraft as minecraft&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line start=&amp;quot;2&amp;quot; &amp;gt;&lt;br /&gt;
mc = minecraft.Minecraft.create(address=&amp;quot;192.168.12.10&amp;quot;, name=&amp;quot;rodmcban&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Notare la variabile '''mc''': in questo &amp;quot;contenitore&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line start=&amp;quot;3&amp;quot; &amp;gt;&lt;br /&gt;
mc.postToChat(&amp;quot;Ciao Minecraft!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Esercizio 1: Teletrasportare il personaggio ==&lt;br /&gt;
&lt;br /&gt;
Con questo secondo programma vediamo come inviare un comando che cambia la posizione del personaggio a cui siamo agganciati. L'esempio è tratto dalla [https://github.com/teachthenet/TeachCraft-Challenges/blob/master/lesson_1.md prima lezione] del sito TeachCraft-Challenges.&lt;br /&gt;
&lt;br /&gt;
Il codice da scrivere stavolta è leggermente di più:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line &amp;gt;&lt;br /&gt;
# coding=utf-8&lt;br /&gt;
import mcpi.minecraft as minecraft&lt;br /&gt;
&lt;br /&gt;
# NOTA - sostituire l'indirizzo IP 192.168.12.10 con quello del server a cui&lt;br /&gt;
# si è collegati e &amp;quot;rodmcban&amp;quot; con il nome del proprio personaggio&lt;br /&gt;
mc = minecraft.Minecraft.create(address=&amp;quot;192.168.12.10&amp;quot;, name=&amp;quot;rodmcban&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
mc.player.setPos(-33, 20, 34)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Qui introduciamo i '''commenti''' che sono le righe che iniziano con il carattere '''#'''.&lt;br /&gt;
Queste righe servono a noi per ricordarci qualcosa sul codice che stiamo scrivendo ma sono completamente ignorate dall'interprete Python. Di fatto non servono all'esecuzione del programma&lt;br /&gt;
&lt;br /&gt;
A parte i commenti riconosciamo le prime due righe di codice, che altro non sono che quelle che già conosciamo e che servono a stabilire una connessione con un personaggio sul server.&lt;br /&gt;
&lt;br /&gt;
La terza riga che è quella che effettua veramente un'operazione questa volta utilizza il metodo '''setPos''' per impostare la posizione del personaggio a dove vogliamo noi.&lt;br /&gt;
&lt;br /&gt;
Provate a spostarvi per il mondo Minecraft dove volete e poi provate ad eseguire questo nuovo programma: tornerete tutte le volte a una posizione predefinita.&lt;br /&gt;
&lt;br /&gt;
=== Concetto di programmazione: le VARIABILI ===&lt;br /&gt;
&lt;br /&gt;
Usciamo adesso un attimo dal mondo Minecraft e parliamo di un concetto molto importante della programmazione le variabili. &lt;br /&gt;
&lt;br /&gt;
Immaginate una variabile come un contenitore che contiene un valore. Per esempio L'istruzione:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line &amp;gt;&lt;br /&gt;
v = 1000&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
assegna alla variabile '''v''' il valore '''1000'''. Quando nel seguito faremo riferimento alla variabile '''v''' semplicemente otterremo il valore '''1000'''. Per esempio proviamo a scrivere ed eseguire il seguente programma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line &amp;gt;&lt;br /&gt;
v = 1000&lt;br /&gt;
print &amp;quot;la variabile di nome v vale: &amp;quot;, v&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il programma salva dentro la variabile '''v''' il valore '''1000''' e successivamente stampa sulla console un messaggio e il valore della variabile v. (Incidentalmente abbiamo scoperto la funzione '''print''', una funzione molto comoda che stampa messaggi sulla finestra dove eseguiamo il programma (la ''console'')).&lt;br /&gt;
&lt;br /&gt;
Scriviamo adesso una versione leggermente più complicata del programma di teletrasporto utilizzando delle '''variabili''' per indicare le tre componenti della posizione '''x''', '''y''' e '''z''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line &amp;gt;&lt;br /&gt;
# coding=utf-8&lt;br /&gt;
import mcpi.minecraft as minecraft&lt;br /&gt;
&lt;br /&gt;
# NOTA - sostituire l'indirizzo IP 192.168.12.10 con quello del server a cui&lt;br /&gt;
# si è collegati e &amp;quot;rodmcban&amp;quot; con il nome del proprio personaggio&lt;br /&gt;
mc = minecraft.Minecraft.create(address=&amp;quot;192.168.12.10&amp;quot;, name=&amp;quot;rodmcban&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
x = -33&lt;br /&gt;
y = 20&lt;br /&gt;
z = 34&lt;br /&gt;
&lt;br /&gt;
mc.player.setPos(x, y, z)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Esercizi:&lt;br /&gt;
* Provate a modificare i valori dei tre argomenti della funzione '''setPos'''. Cosa succede?&lt;br /&gt;
* Quale tra '''x''', '''y''' e '''z''' è quello che cambia la posizione verticale del personaggio?&lt;br /&gt;
* Scrivere un programma python che calcola il risultato dell'operazione '''2 + 3''', lo memorizza in una variabile e lo stampa nella console&lt;br /&gt;
&lt;br /&gt;
== Esercizio 2: Seminare funghi... ==&lt;br /&gt;
&lt;br /&gt;
I programmi visti finora facevano una singola cosa e poi terminavano.&lt;br /&gt;
Con il nuovo programma che stiamo per scrivere sperimenteremo una istruzione che ci permetterà di ripetere un ciclo di istruzioni più volte &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line &amp;gt;&lt;br /&gt;
# coding=utf-8&lt;br /&gt;
import time&lt;br /&gt;
&lt;br /&gt;
import mcpi.minecraft as minecraft&lt;br /&gt;
mc = minecraft.Minecraft.create(address=&amp;quot;192.168.12.10&amp;quot;, name=&amp;quot;rodmcban&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
# I blocchi utilizzati in Minecraft hanno un codice numerico.&lt;br /&gt;
# L'elenco dei codici è reperibile al seguente indirizzo:&lt;br /&gt;
#    http://minecraft-ids.grahamedgecombe.com/&lt;br /&gt;
#&lt;br /&gt;
# Utilizziamo il blocco 40, che rappresenta dei funghi:&lt;br /&gt;
block = 40&lt;br /&gt;
&lt;br /&gt;
print &amp;quot;Prima del ciclo.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
while True:&lt;br /&gt;
	# Recupera la posizione corrente del giocatore (coordinate X, Y e Z)&lt;br /&gt;
	# e le salva nella variabile pos:&lt;br /&gt;
	pos = mc.player.getPos()&lt;br /&gt;
&lt;br /&gt;
	# Estrae dalla variabile pos il valore delle coordinate&lt;br /&gt;
	# e le salva nelle variabili x, y, z&lt;br /&gt;
	x = pos.x&lt;br /&gt;
	y = pos.y&lt;br /&gt;
	z = pos.z&lt;br /&gt;
&lt;br /&gt;
	# &lt;br /&gt;
	# Cambia il blocco che si trova immediatamente dietro&lt;br /&gt;
	# il personaggio al tipo di blocco che abbiamo scelto&lt;br /&gt;
	# in precedenza&lt;br /&gt;
	mc.setBlock(x-1, y, z, block)&lt;br /&gt;
&lt;br /&gt;
	# Usa la funzione print per stampare la posizione del giocatore &lt;br /&gt;
	# e quindi torna all'inizio del ciclo&lt;br /&gt;
	print &amp;quot;Posizione = &amp;quot;, int(x), &amp;quot;, &amp;quot;, int(y), &amp;quot;, &amp;quot;, int(z), &amp;quot; ---  Aspettiamo 0.2 secondi e ripetiamo il ciclo&amp;quot;&lt;br /&gt;
	time.sleep (0.2)&lt;br /&gt;
&lt;br /&gt;
print &amp;quot;fuori dal loop&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''TO BE COMPLETED'''&lt;br /&gt;
[[Category:Python|P]]&amp;lt;br/&amp;gt;[[Category:Minecraft|M]]&lt;/div&gt;</summary>
		<author><name>Fpiantini</name></author>	</entry>

	<entry>
		<id>https://kata.coderdojo.it/wiki/index.php?title=Python%2BMinecraft:_primi_esercizi</id>
		<title>Python+Minecraft: primi esercizi</title>
		<link rel="alternate" type="text/html" href="https://kata.coderdojo.it/wiki/index.php?title=Python%2BMinecraft:_primi_esercizi"/>
				<updated>2016-05-27T22:47:55Z</updated>
		
		<summary type="html">&lt;p&gt;Fpiantini: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Gli esercizi descitti in questa pagina sono stati adattati a partire da quelli messi a disposizione dal repository [https://github.com/teachthenet/TeachCraft-Challenges TeachCraft-Challenges]. Si ringrazia [https://github.com/teachthenet TeachTheNet] per l'interessante materiale messo a disposizione.&lt;br /&gt;
&lt;br /&gt;
== Prerequisiti ==&lt;br /&gt;
&lt;br /&gt;
Deve essere stato installato l'interprete Python e il launcher Minecraft come descritto in [http://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_Setup_PC_dei_Partecipanti 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.&lt;br /&gt;
&lt;br /&gt;
Nel caso non lo avessete a disposizione in questo sito è disponibile [http://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_setup_di_un_server_Minecraft una pagina] che descrive come installarlo e avviarlo.&lt;br /&gt;
&lt;br /&gt;
Nel seguito supponiamo che il server sia disponibile all'indirizzo IP '''192.168.12.10'''.&lt;br /&gt;
&lt;br /&gt;
== Avviare il Launcher Minecraft ==&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ java -jar Minecraft_Launcher.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Una volta che il caricamento del launcher è terminato apparirà la seguente finestra:&lt;br /&gt;
&lt;br /&gt;
[[File:TLauncher 1.964 217.png|600px|File:TLauncher_1.964_217.png]]&lt;br /&gt;
&lt;br /&gt;
=== Configurazione ===&lt;br /&gt;
&lt;br /&gt;
Per evitare che tutte le volte che ci allontaniamo dalla finestra di Minecraft questa si disattivi, occorre modificare la configurazione di Minecraft.&lt;br /&gt;
In particolare occorre aprire il file di configurazione e modificare il parametro '''pauseOnLostFocus''' impostandolo al valore '''false''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pauseOnLostFocus:false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Per accedere al file di configurazione cliccare sul pulsante &amp;quot;Game Folder&amp;quot; in basso a destra della finestra del Launcher. All'interno della finestra che si aprirà cercare il file '''options.txt'''; aprirlo con un editor e modificare il parametro come indicato sopra.&lt;br /&gt;
&lt;br /&gt;
=== Collegamento al server ===&lt;br /&gt;
&lt;br /&gt;
Cliccare su '''Enter the Game''' in basso a destra. Attendere il caricamento di Minecraft. Apparirà la seguente finestra:&lt;br /&gt;
&lt;br /&gt;
[[File:Minecraft 1.8.8 218.png|600px|File:Minecraft_1.8.8_218.png]]&lt;br /&gt;
&lt;br /&gt;
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):&lt;br /&gt;
&lt;br /&gt;
[[File:Minecraft 1.8.8 219.png|600px|File:Minecraft_1.8.8_219.png]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Scrivere il primo programma Python ==&lt;br /&gt;
&lt;br /&gt;
Questo esercizio insegna come aprire una connessione con il server Minecraft per realizzare una semplice operazione di scrittura sulla chat del gioco.&lt;br /&gt;
&lt;br /&gt;
Aprire l'editor che si è scelto per scrivere il programma Python e inserire le seguenti righe:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line &amp;gt;&lt;br /&gt;
import mcpi.minecraft as minecraft&lt;br /&gt;
mc = minecraft.Minecraft.create(address=&amp;quot;192.168.12.10&amp;quot;, name=&amp;quot;rodmcban&amp;quot;)&lt;br /&gt;
mc.postToChat(&amp;quot;Ciao Minecraft!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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 '''&amp;quot;name&amp;quot;''' utilizzare quello del proprio personaggio (inserito all'inizio nella prima schermata del launcher).&lt;br /&gt;
&lt;br /&gt;
Salvare il file così scritto all'interno della directory '''TeachCraft-Challenges'''.&lt;br /&gt;
&lt;br /&gt;
Eseguire il programma Python con l'interprete che si ha a disposizione. Sulla finestra di Minecraft apparirà una riga di chat con scritto '''&amp;quot;Ciao Minecraft!&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
[[File:Minecraft 1.8.8 221.png|600px|File:Minecraft_1.8.8_221.png]]&lt;br /&gt;
&lt;br /&gt;
Vediamo nel dettaglio cosa significano le tre righe che abbiamo scritto.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line &amp;gt;&lt;br /&gt;
import mcpi.minecraft as minecraft&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line start=&amp;quot;2&amp;quot; &amp;gt;&lt;br /&gt;
mc = minecraft.Minecraft.create(address=&amp;quot;192.168.12.10&amp;quot;, name=&amp;quot;rodmcban&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Notare la variabile '''mc''': in questo &amp;quot;contenitore&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line start=&amp;quot;3&amp;quot; &amp;gt;&lt;br /&gt;
mc.postToChat(&amp;quot;Ciao Minecraft!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Esercizio 1: Teletrasportare il personaggio ==&lt;br /&gt;
&lt;br /&gt;
Con questo secondo programma vediamo come inviare un comando che cambia la posizione del personaggio a cui siamo agganciati. L'esempio è tratto dalla [https://github.com/teachthenet/TeachCraft-Challenges/blob/master/lesson_1.md prima lezione] del sito TeachCraft-Challenges.&lt;br /&gt;
&lt;br /&gt;
Il codice da scrivere stavolta è leggermente di più:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line &amp;gt;&lt;br /&gt;
# coding=utf-8&lt;br /&gt;
import mcpi.minecraft as minecraft&lt;br /&gt;
&lt;br /&gt;
# NOTA - sostituire l'indirizzo IP 192.168.12.10 con quello del server a cui&lt;br /&gt;
# si è collegati e &amp;quot;rodmcban&amp;quot; con il nome del proprio personaggio&lt;br /&gt;
mc = minecraft.Minecraft.create(address=&amp;quot;192.168.12.10&amp;quot;, name=&amp;quot;rodmcban&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
mc.player.setPos(-33, 20, 34)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Qui introduciamo i '''commenti''' che sono le righe che iniziano con il carattere '''#'''.&lt;br /&gt;
Queste righe servono a noi per ricordarci qualcosa sul codice che stiamo scrivendo ma sono completamente ignorate dall'interprete Python. Di fatto non servono all'esecuzione del programma&lt;br /&gt;
&lt;br /&gt;
A parte i commenti riconosciamo le prime due righe di codice, che altro non sono che quelle che già conosciamo e che servono a stabilire una connessione con un personaggio sul server.&lt;br /&gt;
&lt;br /&gt;
La terza riga che è quella che effettua veramente un'operazione questa volta utilizza il metodo '''setPos''' per impostare la posizione del personaggio a dove vogliamo noi.&lt;br /&gt;
&lt;br /&gt;
Provate a spostarvi per il mondo Minecraft dove volete e poi provate ad eseguire questo nuovo programma: tornerete tutte le volte a una posizione predefinita.&lt;br /&gt;
&lt;br /&gt;
Scriviamo adesso una versione leggermente più complicata del programma utilizzando delle '''variabili''' per indicare le tre componenti della posizione:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line &amp;gt;&lt;br /&gt;
# coding=utf-8&lt;br /&gt;
import mcpi.minecraft as minecraft&lt;br /&gt;
&lt;br /&gt;
# NOTA - sostituire l'indirizzo IP 192.168.12.10 con quello del server a cui&lt;br /&gt;
# si è collegati e &amp;quot;rodmcban&amp;quot; con il nome del proprio personaggio&lt;br /&gt;
mc = minecraft.Minecraft.create(address=&amp;quot;192.168.12.10&amp;quot;, name=&amp;quot;rodmcban&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
x = -33&lt;br /&gt;
y = 20&lt;br /&gt;
z = 34&lt;br /&gt;
&lt;br /&gt;
mc.player.setPos(x, y, z)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esercizi:&lt;br /&gt;
* Provate a modificare i valori dei tre argomenti della funzione '''setPos'''. Cosa succede?&lt;br /&gt;
* Quale tra '''x''', '''y''' e '''z''' è quello che cambia la posizione verticale del personaggio?&lt;br /&gt;
&lt;br /&gt;
== Esercizio 2: Seminare funghi... ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line &amp;gt;&lt;br /&gt;
import time&lt;br /&gt;
import mcpi.minecraft as minecraft&lt;br /&gt;
&lt;br /&gt;
mc = minecraft.Minecraft.create(address=&amp;quot;192.168.12.10&amp;quot;, name=&amp;quot;rodmcban&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#This is the minecraft block ID of the flower block.&lt;br /&gt;
# see http://minecraft-ids.grahamedgecombe.com/&lt;br /&gt;
# for all the block types (or see below)&lt;br /&gt;
block = 40&lt;br /&gt;
&lt;br /&gt;
print &amp;quot;Before loop.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
while True:&lt;br /&gt;
	#Retrieve the current player's X, Y, and Z coordinates&lt;br /&gt;
	pos = mc.player.getPos()&lt;br /&gt;
	#Store the current player's coordinates in our variables x/y/z&lt;br /&gt;
	x = pos.x&lt;br /&gt;
	y = pos.y&lt;br /&gt;
	z = pos.z&lt;br /&gt;
	# Set the block at the x/y/z coordinates of the&lt;br /&gt;
	# current player to the block id we chose above&lt;br /&gt;
	mc.setBlock(x-1, y, z, block)&lt;br /&gt;
	# Wait for two tenths of a second,&lt;br /&gt;
	# then jump back to the top of the while loop.&lt;br /&gt;
	print &amp;quot;Position = &amp;quot;, int(x), &amp;quot;, &amp;quot;, int(y), &amp;quot;, &amp;quot;, int(z), &amp;quot; --- LOOPING, waiting 0.2 seconds&amp;quot;&lt;br /&gt;
	time.sleep (0.2)&lt;br /&gt;
&lt;br /&gt;
print &amp;quot;end of loop&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''TO BE COMPLETED'''&lt;br /&gt;
[[Category:Python|P]]&amp;lt;br/&amp;gt;[[Category:Minecraft|M]]&lt;/div&gt;</summary>
		<author><name>Fpiantini</name></author>	</entry>

	<entry>
		<id>https://kata.coderdojo.it/wiki/index.php?title=Python%2BMinecraft:_primi_esercizi</id>
		<title>Python+Minecraft: primi esercizi</title>
		<link rel="alternate" type="text/html" href="https://kata.coderdojo.it/wiki/index.php?title=Python%2BMinecraft:_primi_esercizi"/>
				<updated>2016-05-26T20:39:42Z</updated>
		
		<summary type="html">&lt;p&gt;Fpiantini: /* Configurazione */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Gli esercizi descitti in questa pagina sono stati adattati a partire da quelli messi a disposizione dal repository [https://github.com/teachthenet/TeachCraft-Challenges TeachCraft-Challenges]. Si ringrazia [https://github.com/teachthenet TeachTheNet] per l'interessante materiale messo a disposizione.&lt;br /&gt;
&lt;br /&gt;
== Prerequisiti ==&lt;br /&gt;
&lt;br /&gt;
Deve essere stato installato l'interprete Python e il launcher Minecraft come descritto in [http://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_Setup_PC_dei_Partecipanti 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.&lt;br /&gt;
&lt;br /&gt;
Nel caso non lo avessete a disposizione in questo sito è disponibile [http://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_setup_di_un_server_Minecraft una pagina] che descrive come installarlo e avviarlo.&lt;br /&gt;
&lt;br /&gt;
Nel seguito supponiamo che il server sia disponibile all'indirizzo IP '''192.168.12.10'''.&lt;br /&gt;
&lt;br /&gt;
== Avviare il Launcher Minecraft ==&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ java -jar Minecraft_Launcher.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Una volta che il caricamento del launcher è terminato apparirà la seguente finestra:&lt;br /&gt;
&lt;br /&gt;
[[File:TLauncher 1.964 217.png|600px|File:TLauncher_1.964_217.png]]&lt;br /&gt;
&lt;br /&gt;
=== Configurazione ===&lt;br /&gt;
&lt;br /&gt;
Per evitare che tutte le volte che ci allontaniamo dalla finestra di Minecraft questa si disattivi, occorre modificare la configurazione di Minecraft.&lt;br /&gt;
In particolare occorre aprire il file di configurazione e modificare il parametro '''pauseOnLostFocus''' impostandolo al valore '''false''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pauseOnLostFocus:false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Per accedere al file di configurazione cliccare sul pulsante &amp;quot;Game Folder&amp;quot; in basso a destra della finestra del Launcher. All'interno della finestra che si aprirà cercare il file '''options.txt'''; aprirlo con un editor e modificare il parametro come indicato sopra.&lt;br /&gt;
&lt;br /&gt;
=== Collegamento al server ===&lt;br /&gt;
&lt;br /&gt;
Cliccare su '''Enter the Game''' in basso a destra. Attendere il caricamento di Minecraft. Apparirà la seguente finestra:&lt;br /&gt;
&lt;br /&gt;
[[File:Minecraft 1.8.8 218.png|600px|File:Minecraft_1.8.8_218.png]]&lt;br /&gt;
&lt;br /&gt;
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):&lt;br /&gt;
&lt;br /&gt;
[[File:Minecraft 1.8.8 219.png|600px|File:Minecraft_1.8.8_219.png]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Scrivere il primo programma Python ==&lt;br /&gt;
&lt;br /&gt;
Questo esercizio insegna come aprire una connessione con il server Minecraft per realizzare una semplice operazione di scrittura sulla chat del gioco.&lt;br /&gt;
&lt;br /&gt;
Aprire l'editor che si è scelto per scrivere il programma Python e inserire le seguenti righe:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line &amp;gt;&lt;br /&gt;
import mcpi.minecraft as minecraft&lt;br /&gt;
mc = minecraft.Minecraft.create(address=&amp;quot;192.168.12.10&amp;quot;, name=&amp;quot;rodmcban&amp;quot;)&lt;br /&gt;
mc.postToChat(&amp;quot;Ciao Minecraft!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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 '''&amp;quot;name&amp;quot;''' utilizzare quello del proprio personaggio (inserito all'inizio nella prima schermata del launcher).&lt;br /&gt;
&lt;br /&gt;
Salvare il file così scritto all'interno della directory '''TeachCraft-Challenges'''.&lt;br /&gt;
&lt;br /&gt;
Eseguire il programma Python con l'interprete che si ha a disposizione. Sulla finestra di Minecraft apparirà una riga di chat con scritto '''&amp;quot;Ciao Minecraft!&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
[[File:Minecraft 1.8.8 221.png|600px|File:Minecraft_1.8.8_221.png]]&lt;br /&gt;
&lt;br /&gt;
Vediamo nel dettaglio cosa significano le tre righe che abbiamo scritto.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line &amp;gt;&lt;br /&gt;
import mcpi.minecraft as minecraft&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line start=&amp;quot;2&amp;quot; &amp;gt;&lt;br /&gt;
mc = minecraft.Minecraft.create(address=&amp;quot;192.168.12.10&amp;quot;, name=&amp;quot;rodmcban&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Notare la variabile '''mc''': in questo &amp;quot;contenitore&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line start=&amp;quot;3&amp;quot; &amp;gt;&lt;br /&gt;
mc.postToChat(&amp;quot;Ciao Minecraft!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Esercizio 1: Teletrasportare il personaggio ==&lt;br /&gt;
&lt;br /&gt;
Con questo secondo programma vediamo come inviare un comando che cambia la posizione del personaggio a cui siamo agganciati. L'esempio è tratto dalla [https://github.com/teachthenet/TeachCraft-Challenges/blob/master/lesson_1.md prima lezione] del sito TeachCraft-Challenges.&lt;br /&gt;
&lt;br /&gt;
Il codice da scrivere stavolta è leggermente di più:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line &amp;gt;&lt;br /&gt;
# coding=utf-8&lt;br /&gt;
import mcpi.minecraft as minecraft&lt;br /&gt;
&lt;br /&gt;
# NOTA - sostituire l'indirizzo IP 192.168.12.10 con quello del server a cui&lt;br /&gt;
# si è collegati e &amp;quot;rodmcban&amp;quot; con il nome del proprio personaggio&lt;br /&gt;
mc = minecraft.Minecraft.create(address=&amp;quot;192.168.12.10&amp;quot;, name=&amp;quot;rodmcban&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
mc.player.setPos(-33, 20, 34)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Qui introduciamo i '''commenti''' che sono le righe che iniziano con il carattere '''#'''.&lt;br /&gt;
Queste righe servono a noi per ricordarci qualcosa sul codice che stiamo scrivendo ma sono completamente ignorate dall'interprete Python. Di fatto non servono all'esecuzione del programma&lt;br /&gt;
&lt;br /&gt;
A parte i commenti riconosciamo le prime due righe di codice, che altro non sono che quelle che già conosciamo e che servono a stabilire una connessione con un personaggio sul server.&lt;br /&gt;
&lt;br /&gt;
La terza riga che è quella che effettua veramente un'operazione questa volta utilizza il metodo '''setPos''' per impostare la posizione del personaggio a dove vogliamo noi.&lt;br /&gt;
&lt;br /&gt;
Provate a spostarvi per il mondo Minecraft dove volete e poi provate ad eseguire questo nuovo programma: tornerete tutte le volte a una posizione predefinita.&lt;br /&gt;
&lt;br /&gt;
Scriviamo adesso una versione leggermente più complicata del programma utilizzando delle '''variabili''' per indicare le tre componenti della posizione:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line &amp;gt;&lt;br /&gt;
# coding=utf-8&lt;br /&gt;
import mcpi.minecraft as minecraft&lt;br /&gt;
&lt;br /&gt;
# NOTA - sostituire l'indirizzo IP 192.168.12.10 con quello del server a cui&lt;br /&gt;
# si è collegati e &amp;quot;rodmcban&amp;quot; con il nome del proprio personaggio&lt;br /&gt;
mc = minecraft.Minecraft.create(address=&amp;quot;192.168.12.10&amp;quot;, name=&amp;quot;rodmcban&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
x = -33&lt;br /&gt;
y = 20&lt;br /&gt;
z = 34&lt;br /&gt;
&lt;br /&gt;
mc.player.setPos(x, y, z)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esercizi:&lt;br /&gt;
* Provate a modificare i valori dei tre argomenti della funzione '''setPos'''. Cosa succede?&lt;br /&gt;
* Quale tra '''x''', '''y''' e '''z''' è quello che cambia la posizione verticale del personaggio?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''TO BE COMPLETED'''&lt;br /&gt;
[[Category:Python|P]]&amp;lt;br/&amp;gt;[[Category:Minecraft|M]]&lt;/div&gt;</summary>
		<author><name>Fpiantini</name></author>	</entry>

	<entry>
		<id>https://kata.coderdojo.it/wiki/index.php?title=Python%2BMinecraft:_primi_esercizi</id>
		<title>Python+Minecraft: primi esercizi</title>
		<link rel="alternate" type="text/html" href="https://kata.coderdojo.it/wiki/index.php?title=Python%2BMinecraft:_primi_esercizi"/>
				<updated>2016-05-26T20:38:25Z</updated>
		
		<summary type="html">&lt;p&gt;Fpiantini: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Gli esercizi descitti in questa pagina sono stati adattati a partire da quelli messi a disposizione dal repository [https://github.com/teachthenet/TeachCraft-Challenges TeachCraft-Challenges]. Si ringrazia [https://github.com/teachthenet TeachTheNet] per l'interessante materiale messo a disposizione.&lt;br /&gt;
&lt;br /&gt;
== Prerequisiti ==&lt;br /&gt;
&lt;br /&gt;
Deve essere stato installato l'interprete Python e il launcher Minecraft come descritto in [http://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_Setup_PC_dei_Partecipanti 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.&lt;br /&gt;
&lt;br /&gt;
Nel caso non lo avessete a disposizione in questo sito è disponibile [http://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_setup_di_un_server_Minecraft una pagina] che descrive come installarlo e avviarlo.&lt;br /&gt;
&lt;br /&gt;
Nel seguito supponiamo che il server sia disponibile all'indirizzo IP '''192.168.12.10'''.&lt;br /&gt;
&lt;br /&gt;
== Avviare il Launcher Minecraft ==&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ java -jar Minecraft_Launcher.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Una volta che il caricamento del launcher è terminato apparirà la seguente finestra:&lt;br /&gt;
&lt;br /&gt;
[[File:TLauncher 1.964 217.png|600px|File:TLauncher_1.964_217.png]]&lt;br /&gt;
&lt;br /&gt;
=== Configurazione ===&lt;br /&gt;
&lt;br /&gt;
Per evitare che tutte le volte che ci allontaniamo dalla finestra di Minecraft questa si disattivi, occorre modificare la configurazione di Minecraft.&lt;br /&gt;
In particolare occorre aprire il file di configurazione e modificare il parametro '''pauseOnLostFocus''' impostandolo al valore '''false''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pauseOnLostFocus:false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Per accedere al file di configurazione cliccare sul pulsante &amp;quot;Game Folder&amp;quot; in basso a destra della finestra del Laucher. All'interno della finestra che si aprirà cercare il file '''options.txt'''&lt;br /&gt;
&lt;br /&gt;
=== Collegamento al server ===&lt;br /&gt;
&lt;br /&gt;
Cliccare su '''Enter the Game''' in basso a destra. Attendere il caricamento di Minecraft. Apparirà la seguente finestra:&lt;br /&gt;
&lt;br /&gt;
[[File:Minecraft 1.8.8 218.png|600px|File:Minecraft_1.8.8_218.png]]&lt;br /&gt;
&lt;br /&gt;
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):&lt;br /&gt;
&lt;br /&gt;
[[File:Minecraft 1.8.8 219.png|600px|File:Minecraft_1.8.8_219.png]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Scrivere il primo programma Python ==&lt;br /&gt;
&lt;br /&gt;
Questo esercizio insegna come aprire una connessione con il server Minecraft per realizzare una semplice operazione di scrittura sulla chat del gioco.&lt;br /&gt;
&lt;br /&gt;
Aprire l'editor che si è scelto per scrivere il programma Python e inserire le seguenti righe:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line &amp;gt;&lt;br /&gt;
import mcpi.minecraft as minecraft&lt;br /&gt;
mc = minecraft.Minecraft.create(address=&amp;quot;192.168.12.10&amp;quot;, name=&amp;quot;rodmcban&amp;quot;)&lt;br /&gt;
mc.postToChat(&amp;quot;Ciao Minecraft!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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 '''&amp;quot;name&amp;quot;''' utilizzare quello del proprio personaggio (inserito all'inizio nella prima schermata del launcher).&lt;br /&gt;
&lt;br /&gt;
Salvare il file così scritto all'interno della directory '''TeachCraft-Challenges'''.&lt;br /&gt;
&lt;br /&gt;
Eseguire il programma Python con l'interprete che si ha a disposizione. Sulla finestra di Minecraft apparirà una riga di chat con scritto '''&amp;quot;Ciao Minecraft!&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
[[File:Minecraft 1.8.8 221.png|600px|File:Minecraft_1.8.8_221.png]]&lt;br /&gt;
&lt;br /&gt;
Vediamo nel dettaglio cosa significano le tre righe che abbiamo scritto.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line &amp;gt;&lt;br /&gt;
import mcpi.minecraft as minecraft&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line start=&amp;quot;2&amp;quot; &amp;gt;&lt;br /&gt;
mc = minecraft.Minecraft.create(address=&amp;quot;192.168.12.10&amp;quot;, name=&amp;quot;rodmcban&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Notare la variabile '''mc''': in questo &amp;quot;contenitore&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line start=&amp;quot;3&amp;quot; &amp;gt;&lt;br /&gt;
mc.postToChat(&amp;quot;Ciao Minecraft!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Esercizio 1: Teletrasportare il personaggio ==&lt;br /&gt;
&lt;br /&gt;
Con questo secondo programma vediamo come inviare un comando che cambia la posizione del personaggio a cui siamo agganciati. L'esempio è tratto dalla [https://github.com/teachthenet/TeachCraft-Challenges/blob/master/lesson_1.md prima lezione] del sito TeachCraft-Challenges.&lt;br /&gt;
&lt;br /&gt;
Il codice da scrivere stavolta è leggermente di più:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line &amp;gt;&lt;br /&gt;
# coding=utf-8&lt;br /&gt;
import mcpi.minecraft as minecraft&lt;br /&gt;
&lt;br /&gt;
# NOTA - sostituire l'indirizzo IP 192.168.12.10 con quello del server a cui&lt;br /&gt;
# si è collegati e &amp;quot;rodmcban&amp;quot; con il nome del proprio personaggio&lt;br /&gt;
mc = minecraft.Minecraft.create(address=&amp;quot;192.168.12.10&amp;quot;, name=&amp;quot;rodmcban&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
mc.player.setPos(-33, 20, 34)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Qui introduciamo i '''commenti''' che sono le righe che iniziano con il carattere '''#'''.&lt;br /&gt;
Queste righe servono a noi per ricordarci qualcosa sul codice che stiamo scrivendo ma sono completamente ignorate dall'interprete Python. Di fatto non servono all'esecuzione del programma&lt;br /&gt;
&lt;br /&gt;
A parte i commenti riconosciamo le prime due righe di codice, che altro non sono che quelle che già conosciamo e che servono a stabilire una connessione con un personaggio sul server.&lt;br /&gt;
&lt;br /&gt;
La terza riga che è quella che effettua veramente un'operazione questa volta utilizza il metodo '''setPos''' per impostare la posizione del personaggio a dove vogliamo noi.&lt;br /&gt;
&lt;br /&gt;
Provate a spostarvi per il mondo Minecraft dove volete e poi provate ad eseguire questo nuovo programma: tornerete tutte le volte a una posizione predefinita.&lt;br /&gt;
&lt;br /&gt;
Scriviamo adesso una versione leggermente più complicata del programma utilizzando delle '''variabili''' per indicare le tre componenti della posizione:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line &amp;gt;&lt;br /&gt;
# coding=utf-8&lt;br /&gt;
import mcpi.minecraft as minecraft&lt;br /&gt;
&lt;br /&gt;
# NOTA - sostituire l'indirizzo IP 192.168.12.10 con quello del server a cui&lt;br /&gt;
# si è collegati e &amp;quot;rodmcban&amp;quot; con il nome del proprio personaggio&lt;br /&gt;
mc = minecraft.Minecraft.create(address=&amp;quot;192.168.12.10&amp;quot;, name=&amp;quot;rodmcban&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
x = -33&lt;br /&gt;
y = 20&lt;br /&gt;
z = 34&lt;br /&gt;
&lt;br /&gt;
mc.player.setPos(x, y, z)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esercizi:&lt;br /&gt;
* Provate a modificare i valori dei tre argomenti della funzione '''setPos'''. Cosa succede?&lt;br /&gt;
* Quale tra '''x''', '''y''' e '''z''' è quello che cambia la posizione verticale del personaggio?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''TO BE COMPLETED'''&lt;br /&gt;
[[Category:Python|P]]&amp;lt;br/&amp;gt;[[Category:Minecraft|M]]&lt;/div&gt;</summary>
		<author><name>Fpiantini</name></author>	</entry>

	<entry>
		<id>https://kata.coderdojo.it/wiki/index.php?title=Python%2BMinecraft:_primi_esercizi</id>
		<title>Python+Minecraft: primi esercizi</title>
		<link rel="alternate" type="text/html" href="https://kata.coderdojo.it/wiki/index.php?title=Python%2BMinecraft:_primi_esercizi"/>
				<updated>2016-05-25T23:30:59Z</updated>
		
		<summary type="html">&lt;p&gt;Fpiantini: /* Prerequisiti */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Gli esercizi descitti in questa pagina sono stati adattati a partire da quelli messi a disposizione dal repository [https://github.com/teachthenet/TeachCraft-Challenges TeachCraft-Challenges]. Si ringrazia [https://github.com/teachthenet TeachTheNet] per l'interessante materiale messo a disposizione.&lt;br /&gt;
&lt;br /&gt;
== Prerequisiti ==&lt;br /&gt;
&lt;br /&gt;
Deve essere stato installato l'interprete Python e il launcher Minecraft come descritto in [http://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_Setup_PC_dei_Partecipanti 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.&lt;br /&gt;
&lt;br /&gt;
Nel caso non lo avessete a disposizione in questo sito è disponibile [http://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_setup_di_un_server_Minecraft una pagina] che descrive come installarlo e avviarlo.&lt;br /&gt;
&lt;br /&gt;
Nel seguito supponiamo che il server sia disponibile all'indirizzo IP '''192.168.12.10'''.&lt;br /&gt;
&lt;br /&gt;
Per evitare che tutte le volte che ci allontaniamo dalla finestra di Minecraft questa si disattivi, modificare la configurazione di Minecraft. In particolare nel file modificare il parametro '''pauseOnLostFocus''' impostandolo al valore '''false''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pauseOnLostFocus:false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il file di configurazione si trova nella directory utente all'interno della directory '''minecraft'''. In particolare:&lt;br /&gt;
&lt;br /&gt;
* Per i sistemi Linux il file da modificare è '''$HOME/.minecraft/config.txt'''&lt;br /&gt;
* Per i sistemi Windows è '''TO BE COMPLETED'''&lt;br /&gt;
&lt;br /&gt;
== Avviare il Launcher Minecraft ==&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ java -jar Minecraft_Launcher.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Una volta che il caricamento del launcher è terminato apparirà la seguente finestra:&lt;br /&gt;
&lt;br /&gt;
[[File:TLauncher 1.964 217.png|600px|File:TLauncher_1.964_217.png]]&lt;br /&gt;
&lt;br /&gt;
Cliccare su '''Enter the Game''' in basso a destra. Attendere il caricamento di Minecraft. Apparirà la seguente finestra:&lt;br /&gt;
&lt;br /&gt;
[[File:Minecraft 1.8.8 218.png|600px|File:Minecraft_1.8.8_218.png]]&lt;br /&gt;
&lt;br /&gt;
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):&lt;br /&gt;
&lt;br /&gt;
[[File:Minecraft 1.8.8 219.png|600px|File:Minecraft_1.8.8_219.png]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Scrivere il primo programma Python ==&lt;br /&gt;
&lt;br /&gt;
Questo esercizio insegna come aprire una connessione con il server Minecraft per realizzare una semplice operazione di scrittura sulla chat del gioco.&lt;br /&gt;
&lt;br /&gt;
Aprire l'editor che si è scelto per scrivere il programma Python e inserire le seguenti righe:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line &amp;gt;&lt;br /&gt;
import mcpi.minecraft as minecraft&lt;br /&gt;
mc = minecraft.Minecraft.create(address=&amp;quot;192.168.12.10&amp;quot;, name=&amp;quot;rodmcban&amp;quot;)&lt;br /&gt;
mc.postToChat(&amp;quot;Ciao Minecraft!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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 '''&amp;quot;name&amp;quot;''' utilizzare quello del proprio personaggio (inserito all'inizio nella prima schermata del launcher).&lt;br /&gt;
&lt;br /&gt;
Salvare il file così scritto all'interno della directory '''TeachCraft-Challenges'''.&lt;br /&gt;
&lt;br /&gt;
Eseguire il programma Python con l'interprete che si ha a disposizione. Sulla finestra di Minecraft apparirà una riga di chat con scritto '''&amp;quot;Ciao Minecraft!&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
[[File:Minecraft 1.8.8 221.png|600px|File:Minecraft_1.8.8_221.png]]&lt;br /&gt;
&lt;br /&gt;
Vediamo nel dettaglio cosa significano le tre righe che abbiamo scritto.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line &amp;gt;&lt;br /&gt;
import mcpi.minecraft as minecraft&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line start=&amp;quot;2&amp;quot; &amp;gt;&lt;br /&gt;
mc = minecraft.Minecraft.create(address=&amp;quot;192.168.12.10&amp;quot;, name=&amp;quot;rodmcban&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Notare la variabile '''mc''': in questo &amp;quot;contenitore&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line start=&amp;quot;3&amp;quot; &amp;gt;&lt;br /&gt;
mc.postToChat(&amp;quot;Ciao Minecraft!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Esercizio 1: Teletrasportare il personaggio ==&lt;br /&gt;
&lt;br /&gt;
Con questo secondo programma vediamo come inviare un comando che cambia la posizione del personaggio a cui siamo agganciati. L'esempio è tratto dalla [https://github.com/teachthenet/TeachCraft-Challenges/blob/master/lesson_1.md prima lezione] del sito TeachCraft-Challenges.&lt;br /&gt;
&lt;br /&gt;
Il codice da scrivere stavolta è leggermente di più:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line &amp;gt;&lt;br /&gt;
# coding=utf-8&lt;br /&gt;
import mcpi.minecraft as minecraft&lt;br /&gt;
&lt;br /&gt;
# NOTA - sostituire l'indirizzo IP 192.168.12.10 con quello del server a cui&lt;br /&gt;
# si è collegati e &amp;quot;rodmcban&amp;quot; con il nome del proprio personaggio&lt;br /&gt;
mc = minecraft.Minecraft.create(address=&amp;quot;192.168.12.10&amp;quot;, name=&amp;quot;rodmcban&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
mc.player.setPos(-33, 20, 34)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Qui introduciamo i '''commenti''' che sono le righe che iniziano con il carattere '''#'''.&lt;br /&gt;
Queste righe servono a noi per ricordarci qualcosa sul codice che stiamo scrivendo ma sono completamente ignorate dall'interprete Python. Di fatto non servono all'esecuzione del programma&lt;br /&gt;
&lt;br /&gt;
A parte i commenti riconosciamo le prime due righe di codice, che altro non sono che quelle che già conosciamo e che servono a stabilire una connessione con un personaggio sul server.&lt;br /&gt;
&lt;br /&gt;
La terza riga che è quella che effettua veramente un'operazione questa volta utilizza il metodo '''setPos''' per impostare la posizione del personaggio a dove vogliamo noi.&lt;br /&gt;
&lt;br /&gt;
Provate a spostarvi per il mondo Minecraft dove volete e poi provate ad eseguire questo nuovo programma: tornerete tutte le volte a una posizione predefinita.&lt;br /&gt;
&lt;br /&gt;
Scriviamo adesso una versione leggermente più complicata del programma utilizzando delle '''variabili''' per indicare le tre componenti della posizione:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line &amp;gt;&lt;br /&gt;
# coding=utf-8&lt;br /&gt;
import mcpi.minecraft as minecraft&lt;br /&gt;
&lt;br /&gt;
# NOTA - sostituire l'indirizzo IP 192.168.12.10 con quello del server a cui&lt;br /&gt;
# si è collegati e &amp;quot;rodmcban&amp;quot; con il nome del proprio personaggio&lt;br /&gt;
mc = minecraft.Minecraft.create(address=&amp;quot;192.168.12.10&amp;quot;, name=&amp;quot;rodmcban&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
x = -33&lt;br /&gt;
y = 20&lt;br /&gt;
z = 34&lt;br /&gt;
&lt;br /&gt;
mc.player.setPos(x, y, z)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esercizi:&lt;br /&gt;
* Provate a modificare i valori dei tre argomenti della funzione '''setPos'''. Cosa succede?&lt;br /&gt;
* Quale tra '''x''', '''y''' e '''z''' è quello che cambia la posizione verticale del personaggio?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''TO BE COMPLETED'''&lt;br /&gt;
[[Category:Python|P]]&amp;lt;br/&amp;gt;[[Category:Minecraft|M]]&lt;/div&gt;</summary>
		<author><name>Fpiantini</name></author>	</entry>

	<entry>
		<id>https://kata.coderdojo.it/wiki/index.php?title=Python%2BMinecraft:_primi_esercizi</id>
		<title>Python+Minecraft: primi esercizi</title>
		<link rel="alternate" type="text/html" href="https://kata.coderdojo.it/wiki/index.php?title=Python%2BMinecraft:_primi_esercizi"/>
				<updated>2016-05-25T23:30:25Z</updated>
		
		<summary type="html">&lt;p&gt;Fpiantini: /* Prerequisiti */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Gli esercizi descitti in questa pagina sono stati adattati a partire da quelli messi a disposizione dal repository [https://github.com/teachthenet/TeachCraft-Challenges TeachCraft-Challenges]. Si ringrazia [https://github.com/teachthenet TeachTheNet] per l'interessante materiale messo a disposizione.&lt;br /&gt;
&lt;br /&gt;
== Prerequisiti ==&lt;br /&gt;
&lt;br /&gt;
Deve essere stato installato l'interprete Python e il launcher Minecraft come descritto in [http://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_Setup_PC_dei_Partecipanti 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.&lt;br /&gt;
&lt;br /&gt;
Nel caso non lo avessete a disposizione in questo sito è disponibile [http://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_setup_di_un_server_Minecraft una pagina] che descrive come installarlo e avviarlo.&lt;br /&gt;
&lt;br /&gt;
Nel seguito supponiamo che il server sia disponibile all'indirizzo IP '''192.168.12.10'''.&lt;br /&gt;
&lt;br /&gt;
Per evitare che tutte le volte che ci allontaniamo dalla finestra di Minecraft questa si disattivi, modificare la configurazione di Minecraft. In particolare nel file modificare il parametro '''pauseOnLostFocus''' impostandolo al valore '''false''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pauseOnLostFocus:false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il file di configurazione si trova nella directory utente all'interno della directory '''minecraft'''. In particolare:&lt;br /&gt;
&lt;br /&gt;
* Per i sistemi Linux il file da modificare è $HOME/.minecraft/config.txt&lt;br /&gt;
* Per i sistemi Windows è '''TO BE COMPLETED'''&lt;br /&gt;
&lt;br /&gt;
== Avviare il Launcher Minecraft ==&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ java -jar Minecraft_Launcher.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Una volta che il caricamento del launcher è terminato apparirà la seguente finestra:&lt;br /&gt;
&lt;br /&gt;
[[File:TLauncher 1.964 217.png|600px|File:TLauncher_1.964_217.png]]&lt;br /&gt;
&lt;br /&gt;
Cliccare su '''Enter the Game''' in basso a destra. Attendere il caricamento di Minecraft. Apparirà la seguente finestra:&lt;br /&gt;
&lt;br /&gt;
[[File:Minecraft 1.8.8 218.png|600px|File:Minecraft_1.8.8_218.png]]&lt;br /&gt;
&lt;br /&gt;
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):&lt;br /&gt;
&lt;br /&gt;
[[File:Minecraft 1.8.8 219.png|600px|File:Minecraft_1.8.8_219.png]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Scrivere il primo programma Python ==&lt;br /&gt;
&lt;br /&gt;
Questo esercizio insegna come aprire una connessione con il server Minecraft per realizzare una semplice operazione di scrittura sulla chat del gioco.&lt;br /&gt;
&lt;br /&gt;
Aprire l'editor che si è scelto per scrivere il programma Python e inserire le seguenti righe:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line &amp;gt;&lt;br /&gt;
import mcpi.minecraft as minecraft&lt;br /&gt;
mc = minecraft.Minecraft.create(address=&amp;quot;192.168.12.10&amp;quot;, name=&amp;quot;rodmcban&amp;quot;)&lt;br /&gt;
mc.postToChat(&amp;quot;Ciao Minecraft!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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 '''&amp;quot;name&amp;quot;''' utilizzare quello del proprio personaggio (inserito all'inizio nella prima schermata del launcher).&lt;br /&gt;
&lt;br /&gt;
Salvare il file così scritto all'interno della directory '''TeachCraft-Challenges'''.&lt;br /&gt;
&lt;br /&gt;
Eseguire il programma Python con l'interprete che si ha a disposizione. Sulla finestra di Minecraft apparirà una riga di chat con scritto '''&amp;quot;Ciao Minecraft!&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
[[File:Minecraft 1.8.8 221.png|600px|File:Minecraft_1.8.8_221.png]]&lt;br /&gt;
&lt;br /&gt;
Vediamo nel dettaglio cosa significano le tre righe che abbiamo scritto.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line &amp;gt;&lt;br /&gt;
import mcpi.minecraft as minecraft&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line start=&amp;quot;2&amp;quot; &amp;gt;&lt;br /&gt;
mc = minecraft.Minecraft.create(address=&amp;quot;192.168.12.10&amp;quot;, name=&amp;quot;rodmcban&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Notare la variabile '''mc''': in questo &amp;quot;contenitore&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line start=&amp;quot;3&amp;quot; &amp;gt;&lt;br /&gt;
mc.postToChat(&amp;quot;Ciao Minecraft!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Esercizio 1: Teletrasportare il personaggio ==&lt;br /&gt;
&lt;br /&gt;
Con questo secondo programma vediamo come inviare un comando che cambia la posizione del personaggio a cui siamo agganciati. L'esempio è tratto dalla [https://github.com/teachthenet/TeachCraft-Challenges/blob/master/lesson_1.md prima lezione] del sito TeachCraft-Challenges.&lt;br /&gt;
&lt;br /&gt;
Il codice da scrivere stavolta è leggermente di più:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line &amp;gt;&lt;br /&gt;
# coding=utf-8&lt;br /&gt;
import mcpi.minecraft as minecraft&lt;br /&gt;
&lt;br /&gt;
# NOTA - sostituire l'indirizzo IP 192.168.12.10 con quello del server a cui&lt;br /&gt;
# si è collegati e &amp;quot;rodmcban&amp;quot; con il nome del proprio personaggio&lt;br /&gt;
mc = minecraft.Minecraft.create(address=&amp;quot;192.168.12.10&amp;quot;, name=&amp;quot;rodmcban&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
mc.player.setPos(-33, 20, 34)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Qui introduciamo i '''commenti''' che sono le righe che iniziano con il carattere '''#'''.&lt;br /&gt;
Queste righe servono a noi per ricordarci qualcosa sul codice che stiamo scrivendo ma sono completamente ignorate dall'interprete Python. Di fatto non servono all'esecuzione del programma&lt;br /&gt;
&lt;br /&gt;
A parte i commenti riconosciamo le prime due righe di codice, che altro non sono che quelle che già conosciamo e che servono a stabilire una connessione con un personaggio sul server.&lt;br /&gt;
&lt;br /&gt;
La terza riga che è quella che effettua veramente un'operazione questa volta utilizza il metodo '''setPos''' per impostare la posizione del personaggio a dove vogliamo noi.&lt;br /&gt;
&lt;br /&gt;
Provate a spostarvi per il mondo Minecraft dove volete e poi provate ad eseguire questo nuovo programma: tornerete tutte le volte a una posizione predefinita.&lt;br /&gt;
&lt;br /&gt;
Scriviamo adesso una versione leggermente più complicata del programma utilizzando delle '''variabili''' per indicare le tre componenti della posizione:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line &amp;gt;&lt;br /&gt;
# coding=utf-8&lt;br /&gt;
import mcpi.minecraft as minecraft&lt;br /&gt;
&lt;br /&gt;
# NOTA - sostituire l'indirizzo IP 192.168.12.10 con quello del server a cui&lt;br /&gt;
# si è collegati e &amp;quot;rodmcban&amp;quot; con il nome del proprio personaggio&lt;br /&gt;
mc = minecraft.Minecraft.create(address=&amp;quot;192.168.12.10&amp;quot;, name=&amp;quot;rodmcban&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
x = -33&lt;br /&gt;
y = 20&lt;br /&gt;
z = 34&lt;br /&gt;
&lt;br /&gt;
mc.player.setPos(x, y, z)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esercizi:&lt;br /&gt;
* Provate a modificare i valori dei tre argomenti della funzione '''setPos'''. Cosa succede?&lt;br /&gt;
* Quale tra '''x''', '''y''' e '''z''' è quello che cambia la posizione verticale del personaggio?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''TO BE COMPLETED'''&lt;br /&gt;
[[Category:Python|P]]&amp;lt;br/&amp;gt;[[Category:Minecraft|M]]&lt;/div&gt;</summary>
		<author><name>Fpiantini</name></author>	</entry>

	<entry>
		<id>https://kata.coderdojo.it/wiki/index.php?title=Python%2BMinecraft:_primi_esercizi</id>
		<title>Python+Minecraft: primi esercizi</title>
		<link rel="alternate" type="text/html" href="https://kata.coderdojo.it/wiki/index.php?title=Python%2BMinecraft:_primi_esercizi"/>
				<updated>2016-05-25T23:25:09Z</updated>
		
		<summary type="html">&lt;p&gt;Fpiantini: /* Esercizio 1: Teletrasportare il personaggio */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Gli esercizi descitti in questa pagina sono stati adattati a partire da quelli messi a disposizione dal repository [https://github.com/teachthenet/TeachCraft-Challenges TeachCraft-Challenges]. Si ringrazia [https://github.com/teachthenet TeachTheNet] per l'interessante materiale messo a disposizione.&lt;br /&gt;
&lt;br /&gt;
== Prerequisiti ==&lt;br /&gt;
&lt;br /&gt;
Deve essere stato installato l'interprete Python e il launcher Minecraft come descritto in [http://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_Setup_PC_dei_Partecipanti 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.&lt;br /&gt;
&lt;br /&gt;
Nel caso non lo avessete a disposizione in questo sito è disponibile [http://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_setup_di_un_server_Minecraft una pagina] che descrive come installarlo e avviarlo.&lt;br /&gt;
&lt;br /&gt;
Nel seguito supponiamo che il server sia disponibile all'indirizzo IP '''192.168.12.10'''.&lt;br /&gt;
&lt;br /&gt;
== Avviare il Launcher Minecraft ==&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ java -jar Minecraft_Launcher.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Una volta che il caricamento del launcher è terminato apparirà la seguente finestra:&lt;br /&gt;
&lt;br /&gt;
[[File:TLauncher 1.964 217.png|600px|File:TLauncher_1.964_217.png]]&lt;br /&gt;
&lt;br /&gt;
Cliccare su '''Enter the Game''' in basso a destra. Attendere il caricamento di Minecraft. Apparirà la seguente finestra:&lt;br /&gt;
&lt;br /&gt;
[[File:Minecraft 1.8.8 218.png|600px|File:Minecraft_1.8.8_218.png]]&lt;br /&gt;
&lt;br /&gt;
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):&lt;br /&gt;
&lt;br /&gt;
[[File:Minecraft 1.8.8 219.png|600px|File:Minecraft_1.8.8_219.png]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Scrivere il primo programma Python ==&lt;br /&gt;
&lt;br /&gt;
Questo esercizio insegna come aprire una connessione con il server Minecraft per realizzare una semplice operazione di scrittura sulla chat del gioco.&lt;br /&gt;
&lt;br /&gt;
Aprire l'editor che si è scelto per scrivere il programma Python e inserire le seguenti righe:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line &amp;gt;&lt;br /&gt;
import mcpi.minecraft as minecraft&lt;br /&gt;
mc = minecraft.Minecraft.create(address=&amp;quot;192.168.12.10&amp;quot;, name=&amp;quot;rodmcban&amp;quot;)&lt;br /&gt;
mc.postToChat(&amp;quot;Ciao Minecraft!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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 '''&amp;quot;name&amp;quot;''' utilizzare quello del proprio personaggio (inserito all'inizio nella prima schermata del launcher).&lt;br /&gt;
&lt;br /&gt;
Salvare il file così scritto all'interno della directory '''TeachCraft-Challenges'''.&lt;br /&gt;
&lt;br /&gt;
Eseguire il programma Python con l'interprete che si ha a disposizione. Sulla finestra di Minecraft apparirà una riga di chat con scritto '''&amp;quot;Ciao Minecraft!&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
[[File:Minecraft 1.8.8 221.png|600px|File:Minecraft_1.8.8_221.png]]&lt;br /&gt;
&lt;br /&gt;
Vediamo nel dettaglio cosa significano le tre righe che abbiamo scritto.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line &amp;gt;&lt;br /&gt;
import mcpi.minecraft as minecraft&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line start=&amp;quot;2&amp;quot; &amp;gt;&lt;br /&gt;
mc = minecraft.Minecraft.create(address=&amp;quot;192.168.12.10&amp;quot;, name=&amp;quot;rodmcban&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Notare la variabile '''mc''': in questo &amp;quot;contenitore&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line start=&amp;quot;3&amp;quot; &amp;gt;&lt;br /&gt;
mc.postToChat(&amp;quot;Ciao Minecraft!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Esercizio 1: Teletrasportare il personaggio ==&lt;br /&gt;
&lt;br /&gt;
Con questo secondo programma vediamo come inviare un comando che cambia la posizione del personaggio a cui siamo agganciati. L'esempio è tratto dalla [https://github.com/teachthenet/TeachCraft-Challenges/blob/master/lesson_1.md prima lezione] del sito TeachCraft-Challenges.&lt;br /&gt;
&lt;br /&gt;
Il codice da scrivere stavolta è leggermente di più:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line &amp;gt;&lt;br /&gt;
# coding=utf-8&lt;br /&gt;
import mcpi.minecraft as minecraft&lt;br /&gt;
&lt;br /&gt;
# NOTA - sostituire l'indirizzo IP 192.168.12.10 con quello del server a cui&lt;br /&gt;
# si è collegati e &amp;quot;rodmcban&amp;quot; con il nome del proprio personaggio&lt;br /&gt;
mc = minecraft.Minecraft.create(address=&amp;quot;192.168.12.10&amp;quot;, name=&amp;quot;rodmcban&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
mc.player.setPos(-33, 20, 34)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Qui introduciamo i '''commenti''' che sono le righe che iniziano con il carattere '''#'''.&lt;br /&gt;
Queste righe servono a noi per ricordarci qualcosa sul codice che stiamo scrivendo ma sono completamente ignorate dall'interprete Python. Di fatto non servono all'esecuzione del programma&lt;br /&gt;
&lt;br /&gt;
A parte i commenti riconosciamo le prime due righe di codice, che altro non sono che quelle che già conosciamo e che servono a stabilire una connessione con un personaggio sul server.&lt;br /&gt;
&lt;br /&gt;
La terza riga che è quella che effettua veramente un'operazione questa volta utilizza il metodo '''setPos''' per impostare la posizione del personaggio a dove vogliamo noi.&lt;br /&gt;
&lt;br /&gt;
Provate a spostarvi per il mondo Minecraft dove volete e poi provate ad eseguire questo nuovo programma: tornerete tutte le volte a una posizione predefinita.&lt;br /&gt;
&lt;br /&gt;
Scriviamo adesso una versione leggermente più complicata del programma utilizzando delle '''variabili''' per indicare le tre componenti della posizione:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line &amp;gt;&lt;br /&gt;
# coding=utf-8&lt;br /&gt;
import mcpi.minecraft as minecraft&lt;br /&gt;
&lt;br /&gt;
# NOTA - sostituire l'indirizzo IP 192.168.12.10 con quello del server a cui&lt;br /&gt;
# si è collegati e &amp;quot;rodmcban&amp;quot; con il nome del proprio personaggio&lt;br /&gt;
mc = minecraft.Minecraft.create(address=&amp;quot;192.168.12.10&amp;quot;, name=&amp;quot;rodmcban&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
x = -33&lt;br /&gt;
y = 20&lt;br /&gt;
z = 34&lt;br /&gt;
&lt;br /&gt;
mc.player.setPos(x, y, z)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esercizi:&lt;br /&gt;
* Provate a modificare i valori dei tre argomenti della funzione '''setPos'''. Cosa succede?&lt;br /&gt;
* Quale tra '''x''', '''y''' e '''z''' è quello che cambia la posizione verticale del personaggio?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''TO BE COMPLETED'''&lt;br /&gt;
[[Category:Python|P]]&amp;lt;br/&amp;gt;[[Category:Minecraft|M]]&lt;/div&gt;</summary>
		<author><name>Fpiantini</name></author>	</entry>

	<entry>
		<id>https://kata.coderdojo.it/wiki/index.php?title=Python%2BMinecraft:_primi_esercizi</id>
		<title>Python+Minecraft: primi esercizi</title>
		<link rel="alternate" type="text/html" href="https://kata.coderdojo.it/wiki/index.php?title=Python%2BMinecraft:_primi_esercizi"/>
				<updated>2016-05-25T23:24:37Z</updated>
		
		<summary type="html">&lt;p&gt;Fpiantini: /* Esercizio 1: Teletrasportare il personaggio */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Gli esercizi descitti in questa pagina sono stati adattati a partire da quelli messi a disposizione dal repository [https://github.com/teachthenet/TeachCraft-Challenges TeachCraft-Challenges]. Si ringrazia [https://github.com/teachthenet TeachTheNet] per l'interessante materiale messo a disposizione.&lt;br /&gt;
&lt;br /&gt;
== Prerequisiti ==&lt;br /&gt;
&lt;br /&gt;
Deve essere stato installato l'interprete Python e il launcher Minecraft come descritto in [http://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_Setup_PC_dei_Partecipanti 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.&lt;br /&gt;
&lt;br /&gt;
Nel caso non lo avessete a disposizione in questo sito è disponibile [http://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_setup_di_un_server_Minecraft una pagina] che descrive come installarlo e avviarlo.&lt;br /&gt;
&lt;br /&gt;
Nel seguito supponiamo che il server sia disponibile all'indirizzo IP '''192.168.12.10'''.&lt;br /&gt;
&lt;br /&gt;
== Avviare il Launcher Minecraft ==&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ java -jar Minecraft_Launcher.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Una volta che il caricamento del launcher è terminato apparirà la seguente finestra:&lt;br /&gt;
&lt;br /&gt;
[[File:TLauncher 1.964 217.png|600px|File:TLauncher_1.964_217.png]]&lt;br /&gt;
&lt;br /&gt;
Cliccare su '''Enter the Game''' in basso a destra. Attendere il caricamento di Minecraft. Apparirà la seguente finestra:&lt;br /&gt;
&lt;br /&gt;
[[File:Minecraft 1.8.8 218.png|600px|File:Minecraft_1.8.8_218.png]]&lt;br /&gt;
&lt;br /&gt;
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):&lt;br /&gt;
&lt;br /&gt;
[[File:Minecraft 1.8.8 219.png|600px|File:Minecraft_1.8.8_219.png]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Scrivere il primo programma Python ==&lt;br /&gt;
&lt;br /&gt;
Questo esercizio insegna come aprire una connessione con il server Minecraft per realizzare una semplice operazione di scrittura sulla chat del gioco.&lt;br /&gt;
&lt;br /&gt;
Aprire l'editor che si è scelto per scrivere il programma Python e inserire le seguenti righe:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line &amp;gt;&lt;br /&gt;
import mcpi.minecraft as minecraft&lt;br /&gt;
mc = minecraft.Minecraft.create(address=&amp;quot;192.168.12.10&amp;quot;, name=&amp;quot;rodmcban&amp;quot;)&lt;br /&gt;
mc.postToChat(&amp;quot;Ciao Minecraft!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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 '''&amp;quot;name&amp;quot;''' utilizzare quello del proprio personaggio (inserito all'inizio nella prima schermata del launcher).&lt;br /&gt;
&lt;br /&gt;
Salvare il file così scritto all'interno della directory '''TeachCraft-Challenges'''.&lt;br /&gt;
&lt;br /&gt;
Eseguire il programma Python con l'interprete che si ha a disposizione. Sulla finestra di Minecraft apparirà una riga di chat con scritto '''&amp;quot;Ciao Minecraft!&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
[[File:Minecraft 1.8.8 221.png|600px|File:Minecraft_1.8.8_221.png]]&lt;br /&gt;
&lt;br /&gt;
Vediamo nel dettaglio cosa significano le tre righe che abbiamo scritto.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line &amp;gt;&lt;br /&gt;
import mcpi.minecraft as minecraft&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line start=&amp;quot;2&amp;quot; &amp;gt;&lt;br /&gt;
mc = minecraft.Minecraft.create(address=&amp;quot;192.168.12.10&amp;quot;, name=&amp;quot;rodmcban&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Notare la variabile '''mc''': in questo &amp;quot;contenitore&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line start=&amp;quot;3&amp;quot; &amp;gt;&lt;br /&gt;
mc.postToChat(&amp;quot;Ciao Minecraft!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Esercizio 1: Teletrasportare il personaggio ==&lt;br /&gt;
&lt;br /&gt;
Con questo secondo programma vediamo come inviare un comando che cambia la posizione del personaggio a cui siamo agganciati. L'esempio è tratto dalla [https://github.com/teachthenet/TeachCraft-Challenges/blob/master/lesson_1.md prima lezione] del sito TeachCraft-Challenges.&lt;br /&gt;
&lt;br /&gt;
Il codice da scrivere stavolta è leggermente di più:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line &amp;gt;&lt;br /&gt;
# coding=utf-8&lt;br /&gt;
import mcpi.minecraft as minecraft&lt;br /&gt;
&lt;br /&gt;
# NOTA - sostituire l'indirizzo IP 192.168.12.10 con quello del server a cui&lt;br /&gt;
# si è collegati e &amp;quot;rodmcban&amp;quot; con il nome del proprio personaggio&lt;br /&gt;
mc = minecraft.Minecraft.create(address=&amp;quot;192.168.12.10&amp;quot;, name=&amp;quot;rodmcban&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
mc.player.setPos(-33, 20, 34)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Qui introduciamo i '''commenti''' che sono le righe che iniziano con il carattere '''#'''.&lt;br /&gt;
Queste righe servono a noi per ricordarci qualcosa sul codice che stiamo scrivendo ma sono completamente ignorate dall'interprete Python. Di fatto non servono all'esecuzione del programma&lt;br /&gt;
&lt;br /&gt;
A parte i commenti riconosciamo le prime due righe di codice, che altro non sono che quelle che già conosciamo e che servono a stabilire una connessione con un personaggio sul server.&lt;br /&gt;
&lt;br /&gt;
La terza riga che è quella che effettua veramente un'operazione questa volta utilizza il metodo '''setPos''' per impostare la posizione del personaggio a dove vogliamo noi.&lt;br /&gt;
&lt;br /&gt;
Provate a spostarvi per il mondo Minecraft dove volete e poi provate ad eseguire questo nuovo programma: tornerete tutte le volte a una posizione predefinita.&lt;br /&gt;
&lt;br /&gt;
Scriviamo adesso una versione leggermente più complicata del programma utilizzando delle '''variabili''' per indicare le tre componenti della posizione:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line &amp;gt;&lt;br /&gt;
# coding=utf-8&lt;br /&gt;
import mcpi.minecraft as minecraft&lt;br /&gt;
&lt;br /&gt;
# NOTA - sostituire l'indirizzo IP 192.168.12.10 con quello del server a cui&lt;br /&gt;
# si è collegati e &amp;quot;rodmcban&amp;quot; con il nome del proprio personaggio&lt;br /&gt;
mc = minecraft.Minecraft.create(address=&amp;quot;192.168.12.10&amp;quot;, name=&amp;quot;rodmcban&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
x = -33&lt;br /&gt;
y = 20&lt;br /&gt;
z = 34&lt;br /&gt;
&lt;br /&gt;
mc.player.setPos(x, y, z)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esercizi:&lt;br /&gt;
* Provate a modificare i valori dei tre argomenti della funzione setPos. Cosa succede?&lt;br /&gt;
* Quale tra '''x''', '''y''' e '''z''' è quello che cambia la posizione verticale del personaggio?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''TO BE COMPLETED'''&lt;br /&gt;
[[Category:Python|P]]&amp;lt;br/&amp;gt;[[Category:Minecraft|M]]&lt;/div&gt;</summary>
		<author><name>Fpiantini</name></author>	</entry>

	<entry>
		<id>https://kata.coderdojo.it/wiki/index.php?title=Python%2BMinecraft:_primi_esercizi</id>
		<title>Python+Minecraft: primi esercizi</title>
		<link rel="alternate" type="text/html" href="https://kata.coderdojo.it/wiki/index.php?title=Python%2BMinecraft:_primi_esercizi"/>
				<updated>2016-05-25T23:24:09Z</updated>
		
		<summary type="html">&lt;p&gt;Fpiantini: /* Esercizio 1: Teletrasportare il personaggio */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Gli esercizi descitti in questa pagina sono stati adattati a partire da quelli messi a disposizione dal repository [https://github.com/teachthenet/TeachCraft-Challenges TeachCraft-Challenges]. Si ringrazia [https://github.com/teachthenet TeachTheNet] per l'interessante materiale messo a disposizione.&lt;br /&gt;
&lt;br /&gt;
== Prerequisiti ==&lt;br /&gt;
&lt;br /&gt;
Deve essere stato installato l'interprete Python e il launcher Minecraft come descritto in [http://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_Setup_PC_dei_Partecipanti 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.&lt;br /&gt;
&lt;br /&gt;
Nel caso non lo avessete a disposizione in questo sito è disponibile [http://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_setup_di_un_server_Minecraft una pagina] che descrive come installarlo e avviarlo.&lt;br /&gt;
&lt;br /&gt;
Nel seguito supponiamo che il server sia disponibile all'indirizzo IP '''192.168.12.10'''.&lt;br /&gt;
&lt;br /&gt;
== Avviare il Launcher Minecraft ==&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ java -jar Minecraft_Launcher.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Una volta che il caricamento del launcher è terminato apparirà la seguente finestra:&lt;br /&gt;
&lt;br /&gt;
[[File:TLauncher 1.964 217.png|600px|File:TLauncher_1.964_217.png]]&lt;br /&gt;
&lt;br /&gt;
Cliccare su '''Enter the Game''' in basso a destra. Attendere il caricamento di Minecraft. Apparirà la seguente finestra:&lt;br /&gt;
&lt;br /&gt;
[[File:Minecraft 1.8.8 218.png|600px|File:Minecraft_1.8.8_218.png]]&lt;br /&gt;
&lt;br /&gt;
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):&lt;br /&gt;
&lt;br /&gt;
[[File:Minecraft 1.8.8 219.png|600px|File:Minecraft_1.8.8_219.png]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Scrivere il primo programma Python ==&lt;br /&gt;
&lt;br /&gt;
Questo esercizio insegna come aprire una connessione con il server Minecraft per realizzare una semplice operazione di scrittura sulla chat del gioco.&lt;br /&gt;
&lt;br /&gt;
Aprire l'editor che si è scelto per scrivere il programma Python e inserire le seguenti righe:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line &amp;gt;&lt;br /&gt;
import mcpi.minecraft as minecraft&lt;br /&gt;
mc = minecraft.Minecraft.create(address=&amp;quot;192.168.12.10&amp;quot;, name=&amp;quot;rodmcban&amp;quot;)&lt;br /&gt;
mc.postToChat(&amp;quot;Ciao Minecraft!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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 '''&amp;quot;name&amp;quot;''' utilizzare quello del proprio personaggio (inserito all'inizio nella prima schermata del launcher).&lt;br /&gt;
&lt;br /&gt;
Salvare il file così scritto all'interno della directory '''TeachCraft-Challenges'''.&lt;br /&gt;
&lt;br /&gt;
Eseguire il programma Python con l'interprete che si ha a disposizione. Sulla finestra di Minecraft apparirà una riga di chat con scritto '''&amp;quot;Ciao Minecraft!&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
[[File:Minecraft 1.8.8 221.png|600px|File:Minecraft_1.8.8_221.png]]&lt;br /&gt;
&lt;br /&gt;
Vediamo nel dettaglio cosa significano le tre righe che abbiamo scritto.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line &amp;gt;&lt;br /&gt;
import mcpi.minecraft as minecraft&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line start=&amp;quot;2&amp;quot; &amp;gt;&lt;br /&gt;
mc = minecraft.Minecraft.create(address=&amp;quot;192.168.12.10&amp;quot;, name=&amp;quot;rodmcban&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Notare la variabile '''mc''': in questo &amp;quot;contenitore&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line start=&amp;quot;3&amp;quot; &amp;gt;&lt;br /&gt;
mc.postToChat(&amp;quot;Ciao Minecraft!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Esercizio 1: Teletrasportare il personaggio ==&lt;br /&gt;
&lt;br /&gt;
Con questo secondo programma vediamo come inviare un comando che cambia la posizione del personaggio a cui siamo agganciati. L'esempio è tratto dalla [https://github.com/teachthenet/TeachCraft-Challenges/blob/master/lesson_1.md prima lezione] del sito TeachCraft-Challenges.&lt;br /&gt;
&lt;br /&gt;
Il codice da scrivere stavolta è leggermente di più:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# coding=utf-8&lt;br /&gt;
import mcpi.minecraft as minecraft&lt;br /&gt;
&lt;br /&gt;
# NOTA - sostituire l'indirizzo IP 192.168.12.10 con quello del server a cui&lt;br /&gt;
# si è collegati e &amp;quot;rodmcban&amp;quot; con il nome del proprio personaggio&lt;br /&gt;
mc = minecraft.Minecraft.create(address=&amp;quot;192.168.12.10&amp;quot;, name=&amp;quot;rodmcban&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
mc.player.setPos(-33, 20, 34)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Qui introduciamo i '''commenti''' che sono le righe che iniziano con il carattere '''#'''.&lt;br /&gt;
Queste righe servono a noi per ricordarci qualcosa sul codice che stiamo scrivendo ma sono completamente ignorate dall'interprete Python. Di fatto non servono all'esecuzione del programma&lt;br /&gt;
&lt;br /&gt;
A parte i commenti riconosciamo le prime due righe di codice, che altro non sono che quelle che già conosciamo e che servono a stabilire una connessione con un personaggio sul server.&lt;br /&gt;
&lt;br /&gt;
La terza riga che è quella che effettua veramente un'operazione questa volta utilizza il metodo '''setPos''' per impostare la posizione del personaggio a dove vogliamo noi.&lt;br /&gt;
&lt;br /&gt;
Provate a spostarvi per il mondo Minecraft dove volete e poi provate ad eseguire questo nuovo programma: tornerete tutte le volte a una posizione predefinita.&lt;br /&gt;
&lt;br /&gt;
Scriviamo adesso una versione leggermente più complicata del programma utilizzando delle '''variabili''' per indicare le tre componenti della posizione:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# coding=utf-8&lt;br /&gt;
import mcpi.minecraft as minecraft&lt;br /&gt;
&lt;br /&gt;
# NOTA - sostituire l'indirizzo IP 192.168.12.10 con quello del server a cui&lt;br /&gt;
# si è collegati e &amp;quot;rodmcban&amp;quot; con il nome del proprio personaggio&lt;br /&gt;
mc = minecraft.Minecraft.create(address=&amp;quot;192.168.12.10&amp;quot;, name=&amp;quot;rodmcban&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
x = -33&lt;br /&gt;
y = 20&lt;br /&gt;
z = 34&lt;br /&gt;
&lt;br /&gt;
mc.player.setPos(x, y, z)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esercizi:&lt;br /&gt;
* Provate a modificare i valori dei tre argomenti della funzione setPos. Cosa succede?&lt;br /&gt;
* Quale tra '''x''', '''y''' e '''z''' è quello che cambia la posizione verticale del personaggio?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''TO BE COMPLETED'''&lt;br /&gt;
[[Category:Python|P]]&amp;lt;br/&amp;gt;[[Category:Minecraft|M]]&lt;/div&gt;</summary>
		<author><name>Fpiantini</name></author>	</entry>

	<entry>
		<id>https://kata.coderdojo.it/wiki/index.php?title=Python%2BMinecraft:_primi_esercizi</id>
		<title>Python+Minecraft: primi esercizi</title>
		<link rel="alternate" type="text/html" href="https://kata.coderdojo.it/wiki/index.php?title=Python%2BMinecraft:_primi_esercizi"/>
				<updated>2016-05-25T23:10:37Z</updated>
		
		<summary type="html">&lt;p&gt;Fpiantini: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Gli esercizi descitti in questa pagina sono stati adattati a partire da quelli messi a disposizione dal repository [https://github.com/teachthenet/TeachCraft-Challenges TeachCraft-Challenges]. Si ringrazia [https://github.com/teachthenet TeachTheNet] per l'interessante materiale messo a disposizione.&lt;br /&gt;
&lt;br /&gt;
== Prerequisiti ==&lt;br /&gt;
&lt;br /&gt;
Deve essere stato installato l'interprete Python e il launcher Minecraft come descritto in [http://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_Setup_PC_dei_Partecipanti 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.&lt;br /&gt;
&lt;br /&gt;
Nel caso non lo avessete a disposizione in questo sito è disponibile [http://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_setup_di_un_server_Minecraft una pagina] che descrive come installarlo e avviarlo.&lt;br /&gt;
&lt;br /&gt;
Nel seguito supponiamo che il server sia disponibile all'indirizzo IP '''192.168.12.10'''.&lt;br /&gt;
&lt;br /&gt;
== Avviare il Launcher Minecraft ==&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ java -jar Minecraft_Launcher.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Una volta che il caricamento del launcher è terminato apparirà la seguente finestra:&lt;br /&gt;
&lt;br /&gt;
[[File:TLauncher 1.964 217.png|600px|File:TLauncher_1.964_217.png]]&lt;br /&gt;
&lt;br /&gt;
Cliccare su '''Enter the Game''' in basso a destra. Attendere il caricamento di Minecraft. Apparirà la seguente finestra:&lt;br /&gt;
&lt;br /&gt;
[[File:Minecraft 1.8.8 218.png|600px|File:Minecraft_1.8.8_218.png]]&lt;br /&gt;
&lt;br /&gt;
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):&lt;br /&gt;
&lt;br /&gt;
[[File:Minecraft 1.8.8 219.png|600px|File:Minecraft_1.8.8_219.png]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Scrivere il primo programma Python ==&lt;br /&gt;
&lt;br /&gt;
Questo esercizio insegna come aprire una connessione con il server Minecraft per realizzare una semplice operazione di scrittura sulla chat del gioco.&lt;br /&gt;
&lt;br /&gt;
Aprire l'editor che si è scelto per scrivere il programma Python e inserire le seguenti righe:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line &amp;gt;&lt;br /&gt;
import mcpi.minecraft as minecraft&lt;br /&gt;
mc = minecraft.Minecraft.create(address=&amp;quot;192.168.12.10&amp;quot;, name=&amp;quot;rodmcban&amp;quot;)&lt;br /&gt;
mc.postToChat(&amp;quot;Ciao Minecraft!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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 '''&amp;quot;name&amp;quot;''' utilizzare quello del proprio personaggio (inserito all'inizio nella prima schermata del launcher).&lt;br /&gt;
&lt;br /&gt;
Salvare il file così scritto all'interno della directory '''TeachCraft-Challenges'''.&lt;br /&gt;
&lt;br /&gt;
Eseguire il programma Python con l'interprete che si ha a disposizione. Sulla finestra di Minecraft apparirà una riga di chat con scritto '''&amp;quot;Ciao Minecraft!&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
[[File:Minecraft 1.8.8 221.png|600px|File:Minecraft_1.8.8_221.png]]&lt;br /&gt;
&lt;br /&gt;
Vediamo nel dettaglio cosa significano le tre righe che abbiamo scritto.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line &amp;gt;&lt;br /&gt;
import mcpi.minecraft as minecraft&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line start=&amp;quot;2&amp;quot; &amp;gt;&lt;br /&gt;
mc = minecraft.Minecraft.create(address=&amp;quot;192.168.12.10&amp;quot;, name=&amp;quot;rodmcban&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Notare la variabile '''mc''': in questo &amp;quot;contenitore&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line start=&amp;quot;3&amp;quot; &amp;gt;&lt;br /&gt;
mc.postToChat(&amp;quot;Ciao Minecraft!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Esercizio 1: Teletrasportare il personaggio ==&lt;br /&gt;
&lt;br /&gt;
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 [https://github.com/teachthenet/TeachCraft-Challenges/blob/master/lesson_1.md prima lezione] del sito TeachCraft-Challenges.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''TO BE COMPLETED'''&lt;br /&gt;
[[Category:Python|P]]&amp;lt;br/&amp;gt;[[Category:Minecraft|M]]&lt;/div&gt;</summary>
		<author><name>Fpiantini</name></author>	</entry>

	<entry>
		<id>https://kata.coderdojo.it/wiki/index.php?title=File:Minecraft_1.8.8_221.png</id>
		<title>File:Minecraft 1.8.8 221.png</title>
		<link rel="alternate" type="text/html" href="https://kata.coderdojo.it/wiki/index.php?title=File:Minecraft_1.8.8_221.png"/>
				<updated>2016-05-25T23:09:17Z</updated>
		
		<summary type="html">&lt;p&gt;Fpiantini: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Fpiantini</name></author>	</entry>

	<entry>
		<id>https://kata.coderdojo.it/wiki/index.php?title=Python%2BMinecraft:_primi_esercizi</id>
		<title>Python+Minecraft: primi esercizi</title>
		<link rel="alternate" type="text/html" href="https://kata.coderdojo.it/wiki/index.php?title=Python%2BMinecraft:_primi_esercizi"/>
				<updated>2016-05-25T23:05:43Z</updated>
		
		<summary type="html">&lt;p&gt;Fpiantini: /* Scrivere il primo programma Python */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Gli esercizi descitti in questa pagina sono stati adattati a partire da quelli messi a disposizione dal repository [https://github.com/teachthenet/TeachCraft-Challenges TeachCraft-Challenges]. Si ringrazia [https://github.com/teachthenet TeachTheNet] per l'interessante materiale messo a disposizione.&lt;br /&gt;
&lt;br /&gt;
== Prerequisiti ==&lt;br /&gt;
&lt;br /&gt;
Deve essere stato installato l'interprete Python e il launcher Minecraft come descritto in [http://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_Setup_PC_dei_Partecipanti 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.&lt;br /&gt;
&lt;br /&gt;
Nel caso non lo avessete a disposizione in questo sito è disponibile [http://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_setup_di_un_server_Minecraft una pagina] che descrive come installarlo e avviarlo.&lt;br /&gt;
&lt;br /&gt;
Nel seguito supponiamo che il server sia disponibile all'indirizzo IP '''192.168.12.10'''.&lt;br /&gt;
&lt;br /&gt;
== Avviare il Launcher Minecraft ==&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ java -jar Minecraft_Launcher.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Una volta che il caricamento del launcher è terminato apparirà la seguente finestra:&lt;br /&gt;
&lt;br /&gt;
[[File:TLauncher 1.964 217.png|600px|File:TLauncher_1.964_217.png]]&lt;br /&gt;
&lt;br /&gt;
Cliccare su '''Enter the Game''' in basso a destra. Attendere il caricamento di Minecraft. Apparirà la seguente finestra:&lt;br /&gt;
&lt;br /&gt;
[[File:Minecraft 1.8.8 218.png|600px|File:Minecraft_1.8.8_218.png]]&lt;br /&gt;
&lt;br /&gt;
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):&lt;br /&gt;
&lt;br /&gt;
[[File:Minecraft 1.8.8 219.png|600px|File:Minecraft_1.8.8_219.png]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Scrivere il primo programma Python ==&lt;br /&gt;
&lt;br /&gt;
Questo esercizio insegna come aprire una connessione con il server Minecraft per realizzare una semplice operazione di scrittura sulla chat del gioco.&lt;br /&gt;
&lt;br /&gt;
Aprire l'editor che si è scelto per scrivere il programma Python e inserire le seguenti righe:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line &amp;gt;&lt;br /&gt;
import mcpi.minecraft as minecraft&lt;br /&gt;
mc = minecraft.Minecraft.create(address=&amp;quot;192.168.12.10&amp;quot;, name=&amp;quot;rodmcban&amp;quot;)&lt;br /&gt;
mc.postToChat(&amp;quot;Ciao Minecraft!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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 '''&amp;quot;name&amp;quot;''' utilizzare quello del proprio personaggio (inserito all'inizio nella prima schermata del launcher).&lt;br /&gt;
&lt;br /&gt;
Salvare il file così scritto all'interno della directory '''TeachCraft-Challenges'''.&lt;br /&gt;
&lt;br /&gt;
Eseguire il programma Python con l'interprete che si ha a disposizione. Sulla finestra di Minecraft apparirà una riga di chat con scritto '''&amp;quot;Ciao Minecraft!&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vediamo nel dettaglio cosa significano le tre righe che abbiamo scritto.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line &amp;gt;&lt;br /&gt;
import mcpi.minecraft as minecraft&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line start=&amp;quot;2&amp;quot; &amp;gt;&lt;br /&gt;
mc = minecraft.Minecraft.create(address=&amp;quot;192.168.12.10&amp;quot;, name=&amp;quot;rodmcban&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Notare la variabile '''mc''': in questo &amp;quot;contenitore&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line start=&amp;quot;3&amp;quot; &amp;gt;&lt;br /&gt;
mc.postToChat(&amp;quot;Ciao Minecraft!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Esercizio 1: Teletrasportare il personaggio ==&lt;br /&gt;
&lt;br /&gt;
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 [https://github.com/teachthenet/TeachCraft-Challenges/blob/master/lesson_1.md prima lezione] del sito TeachCraft-Challenges.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''TO BE COMPLETED'''&lt;br /&gt;
[[Category:Python|P]]&amp;lt;br/&amp;gt;[[Category:Minecraft|M]]&lt;/div&gt;</summary>
		<author><name>Fpiantini</name></author>	</entry>

	<entry>
		<id>https://kata.coderdojo.it/wiki/index.php?title=Python%2BMinecraft:_primi_esercizi</id>
		<title>Python+Minecraft: primi esercizi</title>
		<link rel="alternate" type="text/html" href="https://kata.coderdojo.it/wiki/index.php?title=Python%2BMinecraft:_primi_esercizi"/>
				<updated>2016-05-25T23:03:52Z</updated>
		
		<summary type="html">&lt;p&gt;Fpiantini: /* Scrivere il primo programma Python */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Gli esercizi descitti in questa pagina sono stati adattati a partire da quelli messi a disposizione dal repository [https://github.com/teachthenet/TeachCraft-Challenges TeachCraft-Challenges]. Si ringrazia [https://github.com/teachthenet TeachTheNet] per l'interessante materiale messo a disposizione.&lt;br /&gt;
&lt;br /&gt;
== Prerequisiti ==&lt;br /&gt;
&lt;br /&gt;
Deve essere stato installato l'interprete Python e il launcher Minecraft come descritto in [http://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_Setup_PC_dei_Partecipanti 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.&lt;br /&gt;
&lt;br /&gt;
Nel caso non lo avessete a disposizione in questo sito è disponibile [http://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_setup_di_un_server_Minecraft una pagina] che descrive come installarlo e avviarlo.&lt;br /&gt;
&lt;br /&gt;
Nel seguito supponiamo che il server sia disponibile all'indirizzo IP '''192.168.12.10'''.&lt;br /&gt;
&lt;br /&gt;
== Avviare il Launcher Minecraft ==&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ java -jar Minecraft_Launcher.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Una volta che il caricamento del launcher è terminato apparirà la seguente finestra:&lt;br /&gt;
&lt;br /&gt;
[[File:TLauncher 1.964 217.png|600px|File:TLauncher_1.964_217.png]]&lt;br /&gt;
&lt;br /&gt;
Cliccare su '''Enter the Game''' in basso a destra. Attendere il caricamento di Minecraft. Apparirà la seguente finestra:&lt;br /&gt;
&lt;br /&gt;
[[File:Minecraft 1.8.8 218.png|600px|File:Minecraft_1.8.8_218.png]]&lt;br /&gt;
&lt;br /&gt;
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):&lt;br /&gt;
&lt;br /&gt;
[[File:Minecraft 1.8.8 219.png|600px|File:Minecraft_1.8.8_219.png]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Scrivere il primo programma Python ==&lt;br /&gt;
&lt;br /&gt;
Questo esercizio insegna come aprire una connessione con il server Minecraft per realizzare una semplice operazione di scrittura sulla chat del gioco.&lt;br /&gt;
&lt;br /&gt;
Aprire l'editor che si è scelto per scrivere il programma Python e inserire le seguenti righe:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; &amp;gt;&lt;br /&gt;
import mcpi.minecraft as minecraft&lt;br /&gt;
mc = minecraft.Minecraft.create(address=&amp;quot;192.168.12.10&amp;quot;, name=&amp;quot;rodmcban&amp;quot;)&lt;br /&gt;
mc.postToChat(&amp;quot;Ciao Minecraft!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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 '''&amp;quot;name&amp;quot;''' utilizzare quello del proprio personaggio (inserito all'inizio nella prima schermata del launcher).&lt;br /&gt;
&lt;br /&gt;
Salvare il file così scritto all'interno della directory '''TeachCraft-Challenges'''.&lt;br /&gt;
&lt;br /&gt;
Eseguire il programma Python con l'interprete che si ha a disposizione. Sulla finestra di Minecraft apparirà una riga di chat con scritto '''&amp;quot;Ciao Minecraft!&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vediamo nel dettaglio cosa significano le tre righe che abbiamo scritto.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; &amp;gt;&lt;br /&gt;
import mcpi.minecraft as minecraft&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;2&amp;quot; &amp;gt;&lt;br /&gt;
mc = minecraft.Minecraft.create(address=&amp;quot;192.168.12.10&amp;quot;, name=&amp;quot;rodmcban&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Notare la variabile '''mc''': in questo &amp;quot;contenitore&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;3&amp;quot; &amp;gt;&lt;br /&gt;
mc.postToChat(&amp;quot;Ciao Minecraft!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Esercizio 1: Teletrasportare il personaggio ==&lt;br /&gt;
&lt;br /&gt;
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 [https://github.com/teachthenet/TeachCraft-Challenges/blob/master/lesson_1.md prima lezione] del sito TeachCraft-Challenges.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''TO BE COMPLETED'''&lt;br /&gt;
[[Category:Python|P]]&amp;lt;br/&amp;gt;[[Category:Minecraft|M]]&lt;/div&gt;</summary>
		<author><name>Fpiantini</name></author>	</entry>

	<entry>
		<id>https://kata.coderdojo.it/wiki/index.php?title=Python%2BMinecraft:_primi_esercizi</id>
		<title>Python+Minecraft: primi esercizi</title>
		<link rel="alternate" type="text/html" href="https://kata.coderdojo.it/wiki/index.php?title=Python%2BMinecraft:_primi_esercizi"/>
				<updated>2016-05-25T22:33:49Z</updated>
		
		<summary type="html">&lt;p&gt;Fpiantini: /* Scrivere il primo programma Python */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Gli esercizi descitti in questa pagina sono stati adattati a partire da quelli messi a disposizione dal repository [https://github.com/teachthenet/TeachCraft-Challenges TeachCraft-Challenges]. Si ringrazia [https://github.com/teachthenet TeachTheNet] per l'interessante materiale messo a disposizione.&lt;br /&gt;
&lt;br /&gt;
== Prerequisiti ==&lt;br /&gt;
&lt;br /&gt;
Deve essere stato installato l'interprete Python e il launcher Minecraft come descritto in [http://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_Setup_PC_dei_Partecipanti 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.&lt;br /&gt;
&lt;br /&gt;
Nel caso non lo avessete a disposizione in questo sito è disponibile [http://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_setup_di_un_server_Minecraft una pagina] che descrive come installarlo e avviarlo.&lt;br /&gt;
&lt;br /&gt;
Nel seguito supponiamo che il server sia disponibile all'indirizzo IP '''192.168.12.10'''.&lt;br /&gt;
&lt;br /&gt;
== Avviare il Launcher Minecraft ==&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ java -jar Minecraft_Launcher.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Una volta che il caricamento del launcher è terminato apparirà la seguente finestra:&lt;br /&gt;
&lt;br /&gt;
[[File:TLauncher 1.964 217.png|600px|File:TLauncher_1.964_217.png]]&lt;br /&gt;
&lt;br /&gt;
Cliccare su '''Enter the Game''' in basso a destra. Attendere il caricamento di Minecraft. Apparirà la seguente finestra:&lt;br /&gt;
&lt;br /&gt;
[[File:Minecraft 1.8.8 218.png|600px|File:Minecraft_1.8.8_218.png]]&lt;br /&gt;
&lt;br /&gt;
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):&lt;br /&gt;
&lt;br /&gt;
[[File:Minecraft 1.8.8 219.png|600px|File:Minecraft_1.8.8_219.png]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Scrivere il primo programma Python ==&lt;br /&gt;
&lt;br /&gt;
Aprire l'editor che si è scelto per scrivere il programma Python e inserire le seguenti righe:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; &amp;gt;&lt;br /&gt;
import mcpi.minecraft as minecraft&lt;br /&gt;
mc = minecraft.Minecraft.create(address=&amp;quot;192.168.12.10&amp;quot;, name=&amp;quot;rodmcban&amp;quot;)&lt;br /&gt;
mc.postToChat(&amp;quot;Ciao Minecraft!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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 '''&amp;quot;name&amp;quot;''' utilizzare quello del proprio personaggio (inserito all'inizio nella prima schermata del launcher).&lt;br /&gt;
&lt;br /&gt;
Salvare il file così scritto all'interno della directory '''TeachCraft-Challenges'''.&lt;br /&gt;
&lt;br /&gt;
Eseguire il programma Python con l'interprete che si ha a disposizione. Sulla finestra di Minecraft apparirà una riga di chat con scritto '''&amp;quot;Ciao Minecraft!&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
== Esercizio 1: Teletrasportare il personaggio ==&lt;br /&gt;
&lt;br /&gt;
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 [https://github.com/teachthenet/TeachCraft-Challenges/blob/master/lesson_1.md prima lezione] del sito TeachCraft-Challenges.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''TO BE COMPLETED'''&lt;br /&gt;
[[Category:Python|P]]&amp;lt;br/&amp;gt;[[Category:Minecraft|M]]&lt;/div&gt;</summary>
		<author><name>Fpiantini</name></author>	</entry>

	<entry>
		<id>https://kata.coderdojo.it/wiki/index.php?title=Python%2BMinecraft:_primi_esercizi</id>
		<title>Python+Minecraft: primi esercizi</title>
		<link rel="alternate" type="text/html" href="https://kata.coderdojo.it/wiki/index.php?title=Python%2BMinecraft:_primi_esercizi"/>
				<updated>2016-05-25T22:32:29Z</updated>
		
		<summary type="html">&lt;p&gt;Fpiantini: /* Scrivere il primo programma Python */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Gli esercizi descitti in questa pagina sono stati adattati a partire da quelli messi a disposizione dal repository [https://github.com/teachthenet/TeachCraft-Challenges TeachCraft-Challenges]. Si ringrazia [https://github.com/teachthenet TeachTheNet] per l'interessante materiale messo a disposizione.&lt;br /&gt;
&lt;br /&gt;
== Prerequisiti ==&lt;br /&gt;
&lt;br /&gt;
Deve essere stato installato l'interprete Python e il launcher Minecraft come descritto in [http://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_Setup_PC_dei_Partecipanti 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.&lt;br /&gt;
&lt;br /&gt;
Nel caso non lo avessete a disposizione in questo sito è disponibile [http://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_setup_di_un_server_Minecraft una pagina] che descrive come installarlo e avviarlo.&lt;br /&gt;
&lt;br /&gt;
Nel seguito supponiamo che il server sia disponibile all'indirizzo IP '''192.168.12.10'''.&lt;br /&gt;
&lt;br /&gt;
== Avviare il Launcher Minecraft ==&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ java -jar Minecraft_Launcher.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Una volta che il caricamento del launcher è terminato apparirà la seguente finestra:&lt;br /&gt;
&lt;br /&gt;
[[File:TLauncher 1.964 217.png|600px|File:TLauncher_1.964_217.png]]&lt;br /&gt;
&lt;br /&gt;
Cliccare su '''Enter the Game''' in basso a destra. Attendere il caricamento di Minecraft. Apparirà la seguente finestra:&lt;br /&gt;
&lt;br /&gt;
[[File:Minecraft 1.8.8 218.png|600px|File:Minecraft_1.8.8_218.png]]&lt;br /&gt;
&lt;br /&gt;
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):&lt;br /&gt;
&lt;br /&gt;
[[File:Minecraft 1.8.8 219.png|600px|File:Minecraft_1.8.8_219.png]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Scrivere il primo programma Python ==&lt;br /&gt;
&lt;br /&gt;
Aprire l'editor che si è scelto per scrivere il programma Python e inserire le seguenti righe:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; &amp;gt;&lt;br /&gt;
import mcpi.minecraft as minecraft&lt;br /&gt;
mc = minecraft.Minecraft.create(address=&amp;quot;192.168.12.10&amp;quot;, name=&amp;quot;rodmcban&amp;quot;)&lt;br /&gt;
mc.postToChat(&amp;quot;Ciao Minecraft!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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 '''&amp;quot;name&amp;quot;''' utilizzare quello del proprio personaggio.&lt;br /&gt;
&lt;br /&gt;
Salvare il file così scritto all'interno della directory '''TeachCraft-Challenges'''.&lt;br /&gt;
&lt;br /&gt;
Eseguire il programma Python con l'interprete che si ha a disposizione. Sulla finestra di Minecraft dovrebbe apparire una riga di chat con scritto '''&amp;quot;Ciao Minecraft!&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
== Esercizio 1: Teletrasportare il personaggio ==&lt;br /&gt;
&lt;br /&gt;
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 [https://github.com/teachthenet/TeachCraft-Challenges/blob/master/lesson_1.md prima lezione] del sito TeachCraft-Challenges.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''TO BE COMPLETED'''&lt;br /&gt;
[[Category:Python|P]]&amp;lt;br/&amp;gt;[[Category:Minecraft|M]]&lt;/div&gt;</summary>
		<author><name>Fpiantini</name></author>	</entry>

	<entry>
		<id>https://kata.coderdojo.it/wiki/index.php?title=Python%2BMinecraft:_primi_esercizi</id>
		<title>Python+Minecraft: primi esercizi</title>
		<link rel="alternate" type="text/html" href="https://kata.coderdojo.it/wiki/index.php?title=Python%2BMinecraft:_primi_esercizi"/>
				<updated>2016-05-25T22:31:38Z</updated>
		
		<summary type="html">&lt;p&gt;Fpiantini: /* Scrivere il primo programma Python */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Gli esercizi descitti in questa pagina sono stati adattati a partire da quelli messi a disposizione dal repository [https://github.com/teachthenet/TeachCraft-Challenges TeachCraft-Challenges]. Si ringrazia [https://github.com/teachthenet TeachTheNet] per l'interessante materiale messo a disposizione.&lt;br /&gt;
&lt;br /&gt;
== Prerequisiti ==&lt;br /&gt;
&lt;br /&gt;
Deve essere stato installato l'interprete Python e il launcher Minecraft come descritto in [http://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_Setup_PC_dei_Partecipanti 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.&lt;br /&gt;
&lt;br /&gt;
Nel caso non lo avessete a disposizione in questo sito è disponibile [http://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_setup_di_un_server_Minecraft una pagina] che descrive come installarlo e avviarlo.&lt;br /&gt;
&lt;br /&gt;
Nel seguito supponiamo che il server sia disponibile all'indirizzo IP '''192.168.12.10'''.&lt;br /&gt;
&lt;br /&gt;
== Avviare il Launcher Minecraft ==&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ java -jar Minecraft_Launcher.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Una volta che il caricamento del launcher è terminato apparirà la seguente finestra:&lt;br /&gt;
&lt;br /&gt;
[[File:TLauncher 1.964 217.png|600px|File:TLauncher_1.964_217.png]]&lt;br /&gt;
&lt;br /&gt;
Cliccare su '''Enter the Game''' in basso a destra. Attendere il caricamento di Minecraft. Apparirà la seguente finestra:&lt;br /&gt;
&lt;br /&gt;
[[File:Minecraft 1.8.8 218.png|600px|File:Minecraft_1.8.8_218.png]]&lt;br /&gt;
&lt;br /&gt;
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):&lt;br /&gt;
&lt;br /&gt;
[[File:Minecraft 1.8.8 219.png|600px|File:Minecraft_1.8.8_219.png]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Scrivere il primo programma Python ==&lt;br /&gt;
&lt;br /&gt;
Aprire l'editor che si è scelto per scrivere il programma Python e inserire le seguenti righe:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; &amp;gt;&lt;br /&gt;
import mcpi.minecraft as minecraft&lt;br /&gt;
mc = minecraft.Minecraft.create(address=&amp;quot;192.168.12.10&amp;quot;, name=&amp;quot;rodmcban&amp;quot;)&lt;br /&gt;
mc.postToChat(&amp;quot;Ciao Minecraft!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Al posto dell'indirizzo assegnato alla variabile '''address''' inserire l'indirizzo del server a cui si è collegati (quello inserito nella finestra precedente) e come '''&amp;quot;name&amp;quot;''' utilizzare quello del proprio personaggio.&lt;br /&gt;
&lt;br /&gt;
Salvare il file così scritto all'interno della directory '''TeachCraft-Challenges'''.&lt;br /&gt;
&lt;br /&gt;
Eseguire il programma Python con l'interprete che si ha a disposizione. Sulla finestra di Minecraft dovrebbe apparire una riga di chat con scritto '''&amp;quot;Ciao Minecraft!&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
== Esercizio 1: Teletrasportare il personaggio ==&lt;br /&gt;
&lt;br /&gt;
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 [https://github.com/teachthenet/TeachCraft-Challenges/blob/master/lesson_1.md prima lezione] del sito TeachCraft-Challenges.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''TO BE COMPLETED'''&lt;br /&gt;
[[Category:Python|P]]&amp;lt;br/&amp;gt;[[Category:Minecraft|M]]&lt;/div&gt;</summary>
		<author><name>Fpiantini</name></author>	</entry>

	<entry>
		<id>https://kata.coderdojo.it/wiki/index.php?title=Python%2BMinecraft:_primi_esercizi</id>
		<title>Python+Minecraft: primi esercizi</title>
		<link rel="alternate" type="text/html" href="https://kata.coderdojo.it/wiki/index.php?title=Python%2BMinecraft:_primi_esercizi"/>
				<updated>2016-05-25T22:15:23Z</updated>
		
		<summary type="html">&lt;p&gt;Fpiantini: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Gli esercizi descitti in questa pagina sono stati adattati a partire da quelli messi a disposizione dal repository [https://github.com/teachthenet/TeachCraft-Challenges TeachCraft-Challenges]. Si ringrazia [https://github.com/teachthenet TeachTheNet] per l'interessante materiale messo a disposizione.&lt;br /&gt;
&lt;br /&gt;
== Prerequisiti ==&lt;br /&gt;
&lt;br /&gt;
Deve essere stato installato l'interprete Python e il launcher Minecraft come descritto in [http://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_Setup_PC_dei_Partecipanti 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.&lt;br /&gt;
&lt;br /&gt;
Nel caso non lo avessete a disposizione in questo sito è disponibile [http://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_setup_di_un_server_Minecraft una pagina] che descrive come installarlo e avviarlo.&lt;br /&gt;
&lt;br /&gt;
Nel seguito supponiamo che il server sia disponibile all'indirizzo IP '''192.168.12.10'''.&lt;br /&gt;
&lt;br /&gt;
== Avviare il Launcher Minecraft ==&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ java -jar Minecraft_Launcher.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Una volta che il caricamento del launcher è terminato apparirà la seguente finestra:&lt;br /&gt;
&lt;br /&gt;
[[File:TLauncher 1.964 217.png|600px|File:TLauncher_1.964_217.png]]&lt;br /&gt;
&lt;br /&gt;
Cliccare su '''Enter the Game''' in basso a destra. Attendere il caricamento di Minecraft. Apparirà la seguente finestra:&lt;br /&gt;
&lt;br /&gt;
[[File:Minecraft 1.8.8 218.png|600px|File:Minecraft_1.8.8_218.png]]&lt;br /&gt;
&lt;br /&gt;
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):&lt;br /&gt;
&lt;br /&gt;
[[File:Minecraft 1.8.8 219.png|600px|File:Minecraft_1.8.8_219.png]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Scrivere il primo programma Python ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; &amp;gt;&lt;br /&gt;
from mcpi.minecraft import Minecraft&lt;br /&gt;
mc = Minecraft.create()&lt;br /&gt;
mc.postToChat(&amp;quot;Hello world&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Esercizio 1: Teletrasportare il personaggio ==&lt;br /&gt;
&lt;br /&gt;
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 [https://github.com/teachthenet/TeachCraft-Challenges/blob/master/lesson_1.md prima lezione] del sito TeachCraft-Challenges.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''TO BE COMPLETED'''&lt;br /&gt;
[[Category:Python|P]]&amp;lt;br/&amp;gt;[[Category:Minecraft|M]]&lt;/div&gt;</summary>
		<author><name>Fpiantini</name></author>	</entry>

	<entry>
		<id>https://kata.coderdojo.it/wiki/index.php?title=Python%2BMinecraft:_primi_esercizi</id>
		<title>Python+Minecraft: primi esercizi</title>
		<link rel="alternate" type="text/html" href="https://kata.coderdojo.it/wiki/index.php?title=Python%2BMinecraft:_primi_esercizi"/>
				<updated>2016-05-25T22:11:32Z</updated>
		
		<summary type="html">&lt;p&gt;Fpiantini: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Gli esercizi descitti in questa pagina sono stati adattati a partire da quelli messi a disposizione dal repository [https://github.com/teachthenet/TeachCraft-Challenges TeachCraft-Challenges]. Si ringrazia [https://github.com/teachthenet TeachTheNet] per l'interessante materiale messo a disposizione.&lt;br /&gt;
&lt;br /&gt;
== Prerequisiti ==&lt;br /&gt;
&lt;br /&gt;
Deve essere stato installato l'interprete Python e il launcher Minecraft come descritto in [http://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_Setup_PC_dei_Partecipanti 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.&lt;br /&gt;
&lt;br /&gt;
Nel caso non lo avessete a disposizione in questo sito è disponibile [http://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_setup_di_un_server_Minecraft una pagina] che descrive come installarlo e avviarlo.&lt;br /&gt;
&lt;br /&gt;
Nel seguito supponiamo che il server sia disponibile all'indirizzo IP '''192.168.12.10'''.&lt;br /&gt;
&lt;br /&gt;
== Avviare il Launcher Minecraft ==&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ java -jar Minecraft_Launcher.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Una volta che il caricamento del launcher è terminato apparirà la seguente finestra:&lt;br /&gt;
&lt;br /&gt;
[[File:TLauncher 1.964 217.png|600px|File:TLauncher_1.964_217.png]]&lt;br /&gt;
&lt;br /&gt;
Cliccare su '''Enter the Game''' in basso a destra. Attendere il caricamento di Minecraft. Apparirà la seguente finestra:&lt;br /&gt;
&lt;br /&gt;
[[File:Minecraft 1.8.8 218.png|600px|File:Minecraft_1.8.8_218.png]]&lt;br /&gt;
&lt;br /&gt;
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):&lt;br /&gt;
&lt;br /&gt;
[[File:Minecraft 1.8.8 219.png|600px|File:Minecraft_1.8.8_219.png]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Scrivere il primo programma Python ==&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot; class=&amp;quot;mw-geshi mw-code mw-content-ltr&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;python source-python&amp;quot;&amp;gt;&lt;br /&gt;
#&amp;lt;pre class=&amp;quot;de1&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;kw1&amp;quot;&amp;gt;from&amp;lt;/span&amp;gt; mcpi.&amp;lt;span class=&amp;quot;me1&amp;quot;&amp;gt;minecraft&amp;lt;/span&amp;gt; &amp;lt;span class=&amp;quot;kw1&amp;quot;&amp;gt;import&amp;lt;/span&amp;gt; Minecraft&amp;lt;/pre&amp;gt;&lt;br /&gt;
#&amp;lt;pre class=&amp;quot;de1&amp;quot;&amp;gt;mc &amp;lt;span class=&amp;quot;sy0&amp;quot;&amp;gt;=&amp;lt;/span&amp;gt; Minecraft.&amp;lt;span class=&amp;quot;me1&amp;quot;&amp;gt;create&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;br0&amp;quot;&amp;gt;(&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;br0&amp;quot;&amp;gt;)&amp;lt;/span&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
#&amp;lt;pre class=&amp;quot;de1&amp;quot;&amp;gt;mc.&amp;lt;span class=&amp;quot;me1&amp;quot;&amp;gt;postToChat&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;br0&amp;quot;&amp;gt;(&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;st0&amp;quot;&amp;gt;&amp;quot;Hello world&amp;quot;&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;br0&amp;quot;&amp;gt;)&amp;lt;/span&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Esercizio 1: Teletrasportare il personaggio ==&lt;br /&gt;
&lt;br /&gt;
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 [https://github.com/teachthenet/TeachCraft-Challenges/blob/master/lesson_1.md prima lezione] del sito TeachCraft-Challenges.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''TO BE COMPLETED'''&lt;br /&gt;
[[Category:Python|P]]&amp;lt;br/&amp;gt;[[Category:Minecraft|M]]&lt;/div&gt;</summary>
		<author><name>Fpiantini</name></author>	</entry>

	<entry>
		<id>https://kata.coderdojo.it/wiki/index.php?title=Python%2BMinecraft:_primi_esercizi</id>
		<title>Python+Minecraft: primi esercizi</title>
		<link rel="alternate" type="text/html" href="https://kata.coderdojo.it/wiki/index.php?title=Python%2BMinecraft:_primi_esercizi"/>
				<updated>2016-05-25T22:05:12Z</updated>
		
		<summary type="html">&lt;p&gt;Fpiantini: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Gli esercizi descitti in questa pagina sono stati adattati a partire da quelli messi a disposizione dal repository [https://github.com/teachthenet/TeachCraft-Challenges TeachCraft-Challenges]. Si ringrazia [https://github.com/teachthenet TeachTheNet] per l'interessante materiale messo a disposizione.&lt;br /&gt;
&lt;br /&gt;
=== Prerequisiti ===&lt;br /&gt;
&lt;br /&gt;
Deve essere stato installato l'interprete Python e il launcher Minecraft come descritto in [http://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_Setup_PC_dei_Partecipanti 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.&lt;br /&gt;
&lt;br /&gt;
Nel caso non lo avessete a disposizione in questo sito è disponibile [http://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_setup_di_un_server_Minecraft una pagina] che descrive come installarlo e avviarlo.&lt;br /&gt;
&lt;br /&gt;
Nel seguito supponiamo che il server sia disponibile all'indirizzo IP '''192.168.12.10'''.&lt;br /&gt;
&lt;br /&gt;
=== Avviare il Launcher Minecraft ===&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ java -jar Minecraft_Launcher.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Una volta che il caricamento del launcher è terminato apparirà la seguente finestra:&lt;br /&gt;
&lt;br /&gt;
[[File:TLauncher 1.964 217.png|600px|File:TLauncher_1.964_217.png]]&lt;br /&gt;
&lt;br /&gt;
Cliccare su '''Enter the Game''' in basso a destra. Attendere il caricamento di Minecraft. Apparirà la seguente finestra:&lt;br /&gt;
&lt;br /&gt;
[[File:Minecraft 1.8.8 218.png|600px|File:Minecraft_1.8.8_218.png]]&lt;br /&gt;
&lt;br /&gt;
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):&lt;br /&gt;
&lt;br /&gt;
[[File:Minecraft 1.8.8 219.png|600px|File:Minecraft_1.8.8_219.png]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Esercizio 1: Teletrasportare il personaggio ===&lt;br /&gt;
&lt;br /&gt;
Prova di syntax highlight:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; &amp;gt;&lt;br /&gt;
def quickSort(arr):&lt;br /&gt;
    less = []&lt;br /&gt;
    pivotList = []&lt;br /&gt;
    more = []&lt;br /&gt;
    if len(arr) &amp;lt;= 1:&lt;br /&gt;
        return arr&lt;br /&gt;
    else:&lt;br /&gt;
       pass&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;'''TO BE COMPLETED'''&lt;br /&gt;
[[Category:Python|P]]&amp;lt;br/&amp;gt;[[Category:Minecraft|M]]&lt;/div&gt;</summary>
		<author><name>Fpiantini</name></author>	</entry>

	<entry>
		<id>https://kata.coderdojo.it/wiki/index.php?title=Python%2BMinecraft:_primi_esercizi</id>
		<title>Python+Minecraft: primi esercizi</title>
		<link rel="alternate" type="text/html" href="https://kata.coderdojo.it/wiki/index.php?title=Python%2BMinecraft:_primi_esercizi"/>
				<updated>2016-05-25T19:26:28Z</updated>
		
		<summary type="html">&lt;p&gt;Fpiantini: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Gli esercizi descitti in questa pagina sono stati adattati a partire da quelli messi a disposizione dal repository [https://github.com/teachthenet/TeachCraft-Challenges TeachCraft-Challenges]. Si ringrazia [https://github.com/teachthenet TeachTheNet] per l'interessante materiale messo a disposizione.&lt;br /&gt;
&lt;br /&gt;
=== Prerequisiti ===&lt;br /&gt;
&lt;br /&gt;
Deve essere stato installato l'interprete Python e il launcher Minecraft come descritto in [http://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_Setup_PC_dei_Partecipanti un'altra pagina di questo sito]. Deve essere disponibile un server Minecraft che dispone di un'interfaccia API in Python a cui collegarsi in modalità multiplayer.&lt;br /&gt;
&lt;br /&gt;
Nel caso non lo avessete a disposizione in questo sito è disponibile [http://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_setup_di_un_server_Minecraft una pagina] che descrive come installarlo e avviarlo.&lt;br /&gt;
&lt;br /&gt;
Nel seguito supponiamo che il server sia disponibile all'indirizzo IP '''192.168.12.10'''.&lt;br /&gt;
&lt;br /&gt;
=== Avviare il Launcher Minecraft ===&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ java -jar Minecraft_Launcher.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Una volta che il caricamento del launcher è terminato apparirà la seguente finestra:&lt;br /&gt;
&lt;br /&gt;
[[File:TLauncher 1.964 217.png|600px|File:TLauncher_1.964_217.png]]&lt;br /&gt;
&lt;br /&gt;
Cliccare su '''Enter the Game''' in basso a destra. Attendere il caricamento di Minecraft. Apparirà la seguente finestra:&lt;br /&gt;
&lt;br /&gt;
[[File:Minecraft 1.8.8 218.png|600px|File:Minecraft_1.8.8_218.png]]&lt;br /&gt;
&lt;br /&gt;
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):&lt;br /&gt;
&lt;br /&gt;
[[File:Minecraft 1.8.8 219.png|600px|File:Minecraft_1.8.8_219.png]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Esercizio 1: Teletrasportare il personaggio ===&lt;br /&gt;
&lt;br /&gt;
Prova di syntax highlight:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; &amp;gt;&lt;br /&gt;
def quickSort(arr):&lt;br /&gt;
    less = []&lt;br /&gt;
    pivotList = []&lt;br /&gt;
    more = []&lt;br /&gt;
    if len(arr) &amp;lt;= 1:&lt;br /&gt;
        return arr&lt;br /&gt;
    else:&lt;br /&gt;
       pass&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''TO BE COMPLETED'''&lt;br /&gt;
[[Category:Python|P]]&amp;lt;br/&amp;gt;[[Category:Minecraft|M]]&lt;/div&gt;</summary>
		<author><name>Fpiantini</name></author>	</entry>

	<entry>
		<id>https://kata.coderdojo.it/wiki/index.php?title=Python%2BMinecraft:_primi_esercizi</id>
		<title>Python+Minecraft: primi esercizi</title>
		<link rel="alternate" type="text/html" href="https://kata.coderdojo.it/wiki/index.php?title=Python%2BMinecraft:_primi_esercizi"/>
				<updated>2016-05-25T19:15:18Z</updated>
		
		<summary type="html">&lt;p&gt;Fpiantini: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Gli esercizi descitti in questa pagina sono stati adattati a partire da quelli messi a disposizione dal repository [https://github.com/teachthenet/TeachCraft-Challenges TeachCraft-Challenges]. Si ringrazia [https://github.com/teachthenet TeachTheNet] per l'interessante materiale messo a disposizione.&lt;br /&gt;
&lt;br /&gt;
=== Prerequisiti ===&lt;br /&gt;
&lt;br /&gt;
Deve essere stato installato l'interprete Python e il launcher Minecraft come descritto in [http://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_Setup_PC_dei_Partecipanti un'altra pagina di questo sito]. Deve essere disponibile un server Minecraft che dispone di un'interfaccia API in Python a cui collegarsi in modalità multiplayer.&lt;br /&gt;
&lt;br /&gt;
Nel caso non lo avessete a disposizione in questo sito è disponibile [http://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_setup_di_un_server_Minecraft una pagina] che descrive come installarlo e avviarlo.&lt;br /&gt;
&lt;br /&gt;
Nel seguito supponiamo che il server sia disponibile all'indirizzo IP '''192.168.12.10'''.&lt;br /&gt;
&lt;br /&gt;
=== Avviare il Launcher Minecraft ===&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ java -jar Minecraft_Launcher.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Una volta che il caricamento del launcher è terminato apparirà la seguente finestra:&lt;br /&gt;
&lt;br /&gt;
[[File:TLauncher 1.964 217.png|600px|File:TLauncher_1.964_217.png]]&lt;br /&gt;
&lt;br /&gt;
Cliccare su '''Enter the Game''' in basso a destra. Attendere il caricamento di Minecraft. Apparirà la seguente finestra:&lt;br /&gt;
&lt;br /&gt;
[[File:Minecraft 1.8.8 218.png|600px|File:Minecraft_1.8.8_218.png]]&lt;br /&gt;
&lt;br /&gt;
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):&lt;br /&gt;
&lt;br /&gt;
[[File:Minecraft 1.8.8 219.png|600px|File:Minecraft_1.8.8_219.png]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Esercizio 1: Teletrasportare il personaggio ===&lt;br /&gt;
&lt;br /&gt;
'''TO BE COMPLETED'''&lt;br /&gt;
[[Category:Python|P]]&amp;lt;br/&amp;gt;[[Category:Minecraft|M]]&lt;/div&gt;</summary>
		<author><name>Fpiantini</name></author>	</entry>

	<entry>
		<id>https://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_setup_di_un_server_Minecraft</id>
		<title>Python - Minecraft: setup di un server Minecraft</title>
		<link rel="alternate" type="text/html" href="https://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_setup_di_un_server_Minecraft"/>
				<updated>2016-05-25T19:14:14Z</updated>
		
		<summary type="html">&lt;p&gt;Fpiantini: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Setup Server Minecraft per programmazione con Python =&lt;br /&gt;
&lt;br /&gt;
In questa pagina è descritta una possibile procedura per mettere in piedi un server Minecraft da utilizzare per gli esercizi di programmazione in Python contenuti in questo sito (per esempio quelli contenuti nella pagina&amp;amp;nbsp;[[Python+Minecraft: primi esercizi|primi esercizi]]&lt;br /&gt;
&lt;br /&gt;
=== Scaricamento Server ===&lt;br /&gt;
&lt;br /&gt;
Il server scelto è CanaryMod. Si è scelto di utilizzare la versione [https://github.com/teachthenet/TeachCraft-Server TeachCraft reperibile su GitHub].&lt;br /&gt;
&lt;br /&gt;
Per scaricare il server su un PC con il comando GIT disponibile si può dare il seguente comando:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ git clone https://github.com/teachthenet/TeachCraft-Server.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Oppure si può scaricare direttamente l'archivio dalla [https://github.com/teachthenet/TeachCraft-Server/archive/master.zip stessa pagina su GitHub] oppure dall'[http://kata.coderdojo.it/archivio/20_python_minecraft/TeachCraft-Challenges/TeachCraft-Server.tar.gz archivio del Coderdojo di Firenze].&lt;br /&gt;
&lt;br /&gt;
Espandere l'archivio utilizzando il comando tar o unzip da terminale Linux, o aprendolo con un programma in grado di leggere tar compressi o zip (su Windows per esempio si consiglia [http://www.7-zip.org/ 7zip]).&lt;br /&gt;
&lt;br /&gt;
=== Installazione Java ===&lt;br /&gt;
&lt;br /&gt;
Per eseguire il server è necessario avere a disposizione il runtime environment (JRE) o la JDK Java. Per installarla utilizzare le indicazioni contenute nella [http://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_Setup_PC_dei_Partecipanti#Installazione_Java sezione all'interno della pagina] che descrive come installare il launcher nei PC dei partecipanti&lt;br /&gt;
&lt;br /&gt;
=== Lancio Server ===&lt;br /&gt;
&lt;br /&gt;
Aprire un terminale e andare nella directory dove si è decompresso il file al passo precedente. Dare il comando:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ java -Xms3036M -Xmx3036M -jar CanaryMod-1.2.0.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
La quantità di memoria da assegnare al processo (specificata con i parametri -Xms e Xmx) deve essere adattata in base alle caratteristiche della macchina server che si sta utilizzando. Per esempio se si sta utilizzando un Raspberry PI 2 utilizzare 512 Mbytes:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ java -Xms512M -Xmx512M -jar CanaryMod-1.2.0.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Attendere che il server termini la procedura di caricamento. Può metterci da pochi secondi a diverse decine a seconda della potenza della scheda o del PC dove si sta eseguendo lo stesso.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;TO BE COMPLETED&lt;br /&gt;
[[Category:Python|P]]&amp;lt;br/&amp;gt;[[Category:Minecraft|M]]&lt;/div&gt;</summary>
		<author><name>Fpiantini</name></author>	</entry>

	<entry>
		<id>https://kata.coderdojo.it/wiki/index.php?title=Python%2BMinecraft:_primi_esercizi</id>
		<title>Python+Minecraft: primi esercizi</title>
		<link rel="alternate" type="text/html" href="https://kata.coderdojo.it/wiki/index.php?title=Python%2BMinecraft:_primi_esercizi"/>
				<updated>2016-05-24T23:16:59Z</updated>
		
		<summary type="html">&lt;p&gt;Fpiantini: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Gli esercizi descitti in questa pagina sono stati adattati a partire da quelli messi a disposizione dal repository [https://github.com/teachthenet/TeachCraft-Challenges TeachCraft-Challenges]. Si ringrazia [https://github.com/teachthenet TeachTheNet] per l'interessante materiale messo a disposizione.&lt;br /&gt;
&lt;br /&gt;
=== Prerequisiti ===&lt;br /&gt;
&lt;br /&gt;
Deve essere stato installato l'interprete Python e il launcher Minecraft come descritto in [http://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_Setup_PC_dei_Partecipanti un'altra pagina di questo sito]. Deve essere disponibile un server Minecraft che dispone di un'interfaccia API in Python a cui collegarsi in modalità multiplayer.&lt;br /&gt;
&lt;br /&gt;
Nel caso non lo avessete a disposizione in questo sito è disponibile [http://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_setup_di_un_server_Minecraft una pagina] che descrive come installarlo e avviarlo.&lt;br /&gt;
&lt;br /&gt;
Nel seguito supponiamo che il server sia disponibile all'indirizzo IP '''192.168.12.10'''.&lt;br /&gt;
&lt;br /&gt;
=== Avviare il Launcher Minecraft ===&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ java -jar Minecraft_Launcher.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Una volta che il caricamento del launcher è terminato apparirà la seguente finestra:&lt;br /&gt;
&lt;br /&gt;
[[File:TLauncher 1.964 217.png|600px|File:TLauncher_1.964_217.png]]&lt;br /&gt;
&lt;br /&gt;
Cliccare su '''Enter the Game''' in basso a destra. Attendere il caricamento di Minecraft. Apparirà la seguente finestra:&lt;br /&gt;
&lt;br /&gt;
[[File:Minecraft 1.8.8 218.png|600px|File:Minecraft_1.8.8_218.png]]&lt;br /&gt;
&lt;br /&gt;
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):&lt;br /&gt;
&lt;br /&gt;
[[File:Minecraft 1.8.8 219.png|600px|File:Minecraft_1.8.8_219.png]]&lt;br /&gt;
&lt;br /&gt;
'''TO BE COMPLETED'''&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Esercizio 1: Teletrasportare il personaggio ===&lt;br /&gt;
&lt;br /&gt;
'''TO BE COMPLETED'''&lt;br /&gt;
[[Category:Python|P]]&amp;lt;br/&amp;gt;[[Category:Minecraft|M]]&lt;/div&gt;</summary>
		<author><name>Fpiantini</name></author>	</entry>

	<entry>
		<id>https://kata.coderdojo.it/wiki/index.php?title=Python%2BMinecraft:_primi_esercizi</id>
		<title>Python+Minecraft: primi esercizi</title>
		<link rel="alternate" type="text/html" href="https://kata.coderdojo.it/wiki/index.php?title=Python%2BMinecraft:_primi_esercizi"/>
				<updated>2016-05-24T23:14:34Z</updated>
		
		<summary type="html">&lt;p&gt;Fpiantini: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Gli esercizi descitti in questa pagina sono stati adattati a partire da quelli messi a disposizione dal repository [https://github.com/teachthenet/TeachCraft-Challenges TeachCraft-Challenges]. Si ringrazia [https://github.com/teachthenet TeachTheNet] per l'interessante materiale messo a disposizione.&lt;br /&gt;
&lt;br /&gt;
=== Prerequisiti ===&lt;br /&gt;
&lt;br /&gt;
Deve essere stato installato l'interprete Python e il launcher Minecraft come descritto in [http://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_Setup_PC_dei_Partecipanti un'altra pagina di questo sito]. Deve essere disponibile un server Minecraft che dispone di un'interfaccia API in Python a cui collegarsi in modalità multiplayer.&lt;br /&gt;
&lt;br /&gt;
Nel caso non lo avessete a disposizione in questo sito è disponibile [http://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_setup_di_un_server_Minecraft una pagina] che descrive come installarlo e avviarlo.&lt;br /&gt;
&lt;br /&gt;
Nel seguito supponiamo che il server sia disponibile all'indirizzo IP '''192.168.12.10'''.&lt;br /&gt;
&lt;br /&gt;
=== Avviare il Launcher Minecraft ===&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ java -jar Minecraft_Launcher.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Una volta che il caricamento del launcher è terminato apparirà la seguente finestra:&lt;br /&gt;
&lt;br /&gt;
[[File:TLauncher 1.964 217.png|600px|File:TLauncher_1.964_217.png]]&lt;br /&gt;
&lt;br /&gt;
Cliccare su '''Enter the Game''' in basso a destra. Attendere il caricamento di Minecraft. Apparirà la seguente finestra:&lt;br /&gt;
&lt;br /&gt;
[[File:Minecraft 1.8.8 218.png|600px|File:Minecraft_1.8.8_218.png]]&lt;br /&gt;
&lt;br /&gt;
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):&lt;br /&gt;
&lt;br /&gt;
[[File:Minecraft 1.8.8 219.png|600px|File:Minecraft_1.8.8_219.png]]&lt;br /&gt;
&lt;br /&gt;
'''TO BE COMPLETED'''&lt;br /&gt;
&lt;br /&gt;
=== Esercizio 1: Teletrasportare il personaggio ===&lt;br /&gt;
&lt;br /&gt;
'''TO BE COMPLETED'''&lt;br /&gt;
[[Category:Python|P]]&amp;lt;br/&amp;gt;[[Category:Minecraft|M]]&lt;/div&gt;</summary>
		<author><name>Fpiantini</name></author>	</entry>

	<entry>
		<id>https://kata.coderdojo.it/wiki/index.php?title=File:Minecraft_1.8.8_219.png</id>
		<title>File:Minecraft 1.8.8 219.png</title>
		<link rel="alternate" type="text/html" href="https://kata.coderdojo.it/wiki/index.php?title=File:Minecraft_1.8.8_219.png"/>
				<updated>2016-05-24T23:13:57Z</updated>
		
		<summary type="html">&lt;p&gt;Fpiantini: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Fpiantini</name></author>	</entry>

	<entry>
		<id>https://kata.coderdojo.it/wiki/index.php?title=Python%2BMinecraft:_primi_esercizi</id>
		<title>Python+Minecraft: primi esercizi</title>
		<link rel="alternate" type="text/html" href="https://kata.coderdojo.it/wiki/index.php?title=Python%2BMinecraft:_primi_esercizi"/>
				<updated>2016-05-24T23:10:04Z</updated>
		
		<summary type="html">&lt;p&gt;Fpiantini: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Gli esercizi descitti in questa pagina sono stati adattati a partire da quelli messi a disposizione dal repository [https://github.com/teachthenet/TeachCraft-Challenges TeachCraft-Challenges]. Si ringrazia [https://github.com/teachthenet TeachTheNet] per l'interessante materiale messo a disposizione.&lt;br /&gt;
&lt;br /&gt;
=== Prerequisiti ===&lt;br /&gt;
&lt;br /&gt;
Deve essere stato installato l'interprete Python e il launcher Minecraft come descritto in [http://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_Setup_PC_dei_Partecipanti un'altra pagina di questo sito]. Deve essere disponibile un server Minecraft che dispone di un'interfaccia API in Python a cui collegarsi in modalità multiplayer.&lt;br /&gt;
&lt;br /&gt;
Nel caso non lo avessete a disposizione in questo sito è disponibile [http://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_setup_di_un_server_Minecraft una pagina] che descrive come installarlo e avviarlo.&lt;br /&gt;
&lt;br /&gt;
=== Avviare il Launcher Minecraft ===&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ java -jar Minecraft_Launcher.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Una volta che il caricamento del launcher è terminato apparirà la seguente finestra:&lt;br /&gt;
&lt;br /&gt;
[[File:TLauncher 1.964 217.png|600px|File:TLauncher_1.964_217.png]]&lt;br /&gt;
&lt;br /&gt;
Cliccare su '''Enter the Game''' in basso a destra. Attendere il caricamento di Minecraft. Apparirà la seguente finestra:&lt;br /&gt;
&lt;br /&gt;
[[File:Minecraft 1.8.8 218.png|600px|File:Minecraft_1.8.8_218.png]]&lt;br /&gt;
&lt;br /&gt;
'''TO BE COMPLETED'''&lt;br /&gt;
&lt;br /&gt;
=== Esercizio 1: Teletrasportare il personaggio ===&lt;br /&gt;
&lt;br /&gt;
'''TO BE COMPLETED'''&lt;br /&gt;
[[Category:Python|P]]&amp;lt;br/&amp;gt;[[Category:Minecraft|M]]&lt;/div&gt;</summary>
		<author><name>Fpiantini</name></author>	</entry>

	<entry>
		<id>https://kata.coderdojo.it/wiki/index.php?title=Python%2BMinecraft:_primi_esercizi</id>
		<title>Python+Minecraft: primi esercizi</title>
		<link rel="alternate" type="text/html" href="https://kata.coderdojo.it/wiki/index.php?title=Python%2BMinecraft:_primi_esercizi"/>
				<updated>2016-05-24T23:09:35Z</updated>
		
		<summary type="html">&lt;p&gt;Fpiantini: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Gli esercizi descitti in questa pagina sono stati adattati a partire da quelli messi a disposizione dal repository [https://github.com/teachthenet/TeachCraft-Challenges TeachCraft-Challenges]. Si ringrazia [https://github.com/teachthenet TeachTheNet] per l'interessante materiale messo a disposizione.&lt;br /&gt;
&lt;br /&gt;
=== Prerequisiti ===&lt;br /&gt;
&lt;br /&gt;
Deve essere stato installato l'interprete Python e il launcher Minecraft come descritto in [http://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_Setup_PC_dei_Partecipanti un'altra pagina di questo sito]. Deve essere disponibile un server Minecraft che dispone di un'interfaccia API in Python a cui collegarsi in modalità multiplayer.&lt;br /&gt;
&lt;br /&gt;
Nel caso non lo avessete a disposizione in questo sito è disponibile [http://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_setup_di_un_server_Minecraft una pagina] che descrive come installarlo e avviarlo.&lt;br /&gt;
&lt;br /&gt;
=== Avviare il Launcher Minecraft ===&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ java -jar Minecraft_Launcher.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Una volta che il caricamento del launcher è terminato apparirà la seguente finestra:&lt;br /&gt;
&lt;br /&gt;
[[File:TLauncher 1.964 217.png|600px|File:TLauncher_1.964_217.png]]&lt;br /&gt;
&lt;br /&gt;
Cliccare su '''Enter the Game&amp;quot; in basso a destra. Attendere il caricamento di Minecraft. Apparirà la seguente finestra:'''&lt;br /&gt;
&lt;br /&gt;
[[File:Minecraft 1.8.8 218.png|600px|File:Minecraft_1.8.8_218.png]]&lt;br /&gt;
&lt;br /&gt;
'''TO BE COMPLETED'''&lt;br /&gt;
&lt;br /&gt;
=== Esercizio 1: Teletrasportare il personaggio ===&lt;br /&gt;
&lt;br /&gt;
'''TO BE COMPLETED'''&lt;br /&gt;
[[Category:Python|P]]&amp;lt;br/&amp;gt;[[Category:Minecraft|M]]&lt;/div&gt;</summary>
		<author><name>Fpiantini</name></author>	</entry>

	<entry>
		<id>https://kata.coderdojo.it/wiki/index.php?title=Python%2BMinecraft:_primi_esercizi</id>
		<title>Python+Minecraft: primi esercizi</title>
		<link rel="alternate" type="text/html" href="https://kata.coderdojo.it/wiki/index.php?title=Python%2BMinecraft:_primi_esercizi"/>
				<updated>2016-05-24T23:09:11Z</updated>
		
		<summary type="html">&lt;p&gt;Fpiantini: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Gli esercizi descitti in questa pagina sono stati adattati a partire da quelli messi a disposizione dal repository [https://github.com/teachthenet/TeachCraft-Challenges TeachCraft-Challenges]. Si ringrazia [https://github.com/teachthenet TeachTheNet] per l'interessante materiale messo a disposizione.&lt;br /&gt;
&lt;br /&gt;
=== Prerequisiti ===&lt;br /&gt;
&lt;br /&gt;
Deve essere stato installato l'interprete Python e il launcher Minecraft come descritto in [http://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_Setup_PC_dei_Partecipanti un'altra pagina di questo sito]. Deve essere disponibile un server Minecraft che dispone di un'interfaccia API in Python a cui collegarsi in modalità multiplayer.&lt;br /&gt;
&lt;br /&gt;
Nel caso non lo avessete a disposizione in questo sito è disponibile [http://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_setup_di_un_server_Minecraft una pagina] che descrive come installarlo e avviarlo.&lt;br /&gt;
&lt;br /&gt;
=== Avviare il Launcher Minecraft ===&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ java -jar Minecraft_Launcher.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Una volta che il caricamento del launcher è terminato apparirà la seguente finestra:&lt;br /&gt;
&lt;br /&gt;
[[File:TLauncher 1.964 217.png|300px|File:TLauncher_1.964_217.png]]&lt;br /&gt;
&lt;br /&gt;
Cliccare su '''Enter the Game&amp;quot; in basso a destra. Attendere il caricamento di Minecraft. Apparirà la seguente finestra:'''&lt;br /&gt;
&lt;br /&gt;
[[File:Minecraft 1.8.8 218.png|300px|File:Minecraft_1.8.8_218.png]]&lt;br /&gt;
&lt;br /&gt;
'''TO BE COMPLETED'''&lt;br /&gt;
&lt;br /&gt;
=== Esercizio 1: Teletrasportare il personaggio ===&lt;br /&gt;
&lt;br /&gt;
'''TO BE COMPLETED'''&lt;br /&gt;
[[Category:Python|P]]&amp;lt;br/&amp;gt;[[Category:Minecraft|M]]&lt;/div&gt;</summary>
		<author><name>Fpiantini</name></author>	</entry>

	<entry>
		<id>https://kata.coderdojo.it/wiki/index.php?title=Python%2BMinecraft:_primi_esercizi</id>
		<title>Python+Minecraft: primi esercizi</title>
		<link rel="alternate" type="text/html" href="https://kata.coderdojo.it/wiki/index.php?title=Python%2BMinecraft:_primi_esercizi"/>
				<updated>2016-05-24T23:07:50Z</updated>
		
		<summary type="html">&lt;p&gt;Fpiantini: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Gli esercizi descitti in questa pagina sono stati adattati a partire da quelli messi a disposizione dal repository [https://github.com/teachthenet/TeachCraft-Challenges TeachCraft-Challenges]. Si ringrazia [https://github.com/teachthenet TeachTheNet] per l'interessante materiale messo a disposizione.&lt;br /&gt;
&lt;br /&gt;
=== Prerequisiti ===&lt;br /&gt;
&lt;br /&gt;
Deve essere stato installato l'interprete Python e il launcher Minecraft come descritto in [http://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_Setup_PC_dei_Partecipanti un'altra pagina di questo sito]. Deve essere disponibile un server Minecraft che dispone di un'interfaccia API in Python a cui collegarsi in modalità multiplayer.&lt;br /&gt;
&lt;br /&gt;
Nel caso non lo avessete a disposizione in questo sito è disponibile [http://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_setup_di_un_server_Minecraft una pagina] che descrive come installarlo e avviarlo.&lt;br /&gt;
&lt;br /&gt;
=== Avviare il Launcher Minecraft ===&lt;br /&gt;
&lt;br /&gt;
Per avviare il launcher Minecraft fare doppio click sull'icona '''Minecraft_Launcher.jar''' presente nella directory '''TeachCraft-Challenges''' preparare al punto precedente.&lt;br /&gt;
In alternaltiva lanciare da terminale con il comando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ java -jar Minecraft_Launcher.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una volta che il caricamento del launcher è terminato apparirà la seguente finestra:&lt;br /&gt;
&lt;br /&gt;
[[File:TLauncher 1.964 217.png|File:TLauncher_1.964_217.png]]&lt;br /&gt;
&lt;br /&gt;
Cliccare su '''Enter the Game&amp;quot; in basso a destra. Attendere il caricamento di Minecraft. Apparirà la seguente finestra:&lt;br /&gt;
&lt;br /&gt;
[[File:Minecraft_1.8.8_218.png|File:Minecraft_1.8.8_218.png]]&lt;br /&gt;
&lt;br /&gt;
'''TO BE COMPLETED'''&lt;br /&gt;
&lt;br /&gt;
=== Esercizio 1: Teletrasportare il personaggio ===&lt;br /&gt;
&lt;br /&gt;
'''TO BE COMPLETED'''&lt;br /&gt;
[[Category:Python|P]]&amp;lt;br/&amp;gt;[[Category:Minecraft|M]]&lt;/div&gt;</summary>
		<author><name>Fpiantini</name></author>	</entry>

	<entry>
		<id>https://kata.coderdojo.it/wiki/index.php?title=File:Minecraft_1.8.8_218.png</id>
		<title>File:Minecraft 1.8.8 218.png</title>
		<link rel="alternate" type="text/html" href="https://kata.coderdojo.it/wiki/index.php?title=File:Minecraft_1.8.8_218.png"/>
				<updated>2016-05-24T23:06:40Z</updated>
		
		<summary type="html">&lt;p&gt;Fpiantini: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Fpiantini</name></author>	</entry>

	<entry>
		<id>https://kata.coderdojo.it/wiki/index.php?title=Python%2BMinecraft:_primi_esercizi</id>
		<title>Python+Minecraft: primi esercizi</title>
		<link rel="alternate" type="text/html" href="https://kata.coderdojo.it/wiki/index.php?title=Python%2BMinecraft:_primi_esercizi"/>
				<updated>2016-05-24T23:00:32Z</updated>
		
		<summary type="html">&lt;p&gt;Fpiantini: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Gli esercizi descitti in questa pagina sono stati adattati a partire da quelli messi a disposizione dal repository [https://github.com/teachthenet/TeachCraft-Challenges TeachCraft-Challenges]. Si ringrazia [https://github.com/teachthenet TeachTheNet] per l'interessante materiale messo a disposizione.&lt;br /&gt;
&lt;br /&gt;
== Prerequisiti ==&lt;br /&gt;
&lt;br /&gt;
Deve essere stato installato l'interprete Python e il launcher Minecraft come descritto in [http://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_Setup_PC_dei_Partecipanti un'altra pagina di questo sito]. Deve essere disponibile un server Minecraft che dispone di un'interfaccia API in Python a cui collegarsi in modalità multiplayer.&lt;br /&gt;
&lt;br /&gt;
Nel caso non lo avessete a disposizione in questo sito è disponibile [http://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_setup_di_un_server_Minecraft una pagina] che descrive come installarlo e avviarlo.&lt;br /&gt;
&lt;br /&gt;
== Esercizio 1: Teletrasportare il personaggio ==&lt;br /&gt;
&lt;br /&gt;
'''TO BE COMPLETED'''&lt;br /&gt;
[[Category:Python|P]]&amp;lt;br/&amp;gt;[[Category:Minecraft|M]]&lt;/div&gt;</summary>
		<author><name>Fpiantini</name></author>	</entry>

	<entry>
		<id>https://kata.coderdojo.it/wiki/index.php?title=Python%2BMinecraft:_primi_esercizi</id>
		<title>Python+Minecraft: primi esercizi</title>
		<link rel="alternate" type="text/html" href="https://kata.coderdojo.it/wiki/index.php?title=Python%2BMinecraft:_primi_esercizi"/>
				<updated>2016-05-24T23:00:09Z</updated>
		
		<summary type="html">&lt;p&gt;Fpiantini: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Gli esercizi descitti in questa pagina sono stati adattati a partire da quelli messi a disposizione dal repository [https://github.com/teachthenet/TeachCraft-Challenges TeachCraft-Challenges]. Si ringrazia [https://github.com/teachthenet TeachTheNet] per l'interessante materiale messo a disposizione.&lt;br /&gt;
&lt;br /&gt;
== Pre requisiti ==&lt;br /&gt;
&lt;br /&gt;
Deve essere stato installato l'interprete Python e il launcher Minecraft come descritto in [http://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_Setup_PC_dei_Partecipanti un'altra pagina di questo sito]. Deve essere disponibile un server Minecraft che dispone di un'interfaccia API in Python a cui collegarsi in modalità multiplayer.&lt;br /&gt;
&lt;br /&gt;
Nel caso non lo avessete a disposizione in questo sito è disponibile [http://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_setup_di_un_server_Minecraft una pagina] che descrive come installarlo e avviarlo.&lt;br /&gt;
&lt;br /&gt;
== Primo esercizio: Teletrasportare il personaggio ==&lt;br /&gt;
&lt;br /&gt;
'''TO BE COMPLETED'''&lt;br /&gt;
[[Category:Python|P]]&amp;lt;br/&amp;gt;[[Category:Minecraft|M]]&lt;/div&gt;</summary>
		<author><name>Fpiantini</name></author>	</entry>

	<entry>
		<id>https://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_setup_di_un_server_Minecraft</id>
		<title>Python - Minecraft: setup di un server Minecraft</title>
		<link rel="alternate" type="text/html" href="https://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_setup_di_un_server_Minecraft"/>
				<updated>2016-05-24T22:49:06Z</updated>
		
		<summary type="html">&lt;p&gt;Fpiantini: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Setup Server Minecraft per programmazione con Python =&lt;br /&gt;
&lt;br /&gt;
In questa pagina è descritta una possibile procedura per mettere in piedi un server Minecraft da utilizzare per gli esercizi di programmazione in Python contenuti in questo sito (per esempio quelli contenuti nella pagina&amp;amp;nbsp;[[Python+Minecraft: primi esercizi|primi esercizi]]&lt;br /&gt;
&lt;br /&gt;
=== Scaricamento Server ===&lt;br /&gt;
&lt;br /&gt;
Il server scelto è CanaryMod. Si è scelto di utilizzare la versione [https://github.com/teachthenet/TeachCraft-Server TeachCraft reperibile su GitHub].&lt;br /&gt;
&lt;br /&gt;
Per scaricare il server su un PC con il comando GIT disponibile si può dare il seguente comando:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ git clone https://github.com/teachthenet/TeachCraft-Server.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Oppure si può scaricare direttamente l'archivio dalla [https://github.com/teachthenet/TeachCraft-Server/archive/master.zip stessa pagina su GitHub] oppure dall'[http://kata.coderdojo.it/archivio/20_python_minecraft/TeachCraft-Challenges/TeachCraft-Server.tar.gz archivio del Coderdojo di Firenze].&lt;br /&gt;
&lt;br /&gt;
Espandere l'archivio utilizzando il comando tar o unzio da terminale Linux, o aprendolo con un programma in grado di leggere tar compressi o zip (su Windows per esempio si consiglia [http://www.7-zip.org/ 7zip]).&lt;br /&gt;
&lt;br /&gt;
=== Installazione Java ===&lt;br /&gt;
&lt;br /&gt;
Per eseguire il server è necessario avere a disposizione il runtime environment (JRE) o la JDK Java. Per installarla utilizzare le indicazioni contenute nella [http://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_Setup_PC_dei_Partecipanti#Installazione_Java sezione all'interno della pagina] che descrive come installare il launcher nei PC dei partecipanti&lt;br /&gt;
&lt;br /&gt;
=== Lancio Server ===&lt;br /&gt;
&lt;br /&gt;
Aprire un terminale e andare nella directory dove si è decompresso il file al passo precedente. Dare il comando:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ java -Xms3036M -Xmx3036M -jar CanaryMod-1.2.0.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La quantità di memoria da assegnare al processo (specificata con i parametri -Xms e Xmx) deve essere adattata in base alle caratteristiche della macchina server che si sta utilizzando. Per esempio se si sta utilizzando un Raspberry PI 2 utilizzare 512 Mbytes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ java -Xms512M -Xmx512M -jar CanaryMod-1.2.0.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Attendere che il server termini la procedura di caricamento. Può metterci da pochi secondi a diverse decine a seconda della potenza della scheda o del PC dove si sta eseguendo lo stesso.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;TO BE COMPLETED&lt;br /&gt;
[[Category:Python|P]]&amp;lt;br/&amp;gt;[[Category:Minecraft|M]]&lt;/div&gt;</summary>
		<author><name>Fpiantini</name></author>	</entry>

	<entry>
		<id>https://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_setup_di_un_server_Minecraft</id>
		<title>Python - Minecraft: setup di un server Minecraft</title>
		<link rel="alternate" type="text/html" href="https://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_setup_di_un_server_Minecraft"/>
				<updated>2016-05-24T22:41:54Z</updated>
		
		<summary type="html">&lt;p&gt;Fpiantini: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Setup Server Minecraft per programmazione con Python =&lt;br /&gt;
&lt;br /&gt;
In questa pagina è descritta una possibile procedura per mettere in piedi un server Minecraft da utilizzare per gli esercizi di programmazione in Python contenuti in questo sito (per esempio quelli contenuti nella pagina&amp;amp;nbsp;[[Python+Minecraft: primi esercizi|primi esercizi]]&lt;br /&gt;
&lt;br /&gt;
=== Scaricamento Server ===&lt;br /&gt;
&lt;br /&gt;
Il server scelto è CanaryMod. Si è scelto di utilizzare la versione [https://github.com/teachthenet/TeachCraft-Server TeachCraft reperibile su GitHub].&lt;br /&gt;
&lt;br /&gt;
Per scaricare il server su un PC con il comando GIT disponibile si può dare il seguente comando:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ '''git clone https://github.com/teachthenet/TeachCraft-Server.git'''&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Oppure si può scaricare direttamente l'archivio dalla [https://github.com/teachthenet/TeachCraft-Server/archive/master.zip stessa pagina su GitHub] oppure dall'[http://kata.coderdojo.it/archivio/20_python_minecraft/TeachCraft-Challenges/TeachCraft-Server.tar.gz archivio del Coderdojo di Firenze].&lt;br /&gt;
&lt;br /&gt;
Espandere l'archivio utilizzando il comando tar o unzio da terminale Linux, o aprendolo con un programma in grado di leggere tar compressi o zip (su Windows per esempio si consiglia [http://www.7-zip.org/ 7zip]).&lt;br /&gt;
&lt;br /&gt;
=== Lancio Server ===&lt;br /&gt;
&lt;br /&gt;
Aprire un terminale e andare nella directory dove si è decompresso il file al passo precedente. Dare il comando:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ '''java -Xms3036M -Xmx3036M -jar CanaryMod-1.2.0.jar'''&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;TO BE COMPLETED&lt;br /&gt;
[[Category:Python|P]]&amp;lt;br/&amp;gt;[[Category:Minecraft|M]]&lt;/div&gt;</summary>
		<author><name>Fpiantini</name></author>	</entry>

	<entry>
		<id>https://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_setup_di_un_server_Minecraft</id>
		<title>Python - Minecraft: setup di un server Minecraft</title>
		<link rel="alternate" type="text/html" href="https://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_setup_di_un_server_Minecraft"/>
				<updated>2016-05-24T22:41:07Z</updated>
		
		<summary type="html">&lt;p&gt;Fpiantini: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Setup Server Minecraft per programmazione con Python =&lt;br /&gt;
&lt;br /&gt;
In questa pagina è descritta una possibile procedura per mettere in piedi un server Minecraft da utilizzare per gli esercizi di programmazione in Python contenuti in questo sito (per esempio quelli contenuti nella pagina&amp;amp;nbsp;[[Python+Minecraft: primi esercizi|primi esercizi]]&lt;br /&gt;
&lt;br /&gt;
=== Scaricamento Server ===&lt;br /&gt;
&lt;br /&gt;
Il server scelto è CanaryMod. Si è scelto di utilizzare la versione [https://github.com/teachthenet/TeachCraft-Server TeachCraft reperibile su GitHub].&lt;br /&gt;
&lt;br /&gt;
Per scaricare il server su un PC con il comando GIT disponibile si può dare il seguente comando:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ git clone https://github.com/teachthenet/TeachCraft-Server.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Oppure si può scaricare direttamente l'archivio dalla [https://github.com/teachthenet/TeachCraft-Server/archive/master.zip stessa pagina su GitHub] oppure dall'[http://kata.coderdojo.it/archivio/20_python_minecraft/TeachCraft-Challenges/TeachCraft-Server.tar.gz archivio del Coderdojo di Firenze].&lt;br /&gt;
&lt;br /&gt;
Espandere l'archivio utilizzando il comando tar o unzio da terminale Linux, o aprendolo con un programma in grado di leggere tar compressi o zip (su Windows per esempio si consiglia [http://www.7-zip.org/ 7zip]).&lt;br /&gt;
&lt;br /&gt;
=== Lancio Server ===&lt;br /&gt;
&lt;br /&gt;
Aprire un terminale e andare nella directory dove si è decompresso il file al passo precedente. Dare il comando:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ '''java -Xms3036M -Xmx3036M -jar CanaryMod-1.2.0.jar'''&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;TO BE COMPLETED&lt;br /&gt;
[[Category:Python|P]]&amp;lt;br/&amp;gt;[[Category:Minecraft|M]]&lt;/div&gt;</summary>
		<author><name>Fpiantini</name></author>	</entry>

	<entry>
		<id>https://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_setup_di_un_server_Minecraft</id>
		<title>Python - Minecraft: setup di un server Minecraft</title>
		<link rel="alternate" type="text/html" href="https://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_setup_di_un_server_Minecraft"/>
				<updated>2016-05-24T22:30:01Z</updated>
		
		<summary type="html">&lt;p&gt;Fpiantini: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Setup Server Minecraft per programmazione con Python =&lt;br /&gt;
&lt;br /&gt;
In questa pagina è descritta una possibile procedura per mettere in piedi un server Minecraft da utilizzare per gli esercizi di programmazione in Python contenuti in questo sito (per esempio quelli contenuti nella pagina&amp;amp;nbsp;[[Python+Minecraft: primi esercizi|primi esercizi]]&lt;br /&gt;
&lt;br /&gt;
Il server scelto è CanaryMod. Si è scelto di utilizzare la versione [https://github.com/teachthenet/TeachCraft-Challenges TeachCraft-Challenges] reperibile su [https://github.com/teachthenet/TeachCraft-Challenges GitHub].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;TO BE COMPLETED&lt;br /&gt;
[[Category:Python|P]]&amp;lt;br/&amp;gt;[[Category:Minecraft|M]]&lt;/div&gt;</summary>
		<author><name>Fpiantini</name></author>	</entry>

	<entry>
		<id>https://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_setup_di_un_server_Minecraft</id>
		<title>Python - Minecraft: setup di un server Minecraft</title>
		<link rel="alternate" type="text/html" href="https://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_setup_di_un_server_Minecraft"/>
				<updated>2016-05-24T22:25:17Z</updated>
		
		<summary type="html">&lt;p&gt;Fpiantini: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In questa pagina è descritta una possibile procedura per mettere in piedi un server Minecraft da utilizzare per gli esercizi di programmazione in Python contenuti in questo sito (per esempio quelli contenuti nella pagina&amp;amp;nbsp;[[Python+Minecraft:_primi_esercizi|primi esercizi]]&lt;br /&gt;
&lt;br /&gt;
TO BE COMPLETED&lt;br /&gt;
[[Category:Python|P]]&amp;lt;br/&amp;gt;[[Category:Minecraft|M]]&lt;/div&gt;</summary>
		<author><name>Fpiantini</name></author>	</entry>

	<entry>
		<id>https://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_setup_di_un_server_Minecraft</id>
		<title>Python - Minecraft: setup di un server Minecraft</title>
		<link rel="alternate" type="text/html" href="https://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_setup_di_un_server_Minecraft"/>
				<updated>2016-05-24T22:22:35Z</updated>
		
		<summary type="html">&lt;p&gt;Fpiantini: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In questa pagina è descritta una possibile procedura per mettere in piedi un server Minecraft da utilizzare per gli esercizi di programmazione in Python contenuti in questo sito (per esempio quelli contenuti nella pagina [[http://kata.coderdojo.it/wiki/index.php?title=Python%2BMinecraft:_primi_esercizi|primi esercizi]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TO BE COMPLETED&lt;br /&gt;
[[Category:Python|P]]&amp;lt;br/&amp;gt;[[Category:Minecraft|M]]&lt;/div&gt;</summary>
		<author><name>Fpiantini</name></author>	</entry>

	<entry>
		<id>https://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_setup_di_un_server_Minecraft</id>
		<title>Python - Minecraft: setup di un server Minecraft</title>
		<link rel="alternate" type="text/html" href="https://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_setup_di_un_server_Minecraft"/>
				<updated>2016-05-24T22:21:05Z</updated>
		
		<summary type="html">&lt;p&gt;Fpiantini: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In questa pagina è descritta una possibile procedura per mettere in piedi un server Minecraft da utilizzare per gli esercizi di programmazione in Python contenuti in questo sito (per esempio quelli contenuti nella pagina [[http://kata.coderdojo.it/wiki/index.php?title=Python%2BMinecraft:_primi_esercizi | primi esercizi]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TO BE COMPLETED&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Python|P]]&amp;lt;br/&amp;gt;[[Category:Minecraft|M]]&lt;/div&gt;</summary>
		<author><name>Fpiantini</name></author>	</entry>

	<entry>
		<id>https://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_Setup_PC_dei_Partecipanti</id>
		<title>Python - Minecraft: Setup PC dei Partecipanti</title>
		<link rel="alternate" type="text/html" href="https://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_Setup_PC_dei_Partecipanti"/>
				<updated>2016-05-24T22:17:27Z</updated>
		
		<summary type="html">&lt;p&gt;Fpiantini: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Setup PC partecipanti a eventi Python / Minecraft =&lt;br /&gt;
&lt;br /&gt;
In questa pagina viene indicato come preparare i PC per partecipare agli eventi Python+Minecraft organizzati dal Coderdojo di Firenze.&lt;br /&gt;
&lt;br /&gt;
== Installazione Software di base ==&lt;br /&gt;
&lt;br /&gt;
Sul PC deve essere presente un buon editor di codice (per intendersi Notepad non va bene...).&lt;br /&gt;
&lt;br /&gt;
Se ne avete uno preferito potete utilizzarlo, altrimenti, se non avete idee, potete seguire i nostri consigli utilizzando i seguenti:&lt;br /&gt;
&lt;br /&gt;
*MS Windows: [https://notepad-plus-plus.org/download Notepad++]&lt;br /&gt;
&lt;br /&gt;
*OSX: [http://www.barebones.com/products/textwrangler/download.html TextWrangler]&lt;br /&gt;
&lt;br /&gt;
*Linux: le installazioni standard prevedono la presenza di editor di buona qualità come Gedit o Kate, per cui non è necessario installare niente di addizionale&lt;br /&gt;
&lt;br /&gt;
E' poi possibile anche utilizzare degli ambienti più &amp;quot;sofisticati&amp;quot;. Una buona IDE per Python è ad esempio [https://www.jetbrains.com/pycharm/download/ PyCharm versione Community].&lt;br /&gt;
&lt;br /&gt;
== Interprete Python ==&lt;br /&gt;
&lt;br /&gt;
*Windows / OSX: scaricare e installare la versione appropriata dell'interprete dalla [http://www.python.it/download/ pagina del progetto Python]&lt;br /&gt;
&lt;br /&gt;
*Linux: a seconda della distribuzione utilizzare l'appropriato comando. Per esempio per Ubuntu e derivati utilizzare il comando da terminale:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install python&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Installazione Java ==&lt;br /&gt;
&lt;br /&gt;
Normalmente i PC con sistema operativo Windows o Mac OSX hanno già il software Java installato. L'unica cosa importante è che la versione Java installata sia la 8 (detta anche 1.8). Nel caso sia necessario installarla andare sul [http://www.java.com/en/download/ sito ufficiale di Java] e scaricare la JDK appropriata per la macchina in preparazione&lt;br /&gt;
&lt;br /&gt;
Per i sistemi operativi Linux occorre essere sicuri che la versione di Java installata sia quella ufficiale della Oracle e non una versione diversa (per esempio la OpenJDK). Per installare La Oracle Java seguire ad esempio [http://askubuntu.com/questions/56104/how-can-i-install-sun-oracles-proprietary-java-jdk-6-7-8-or-jre questa guida su AskUbuntu]. Per scaricare java andare nella [http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html pagina relativa] sul sito Oracle. Scaricare la versione appropriata al PC che si sta utilizzando (in base al sistema operativo e al tipo di architettura, 32 o 64 bits). Per verificare la versione di Java aprire un terminale e dare il comando:&lt;br /&gt;
&amp;lt;pre&amp;gt;java -version&amp;lt;/pre&amp;gt;&lt;br /&gt;
Devono essere stampate stringhe nella forma:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ java -version&lt;br /&gt;
&lt;br /&gt;
java version &amp;quot;1.8.0_91&amp;quot;&lt;br /&gt;
Java(TM) SE Runtime Environment (build 1.8.0_91-b14)&lt;br /&gt;
Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)&lt;br /&gt;
&lt;br /&gt;
$ _&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Installazione Launcher Minecraft ==&lt;br /&gt;
&lt;br /&gt;
Se il programma Minecraft è già installato sul PC non è necessario fare niente (passare al capitolo &amp;quot;Collegamento al server&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Per installare invece il launcher, scaricarlo da [http://kata.coderdojo.it/archivio/20_python_minecraft/TeachCraft-Challenges/TeachCraft-Challenges-master.zip questo link] dall'archivio del coderdojo di Firenze. Altrimenti è possibile scaricarlo direttamente dalla [https://github.com/teachthenet/TeachCraft-Challenges pagina GitHub del progetto TeachCraft-Challenges].&lt;br /&gt;
&lt;br /&gt;
Una volta copiato il pacchetto sul PC, effettuare l'unzip del file in una directory a piacere. Cliccare sull'icona &amp;quot;Minecraft_Launcher.jar&amp;quot; per effettuare l'installazione del pacchetto Minecraft. La prima volta che il programma viene lanciato potrebbe apparire una finestra che indicare che è stata trovata una versione aggiornata del launcher. Cliccare su &amp;quot;Yes&amp;quot; per effettuare l'aggiornamento. A questo punto appare una finestra &amp;quot;TLauncher&amp;quot;. Effettuare i seguenti passi:&lt;br /&gt;
&lt;br /&gt;
*In basso a sinistra inserire uno user name a piacere&lt;br /&gt;
*Sempre in basso a sinistra selezionare la release del server, selezionare il valore &amp;quot;Release 1.8.8&amp;quot;&lt;br /&gt;
*Cliccare sul pulsante &amp;quot;Install&amp;quot; in basso al centro&lt;br /&gt;
&lt;br /&gt;
Lasciare terminare l'aggiornamento e l'installazione. Alla fine della procedura, oppure lanciando nuovamente il &amp;quot;Minecraft_Launcher.jar&amp;quot; apparirà la seguente finestra (o qualcosa di simile):&lt;br /&gt;
&lt;br /&gt;
[[File:TLauncher 1.964 217.png|File:TLauncher_1.964_217.png]]&lt;br /&gt;
&lt;br /&gt;
Adesso è possibile provare a collegarsi al server e scrivere i primi programmi Python. Cominciare per esempio dall'esercizio descritto nella pagina [[Python+Minecraft: primi esercizi|Python+Minecraft: primi esercizi]]&lt;br /&gt;
[[Category:Python|P]]&lt;br /&gt;
[[Category:Minecraft|M]]&lt;/div&gt;</summary>
		<author><name>Fpiantini</name></author>	</entry>

	<entry>
		<id>https://kata.coderdojo.it/wiki/index.php?title=Pagina_principale</id>
		<title>Pagina principale</title>
		<link rel="alternate" type="text/html" href="https://kata.coderdojo.it/wiki/index.php?title=Pagina_principale"/>
				<updated>2016-05-24T22:16:34Z</updated>
		
		<summary type="html">&lt;p&gt;Fpiantini: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Benvenuti nel WIKI del CoderDojo di Firenze'''&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;In questo WIKI raccogliamo tutorial, articoli e linee guida da seguire durante i nostri incontri.&amp;lt;br/&amp;gt;Tutti i nostri mentor sono chiamati a collaborare al WIKI e possono farlo iscrivendosi liberamente.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;La scrittura di un tutorial deve attenersi alle seguenti linee guida:&amp;lt;br/&amp;gt;- Avere una versione per i mentor&amp;lt;br/&amp;gt;- Avere una versione per i ragazzi (eventualmente tratta da quella per mentor)&amp;lt;br/&amp;gt;- Essere sviluppata per passi, con almeno un obiettivo intermedio da raggiungere entro la metà dell'incontro (prima della pausa).&amp;lt;br/&amp;gt;- Essere facilmente stampabile&amp;lt;br/&amp;gt;- Appartenere ad una categoria fra quelle disponibili&lt;br /&gt;
&lt;br /&gt;
Il contenuto di questo wiki è disponibile secondo la licenza [http://creativecommons.org/licenses/by-nc-sa/3.0/ Creative Commons, attribuzione non commerciale]&lt;br /&gt;
&lt;br /&gt;
Potete cominciare la vostra navigazione da qui:&lt;br /&gt;
&lt;br /&gt;
*[[:Category:Scratch|Scratch]]&lt;br /&gt;
*[[:Category:HTML|HTML]]&lt;br /&gt;
*[[:Category:Javascript|JavaScript]]&lt;br /&gt;
*[[:Category:PHP|PHP]]&lt;br /&gt;
*[[:Category:C++|C++]]&lt;br /&gt;
*[[:Category:AppInventor|AppInventor]]&lt;br /&gt;
*[[:Category:Python|Python]]&lt;br /&gt;
*[[:Category:Minecraft|Minecraft]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Principale|Category:Principale]]&lt;/div&gt;</summary>
		<author><name>Fpiantini</name></author>	</entry>

	<entry>
		<id>https://kata.coderdojo.it/wiki/index.php?title=Python%2BMinecraft:_primi_esercizi</id>
		<title>Python+Minecraft: primi esercizi</title>
		<link rel="alternate" type="text/html" href="https://kata.coderdojo.it/wiki/index.php?title=Python%2BMinecraft:_primi_esercizi"/>
				<updated>2016-05-24T22:15:38Z</updated>
		
		<summary type="html">&lt;p&gt;Fpiantini: Creata pagina con &amp;quot;TO BE COMPLETED   P&amp;lt;br/&amp;gt;M&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;TO BE COMPLETED&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Python|P]]&amp;lt;br/&amp;gt;[[Category:Minecraft|M]]&lt;/div&gt;</summary>
		<author><name>Fpiantini</name></author>	</entry>

	<entry>
		<id>https://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_Setup_PC_dei_Partecipanti</id>
		<title>Python - Minecraft: Setup PC dei Partecipanti</title>
		<link rel="alternate" type="text/html" href="https://kata.coderdojo.it/wiki/index.php?title=Python_-_Minecraft:_Setup_PC_dei_Partecipanti"/>
				<updated>2016-05-24T22:14:23Z</updated>
		
		<summary type="html">&lt;p&gt;Fpiantini: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Setup PC partecipanti a eventi Python / Minecraft =&lt;br /&gt;
&lt;br /&gt;
In questa pagina viene indicato come preparare i PC per partecipare agli eventi Python+Minecraft organizzati dal Coderdojo di Firenze.&lt;br /&gt;
&lt;br /&gt;
== Installazione Software di base ==&lt;br /&gt;
&lt;br /&gt;
Sul PC deve essere presente un buon editor di codice (per intendersi Notepad non va bene...).&lt;br /&gt;
&lt;br /&gt;
Se ne avete uno preferito potete utilizzarlo, altrimenti, se non avete idee, potete seguire i nostri consigli utilizzando i seguenti:&lt;br /&gt;
&lt;br /&gt;
*MS Windows: [https://notepad-plus-plus.org/download Notepad++]&lt;br /&gt;
&lt;br /&gt;
*OSX: [http://www.barebones.com/products/textwrangler/download.html TextWrangler]&lt;br /&gt;
&lt;br /&gt;
*Linux: le installazioni standard prevedono la presenza di editor di buona qualità come Gedit o Kate, per cui non è necessario installare niente di addizionale&lt;br /&gt;
&lt;br /&gt;
E' poi possibile anche utilizzare degli ambienti più &amp;quot;sofisticati&amp;quot;. Una buona IDE per Python è ad esempio [https://www.jetbrains.com/pycharm/download/ PyCharm versione Community].&lt;br /&gt;
&lt;br /&gt;
== Interprete Python ==&lt;br /&gt;
&lt;br /&gt;
*Windows / OSX: scaricare e installare la versione appropriata dell'interprete dalla [http://www.python.it/download/ pagina del progetto Python]&lt;br /&gt;
&lt;br /&gt;
*Linux: a seconda della distribuzione utilizzare l'appropriato comando. Per esempio per Ubuntu e derivati utilizzare il comando da terminale:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install python&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Installazione Java ==&lt;br /&gt;
&lt;br /&gt;
Normalmente i PC con sistema operativo Windows o Mac OSX hanno già il software Java installato. L'unica cosa importante è che la versione Java installata sia la 8 (detta anche 1.8). Nel caso sia necessario installarla andare sul [http://www.java.com/en/download/ sito ufficiale di Java] e scaricare la JDK appropriata per la macchina in preparazione&lt;br /&gt;
&lt;br /&gt;
Per i sistemi operativi Linux occorre essere sicuri che la versione di Java installata sia quella ufficiale della Oracle e non una versione diversa (per esempio la OpenJDK). Per installare La Oracle Java seguire ad esempio [http://askubuntu.com/questions/56104/how-can-i-install-sun-oracles-proprietary-java-jdk-6-7-8-or-jre questa guida su AskUbuntu]. Per scaricare java andare nella [http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html pagina relativa] sul sito Oracle. Scaricare la versione appropriata al PC che si sta utilizzando (in base al sistema operativo e al tipo di architettura, 32 o 64 bits).&lt;br /&gt;
Per verificare la versione di Java aprire un terminale e dare il comando:&lt;br /&gt;
&amp;lt;pre&amp;gt;java -version&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Devono essere stampate stringhe nella forma:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ java -version&lt;br /&gt;
&lt;br /&gt;
java version &amp;quot;1.8.0_91&amp;quot;&lt;br /&gt;
Java(TM) SE Runtime Environment (build 1.8.0_91-b14)&lt;br /&gt;
Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)&lt;br /&gt;
&lt;br /&gt;
$ _&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installazione Launcher Minecraft ==&lt;br /&gt;
&lt;br /&gt;
Se il programma Minecraft è già installato sul PC non è necessario fare niente (passare al capitolo &amp;quot;Collegamento al server&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Per installare invece il launcher, scaricarlo da [http://kata.coderdojo.it/archivio/20_python_minecraft/TeachCraft-Challenges/TeachCraft-Challenges-master.zip questo link] dall'archivio del coderdojo di Firenze. Altrimenti è possibile scaricarlo direttamente dalla [https://github.com/teachthenet/TeachCraft-Challenges pagina GitHub del progetto TeachCraft-Challenges].&lt;br /&gt;
&lt;br /&gt;
Una volta copiato il pacchetto sul PC, effettuare l'unzip del file in una directory a piacere. Cliccare sull'icona &amp;quot;Minecraft_Launcher.jar&amp;quot; per effettuare l'installazione del pacchetto Minecraft. La prima volta che il programma viene lanciato potrebbe apparire una finestra che indicare che è stata trovata una versione aggiornata del launcher. Cliccare su &amp;quot;Yes&amp;quot; per effettuare l'aggiornamento. A questo punto appare una finestra &amp;quot;TLauncher&amp;quot;. Effettuare i seguenti passi:&lt;br /&gt;
&lt;br /&gt;
*In basso a sinistra inserire uno user name a piacere&lt;br /&gt;
*Sempre in basso a sinistra selezionare la release del server, selezionare il valore &amp;quot;Release 1.8.8&amp;quot;&lt;br /&gt;
*Cliccare sul pulsante &amp;quot;Install&amp;quot; in basso al centro&lt;br /&gt;
&lt;br /&gt;
Lasciare terminare l'aggiornamento e l'installazione. Alla fine della procedura, oppure lanciando nuovamente il &amp;quot;Minecraft_Launcher.jar&amp;quot; apparirà la seguente finestra (o qualcosa di simile):&lt;br /&gt;
&lt;br /&gt;
[[File:TLauncher 1.964 217.png|File:TLauncher_1.964_217.png]]&lt;br /&gt;
&lt;br /&gt;
Adesso è possibile provare a collegarsi al server e scrivere i primi programmi Python.&lt;br /&gt;
Cominciare per esempio dall'esercizio descritto nella pagina [[Python+Minecraft: primi esercizi]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Python|P]]&lt;/div&gt;</summary>
		<author><name>Fpiantini</name></author>	</entry>

	</feed>