Résumé

Et si tu programmais en t’amusant ?

Cet ouvrage s’adresse à tous les jeunes qui aiment jouer à Minecraft et qui souhaitent s’initier à la programmation pour aller plus loin. Et quitte à découvrir le code, autant s’initier à Python, un langage puissant, facile à assimiler et amusant.

En programmant dans Minecraft, tu pourras rendre tes aventures encore plus passionnantes, originales et personnelles. Tu détourneras en outre des éléments du jeu pour les faire agir de façon totalement inédite, voire en inventer de nouveaux auxquels même les créateurs du jeu n’avaient pas songé.

Au fil de ta lecture, tu verras entre autres comment :

écrire des programmes en Python sur ton Mac, PC ou Raspberry Pi ;

créer des maisons, des structures et fabriquer une machine à dupliquer des éléments du jeu ;

interagir avec le jeu à l’aide de circuits électroniques très simples ;

créer des objets intelligents et coder un programme d’invasion alien ;

concevoir d’impressionnantes structures 2D et 3D comme des sphères et des pyramides ;

imaginer et développer ton propre mini-jeu interactif.

Tu as peut-être déjà atteint un niveau expert dans le jeu, mais tu te sens limité par le temps que tu passes à bâtir de nouvelles structures. Ou peut-être souhaites-tu trouver un moyen d’augmenter encore les capacités du jeu en y ajoutant des fonctionnalités intelligentes et d’automatisation. Quelles que soient tes raisons, ce livre t’accompagnera tout au long de tes aventures de programmation dans Minecraft.

La deuxième édition de cet ouvrage est 100 % compatible avec la dernière version de Python et propose un nouveau chapitre consacré au petit ordinateur programmable micro:bit de la BBC.

À qui s’adresse cet ouvrage ?

Aux collégiens, lycéens, parents, enseignants et associations.

Sur www.​editions-​eyrolles.​com/​go/​pyth​onmi​necr​aft2

Télécharge les kits de démarrage PC/Mac et le code source des exemples du livre.

Dans la même collection

Biographie auteur

Martin O’Hanlon a consacré sa carrière à la conception et à la programmation de systèmes informatiques. Sa passion pour la programmation et l’enseignement l’ont amené à créer le blog Stuffaboutcode.com où il partage ses expériences, ses connaissances et ses idées. David Whale a créé quant à lui Saturday Club, un atelier de programmation Minecraft et Raspberry Pi. Il anime le site...

Martin O’Hanlon

David Whale

Apprendre à coder en Python

avec Minecraft

2e édition

Guide 100 % non officiel

© 2014, 2017 John Wiley and Sons, Ltd.

All Rights Reserved. Authorised translation from the English language edition published by John Wiley & Sons Limited. Responsibility for the accuracy of the translation rests solely with Groupe Eyrolles and is not the responsibility of John Wiley & Sons Limited. No part of this book may be reproduced in any form without the written permission of the original copyright holder John Wiley & Sons Limited.

Traduction autorisée de l’ouvrage en langue anglaise intitulé Adventures in Minecraft, 2nd Edition par David Whale et Martin O’Hanlon (ISBN 978-1-119-43958-5), publié par John Wiley & Sons.

Traduit et adapté de l’anglais par Lara El Keilany.

Attention : la version originale de cet ebook est en couleur, lire ce livre numérique sur un support de lecture noir et blanc peut en réduire la pertinence et la compréhension.

Attention : pour lire les exemples de lignes de code, réduisez la police de votre support au maximum.

En application de la loi du 11 mars 1957, il est interdit de reproduire intégralement ou partiellement le présent ouvrage, sur quelque support que ce soit, sans autorisation de l’éditeur ou du Centre français d’exploitation du droit de copie, 20, rue des Grands-Augustins, 75006 Paris.

© Groupe Eyrolles, 2016

© Éditions Eyrolles, 2019 pour la présente édition,

ISBN : 978-2-212-67721-8

À ma femme Léonie. Sans toi, tout cela n’existerait pas.

Martin

À mes parents, Jan et Alf, qui m’ont transmis le goût d’apprendre.

David

À propos des auteurs

Martin O’Hanlon a consacré sa carrière à la conception et à la programmation de systèmes informatiques. Sa passion pour la programmation et l’enseignement l’ont amené à créer le blog <Stuff about="code" /> (www.stuffaboutcode.com) où il partage ses expériences, ses connaissances et ses idées. Martin anime régulièrement des présentations et des ateliers sur la programmation dans Minecraft. Il s’adresse à un public de codeurs, d’enseignants et de jeunes, et les invite à découvrir des nouveautés tout en faisant de la programmation une activité ludique.

David Whale s’amuse à détourner des objets du quotidien en rédigeant des programmes informatiques, pour des résultats des plus inattendus ! Mordu de programmation depuis l’âge de 11 ans, il continue aujourd’hui d’inventer des logiciels et aime enseigner la programmation. Il collabore avec la Fondation Micro:bit pour l’éducation sur un projet commun visant à rendre l’informatique accessible à tous, et travaille également à titre volontaire pour l’Institute of Engineering and Technology (IET), que ce soit en cours, lors des clubs informatiques du week-end ou pour animer des ateliers de programmation destinés aux jeunes dans tout le pays. Ne manquez pas de lire ses histoires sur son compte Twitter : www.twitter.com/whaleygeek.

Remerciements

Nombreux sont ceux qui participent à la publication d’un livre. Bien qu’ils soient trop nombreux ici pour les citer tous, nous tenions tout de même à remercier les personnes suivantes.

•Tout le personnel de Mojang, pour avoir conçu ce formidable jeu, pour leur génie et leur savoir-faire qui ont permis de rendre ce jeu programmable. Sans leurs connaissances, ce livre n’aurait simplement pas vu le jour.

•La Fondation Raspberry Pi et toute la communauté open source, sans qui Raspberry Pi et le serveur Bukkit n’existeraient pas. Ces deux plates-formes sont indispensables, car elles ont permis d’écrire ce livre pour le grand public.

•Nos testeurs et jeunes experts de Minecraft, Zachary Igielman, Lauren Trussler, Sam Whale, Ben Foden, Ria Parish, Ashley Cheema et Lauren Trussler qui ont testé nos programmes et ont fourni des retours vraiment utiles. Nous n’en aurions probablement jamais bénéficié si nous avions uniquement présenté ce livre à des jeunes du public visé.

•Sarah Wright, pour ses illustrations géniales. Ce sont des images magnifiques qui saisissent parfaitement le sens des concepts abordés dans chaque chapitre.

•Ben Ramachandra, le jeune garçon qui a participé à l’événement Fire Tech Camp de l’Imperial College London à Noël, en 2013. Ton enthousiasme était tel pendant les cours de Python pour Minecraft que tu nous as donné l’idée d’écrire ce livre !

•Enfin, nous tenons à remercier Carrie-Anne Philbin d’avoir eu l’audace et la détermination d’écrire son premier livre Adventures in Raspberry Pi, sans lequel la suite d’ouvrages du même nom n’aurait pas vu le jour. Regarde un peu de quoi tu es responsable, Carrie-Anne...

Table des matières

Avant-propos

Introduction

Minecraft, qu’est-ce que c’est ?

Le monde virtuel

Comment l’idée de Minecraft est-elle née ?

Programmer dans Minecraft, qu’est-ce que ça veut dire ?

À qui ce livre s’adresse-t-il ?

Que vas-tu apprendre dans ce livre ?

Nous supposons que tu sais déjà…

Ce dont tu auras besoin pour les projets

Remarque à l’attention des parents et des enseignants

Modifications apportées à la 2e édition

Structure du livre

Le site Internet associé

Autres ressources

Conventions de lecture

Pour aller plus loin

Chapitre 1

Bonjour le monde de Minecraft

Configurer ton Raspberry Pi pour programmer dans Minecraft

Télécharger le kit de démarrage

Démarrer Minecraft sur Raspberry Pi

Configurer ton PC ou ton Mac pour programmer dans Minecraft

Installer le kit de démarrage et Python sur ton PC Windows

Installer le kit de démarrage et Python sur ton Mac

Démarrer Minecraft sur ton PC Windows ou Mac

Arrêter le serveur Minecraft

Créer un programme

Exécuter un programme

Arrêter un programme

Chapitre 2

Détecter les déplacements de ton joueur

Localiser ton joueur

Te préparer pour l’aventure

Afficher la position de ton joueur

Améliorer l’affichage de ta position

Utiliser postToChat pour afficher ta position ailleurs

Introduire une boucle de jeu

Bâtir le jeu Bienvenue à la maison

Utiliser des instructions if pour créer un paillasson magique

Connaître la position précise de ton joueur

Construire un paillasson magique

Écrire le jeu Bienvenue à la maison

Utiliser le géorepérage pour prélever un impôt

Enregistrer les coordonnées des angles de ton enclos

Écrire le programme de géorepérage

Déplacer ton joueur

Explorer d’autres pistes de localisation

Chapitre 3

Automatiser tes constructions

Créer des blocs

Construire plus d’un bloc à la fois

Utiliser des boucles for

Créer plusieurs blocs à l’aide d’une boucle for

Construire une immense tour à l’aide d’une boucle for

Faire de la place

Utiliser setBlocks pour construire encore plus vite

Saisir des données depuis le clavier

Construire une maison

Construire plusieurs maisons

Utiliser les fonctions Python

Construire une rue bordée de maisons à l’aide d’une boucle for

Poser des moquettes de couleurs différentes de manière aléatoire

Produire des nombres aléatoires

Poser les moquettes

Explorer d’autres pistes de construction

Chapitre 4

Interagir avec les blocs

Identifier les blocs sur lesquels tu te déplaces

Comment savoir si tes pieds touchent la terre ferme

Construire des ponts magiques

Utiliser les listes Python en guise de mémoire magique

Essayer les listes Python

Construire des ponts éphémères à l’aide d’une liste Python

Détecter les blocs que ton joueur frappe

Créer un jeu de chasse au trésor

Rédiger les fonctions et la boucle de jeu principale

Semer des trésors dans le ciel

Récupérer un trésor une fois qu’il a été touché

Ajouter un signal lumineux

Ajouter ton constructeur de ponts

Explorer d’autres pistes d’interaction

Chapitre 5

Utiliser des fichiers de données

Lire une donnée dans un fichier

L’intérêt des fichiers de données

Créer un donneur d’indices

Construire des labyrinthes à l’aide d’un fichier de données

Comprendre les fichiers CSV

Construire un labyrinthe

Construire une imprimante de blocs en 3D

Fabriquer un petit objet de test pour imprimer en 3D

Rédiger le code de l’imprimante 3D

Construire un scanneur de blocs en 3D

Construire une machine à dupliquer

Rédiger la structure du programme de la machine à dupliquer

Afficher le menu

Bâtir la salle de reproduction

Démolir la salle de reproduction

Scanner dans la salle de reproduction

Nettoyer la salle de reproduction

Imprimer dans la salle de reproduction

Créer un répertoire de fichiers

Explorer d’autres pistes avec les fichiers de données

Chapitre 6

Construire des structures en 2D et en 3D

Le module minecraftstuff

Créer des segments, des cercles et des sphères

Tracer des segments

Dessiner des cercles

Dessiner des sphères

Créer une horloge dans Minecraft

Dessiner des polygones

Pyramides

Explorer d’autres pistes avec les objets en 2D et en 3D

Chapitre 7

Créer des blocs intelligents

Les blocs sont tes amis

Utiliser les nombres aléatoires pour rendre ton ami plus intéressant

Personnaliser un objet plus gros

Invasion d’extraterrestres

Explorer d’autres pistes dans le domaine de la simulation

Chapitre 8

Fabriquer une manette de jeu avec le micro:bit

Ce dont tu as besoin dans ce chapitre

Qu’est-ce qu’un BBC micro:bit ?

Comprendre les points d’entrée et de sortie

Transformer ton BBC micro:bit en manette de jeu

Configurer ton ordinateur pour connecter ton BBC micro:bit

Brancher ton BBC micro:bit

Télécharger le code de la manette de jeu sur ton BBC micro:bit

Bonjour BBC micro:bit

Détecter lorsqu’un bouton est actionné

Utiliser l’écran de ton BBC micro:bit

Le paillasson magique amélioré

Développer le programme du paillasson magique

Concevoir ta propre icône

Créer un détonateur

Relier une banane à ton BBC micro:bit

Détecter les points d’entrée tactiles

Rédiger le programme du détonateur

Concevoir un jeu de labyrinthe à balle géant

Bâtir la structure du programme

Ajouter un bouton et un compte à rebours

Construire le jeu

Détecter les mouvements d’inclinaison avec ton BBC micro:bit

Déplacer la balle en inclinant le BBC micro:bit

Collecter des objets sur la table

Terminer le jeu

Ajouter une pénalité lorsque la balle tombe dans un trou

Explorer d’autres pistes avec ta manette de jeu BBC micro:bit

Chapitre 9

La grande aventure

Un jeu dans le jeu

Première partie : construire l’arène

Deuxième partie : placer les obstacles

Le mur

Programmer plusieurs obstacles en même temps

Creuser le lit de la rivière

Creuser les trous

Troisième partie : la jouabilité

Démarrer le jeu

Récupérer des diamants

Plus une seconde à perdre !

Localiser le joueur

Indiquer la fin d’un niveau de jeu et calculer des points

Afficher le message « Game over »

Quatrième partie : ajouter un bouton-poussoir et un afficheur

Configurer le BBC micro:bit

Compte à rebours

Nombre de diamants à collecter

Continuer l’aventure dans Minecraft et explorer les pistes qui s’offrent à toi

Annexe A

Pour aller plus loin

Sites Internet

Minecraft

Python

Autres sites

Autres techniques et astuces d’automatisation

Projets et tutoriels

Vidéos

Livres

Index

Annexe B (en ligne)

Tableau de références

...

Avant-propos

Je suis enseignant et ce qui m’intéresse avant tout c’est l’apprentissage et l’implication de mes élèves. Quand j’enseigne la programmation avec Minecraft, par exemple dans le cadre des rencontres Raspberry Jam ou de mes cours de programmation en Python, les élèves se montrent toujours très intéressés, ce qui est moins le cas quand j’utilise d’autres méthodes. De même, lorsque l’on entame la partie théorique ou que l’on étudie d’autres techniques de programmation, il y a toujours un élève pour me rappeler : « Monsieur, quand est-ce qu’on continue à coder dans Minecraft ? ». Ainsi, dès que Minecraft fait son entrée, la programmation prend tout son sens.

Minecraft a le pouvoir de captiver les enfants comme aucun jeu auparavant. Sa simplicité lui confère un attrait universel qui les fascine tous, à l’instar des jeux où il faut construire des structures avec des blocs. Lorsqu’on enseigne de nouvelles connaissances aux enfants à l’aide de Minecraft, que ce soit en classe, à la bibliothèque ou en atelier, ces derniers sont tout ouïe. Comme Minecraft pousse les enfants à participer et à s’intéresser aux savoirs qu’on leur enseigne, utiliser ce jeu en classe peut s’avérer très instructif, pour le professeur comme pour les élèves.

Si Minecraft est un outil d’apprentissage si efficace, c’est parce qu’il permet de visualiser les résultats instantanément, que ce soit sous la forme d’une maison, d’une tortue en 3D, d’une ville entière ou d’une station spatiale internationale. Après tout, Minecraft est un jeu de type « bac à sable », ce qui veut dire que tout est possible, même dans la version gratuite pour Raspberry Pi.

En utilisant Minecraft comme terrain de jeu, les élèves réalisent des structures faciles à mémoriser qui leur fournissent de bons exercices pour valider les acquis et réviser les concepts appris en cours. Par exemple, lorsque j’aborde une leçon sur les tableaux à deux dimensions, je rappelle souvent à mes élèves la fois où nous avons créé des murs aléatoires de 32 blocs par 32.

Dans l’école où j’enseigne, dans le district du North Warwickshire, au Royaume-Uni, nous avons 10 exemplaires de l’ouvrage Apprendre à coder avec Minecraft. Nous les utilisons pour aider les élèves à travailler sur des projets en toute autonomie après leur avoir distribué de simples feuilles d’exercices. Par exemple, si un jour nous apprenons aux élèves à créer un arc-en-ciel avec les déplacements de leurs joueurs, ils pourront très bien, une fois l’exercice terminé, continuer à s’entraîner en créant une maison ou un mini jeu à l’aide du livre. Ce qui est génial dans cet ouvrage, c’est que l’on peut choisir un chapitre au hasard et le suivre à son rythme ou le lire du début à la fin, de façon linéaire. Pour ma part, je me suis aperçu que la plupart des exercices que je crée proviennent souvent des idées de David et de Martin. Ce livre est capable de faire aimer la programmation à n’importe qui, quel que soit l’âge, car il offre aux enseignants, aux parents, mais surtout aux enfants des bases à partir desquelles ils peuvent construire.

L’apprentissage ne se limite pas à la salle de classe, loin de là ! Plusieurs communautés mordues de Minecraft existent dans le monde, comme le Code Club, le CoderDojo et les Raspberry Jams. Mais on peut aussi apprendre à coder en famille, chez soi, ou en solo, à l’école. Ce livre convient dans tous les cas de figure.

Un jour, j’ai entendu Martin parler de son livre comme d’un ouvrage pédagogique qui se dévore « en cachette ». Je pense que ça résume bien l’idée : vous passez du bon temps tout en apprenant à utiliser des itérateurs, à manipuler des fichiers, à utiliser des conditions et bien plus encore. Élèves et enfants s’amusent à résoudre des problèmes sans même s’apercevoir qu’ils apprennent à coder.

Dans cette nouvelle édition, Martin et David ont ajouté un chapitre sur le BBC micro:bit, qui introduit davantage d’informatique physique dans l’aventure. Ces deux dernières années, BBC micro:bit a permis à de nombreux enfants du monde entier de s’initier à l’informatique. En ajoutant ce chapitre, Martin et David donnent une fois de plus l’occasion aux enfants, aux enseignants et aux parents de s’abandonner librement à leur imagination.

Pour l’heure, bonne chance et place à l’aventure avec Minecraft !

Chris Penn, professeur d’informatique à...

Introduction

ES-TU UN aventurier ? Aimes-tu essayer et apprendre de nouvelles choses ? Es-tu un fan invétéré de Minecraft ? Souhaites-tu repousser les limites de ta connaissance de ce jeu en apprenant à programmer ? Veux-tu épater tes amis par ta créativité et tes tours de magie ? Si ta réponse est un « oui » sonnant et trébuchant, alors ce livre est fait pour toi.

Minecraft, qu’est-ce que c’est ?

Minecraft est un jeu indépendant de type bac à sable dans lequel tu peux bâtir des structures, recueillir des éléments, partir à la recherche de minerais et combattre des monstres pour survivre. Il t’apparaît sous la forme d’un monde virtuel en 3D fait de différents types de blocs et dans lequel chaque bloc a sa propre place au sein du maillage 3D. La figure I-1 montre à quoi ressemble le monde de Minecraft.

FIGURE I-1 Le monde de Minecraft

Le monde virtuel

Dans les jeux de type bac à sable, tu évolues dans un monde virtuel. C’est comme si tu étais dans un bac à sable avec des bords très éloignés ; comme un immense parc rempli de sable. Au lieu de passer des niveaux dans un ordre préétabli, tu erres dans le monde virtuel et choisis les objectifs que tu souhaites atteindre et la manière dont tu veux t’y attaquer. Comme tu fais tes propres choix dès le début, ce type de jeux renferme d’infinies possibilités. Tu crées des histoires bien à toi et tu te déplaces dans le monde 3D en acquérant de nouvelles compétences et de nouvelles fonctionnalités que tu découvres par hasard au fil de tes expériences.

Dans Minecraft, ton joueur ou avatar s’appelle Steve. Tu le guides à travers le monde virtuel pour poursuivre les missions que tu t’es fixées. Si tu parviens à survivre la première nuit à l’assaut des monstres, tu peux continuer à poursuivre tes missions passionnantes pour interagir avec d’autres joueurs et bâtir d’immenses structures qui n’ont pour limites que celles de ton imagination.

Ainsi donc, dans un jeu de type bac à sable, tu es toi-même maître de tes décisions et tu n’as pas à suivre un chemin défini par les concepteurs du jeu. Pour en savoir plus sur ce type de jeux, rends-toi sur la page suivante : https://​fr.wiki​pedia.org/​wiki/​Monde_​ouvert. Quant au prénom du joueur, nous ne savons pas très bien pourquoi les concepteurs ont choisi Steve, mais tu peux tenter d’élucider ce mystère en suivant ce lien : http://​minec​raft-​fr.​game​pedia.​com/​Joueur.

Comment l’idée de Minecraft est-elle née ?

Les jeux indépendants sont des jeux vidéo créés par des individus ou par de petites équipes de programmeurs. Ils sont souvent développés sans aide financière...

Chapitre 1

Bonjour le monde de Minecraft

DANS CE LIVRE, tu vas apprendre à rédiger des programmes qui interagiront avec ton monde Minecraft et te permettront de réaliser des choses passionnantes. Pour cela, tu utiliseras un langage de programmation appelé Python. La possibilité de diriger le monde de Minecraft à l’aide d’un programme Python était tout d’abord réservée à la version Pi de Minecraft pour les ordinateurs Raspberry Pi. Si tu n’as pas de Raspberry Pi, mais que tu joues à Minecraft sur un ordinateur Windows ou Mac, alors pas de panique ! Tu auras juste à réaliser quelques paramétrages avant de commencer, ce que nous t’expliquerons en temps voulu.

Python est le langage de programmation que nous utilisons dans cet ouvrage.

Cet ouvrage contient un bon nombre d’aventures qui t’enseigneront la programmation appliquée au jeu Minecraft. Tu y trouveras toute une panoplie de tours de passe-passe que tu peux réaliser dans Minecraft pour épater tes amis et rendre le jeu encore plus amusant. Tu découvriras notamment des techniques fabuleuses pour te déplacer dans le jeu et tu apprendras en un rien de temps à bâtir des villes entières et des créations encore jamais vues dans le jeu.

Le langage de programmation Python est fourni avec un éditeur de texte appelé IDLE, qui te servira pour rédiger, modifier et exécuter les programmes enseignés dans ce livre.

Dans ces encadrés, je t’explique des choses ou te donne des informations supplémentaires qui te seront utiles.

Lorsque les informaticiens apprennent un nouveau langage de programmation ou une nouvelle manière de réaliser quelque chose, ils commencent toujours par écrire un programme « Hello world » (« Bonjour le monde », en français). C’est un programme très simple qui permet d’afficher l’expression « Bonjour le monde » sur l’écran de l’ordinateur, afin de s’assurer que tout est installé et fonctionne correctement.

Dans ce premier chapitre, tu configureras ton ordinateur de façon à ce qu’il te permette d’afficher le texte « Bonjour le monde de Minecraft » sur le chat de Minecraft (comme dans la figure 1-1).

FIGURE 1-1 Bonjour le monde de Minecraft

Pour apprendre à programmer dans Minecraft avec ce livre, tu as besoin d’utiliser l’un des ordinateurs suivants : un PC fonctionnant sous Windows, un Mac fonctionnant sous OS X ou un Raspberry Pi fonctionnant sous Raspbian. La configuration de ton ordinateur variera en fonction du type de dispositif que tu possèdes, mais une fois que tu l’auras terminée, tu programmeras Minecraft exactement de la même manière sur toutes les machines. Pour cette étape, tu peux télécharger un kit de démarrage sur le site Internet associé à ce livre (www.editions-eyrolles.com/dl/67721). Les kits de démarrage...

Chapitre 2

Détecter les déplacements de ton joueur

LORSQUE TU JOUES à Minecraft, tu découvres un monde que d’autres personnes ont conçu pour toi. Ce monde est amusant, mais il le serait bien plus encore si tu pouvais l’influencer à ta manière. Minecraft est fait pour ça. Le jeu t’offre l’environnement de programmation idéal pour laisser libre cours à ton imagination débordante et inventer des choses incroyables grâce au langage Python. Ce chapitre va te montrer comment profiter de cet environnement pour concevoir des choses amusantes en utilisant Python.

L’une d’elles consistera à créer un jeu dans le jeu, Minecraft étant l’univers que tu influenceras grâce à ton programme. En progressant, tu verras que la plupart des programmes Minecraft se composent de trois éléments principaux qui les rendent particulièrement amusants et captivants, à savoir : détecter des éléments du monde, par exemple la position de ton joueur, calculer des opérations, comme les résultats d’un jeu, et animer des choses, telles que les déplacements de ton joueur.

Dans ce chapitre, tu verras comment localiser ton joueur dans le monde et provoquer des actions de jeu en fonction de tes mouvements. Dans le jeu « Bienvenue à la maison », tu apprendras à créer un paillasson magique qui te souhaitera la bienvenue lorsque tu marcheras dessus. Nous t’initierons aussi à la technique du géorepérage en utilisant les blocs barrières de Minecraft. Et le jeu que tu vas créer te mettra au défi de récupérer des objets plus rapidement que tes amis. Enfin, tu apprendras à propulser ton joueur dans les airs si celui-ci reste bloqué dans un enclos trop longtemps !

Un programme est une série d’instructions que tu rédiges dans un langage informatique spécifique et que l’ordinateur respecte à la lettre. Les instructions varient selon le langage de programmation et tu dois t’assurer de les écrire correctement. Dans ce livre, nous utilisons le langage Python.

Une instruction est un terme informatique général qui signifie que tu commandes à ton ordinateur d’effectuer une action complète, en rédigeant par exemple une ligne de code comme print("Bonjour Steve"). Certains préfèrent employer le terme « commande », mais il est davantage utilisé pour désigner les ordres que tu saisis dans une invite de commandes pour que ton ordinateur exécute une action.

Le langage Python a sa propre définition du terme « instruction », mais pour les besoins de ce livre nous l’emploierons pour désigner un ordre ou une simple ligne de programmation écrite dans ce langage. Si tu souhaites en savoir plus sur le sujet, tu peux consulter la documentation en ligne en te rendant sur : https://docs.python.org.

Localiser ton joueur

Avant de commencer à localiser ton joueur, tu dois d’abord savoir comment le monde de Minecraft est conçu. Ce monde est uniquement composé de blocs, chacun étant un cube d’un mètre carré. Lorsque ton joueur, Steve, se déplace, le jeu connaît la position de ton joueur grâce à une série de coordonnées. Le monde est composé de blocs remplis de matériaux dont le volume correspond généralement à un mètre cube. Il existe quelques exceptions, comme les tapis et les liquides tels que l’eau ou la lave, qui occupent un volume plus petit. Mais ils ne peuvent remplir un volume inférieur à un mètre cube lorsqu’on les mélange à d’autres matériaux.

Une coordonnée est un ensemble de nombres qui indiquent une position. Dans Minecraft, les coordonnées 3D sont utilisées pour indiquer la position exacte de ton joueur dans le jeu en trois dimensions, chaque coordonnée contient donc trois nombres. Pour en savoir plus sur les données de localisation, tu peux consulter l’article http://​en.wiki​p​edia.​org/​wiki/​Coor​di​nate_​system. Et si tu souhaites obtenir davantage d’informations sur la manière dont Minecraft traite ces données, rends-toi sur la page http://​mine​c​raft.​game​p​edia.​com/​Coor​din​ates.

Connaître la position de ton joueur dans le monde de Minecraft te permet de provoquer des réactions intelligentes lorsque tu te déplaces. Par exemple, tu peux afficher des messages dans le chat à des endroits précis, bâtir des structures automatiquement lorsque tu es en mouvement et changer la position de ton joueur lorsque tu te rends dans certains endroits. Ce livre t’apprendra tous les secrets de ces formidables techniques de jeu, dont la plupart se trouvent précisément dans ce chapitre !

Nous appellerons ces coordonnées x, y et z. Tu dois faire très attention lorsque tu parles de coordonnées de position dans Minecraft, notamment si tu utilises des termes comme « gauche » et « droite », car la position des objets dépend de la direction vers laquelle tu te tournes. Il est préférable de penser ta position comme si tu disposais d’une boussole. La figure 2-1 montre comment les coordonnées x, y et z évoluent en fonction de tes déplacements dans le jeu.

Tu comprendras plus facilement comment tes coordonnées de position évoluent si tu les étudies directement dans Minecraft. Sur Raspberry Pi, tu peux voir tes coordonnées x, y et z s’afficher en haut à gauche de ton écran lorsque tu te déplaces. Sur PC ou Mac, il te suffit d’appuyer sur la touche F3 pour les afficher. Pour en savoir plus sur les contrôles avancés du jeu...

Chapitre 3

Automatiser tes constructions

IL N’Y A RIEN de plus amusant que de construire des structures dans Minecraft. Tu peux construire presque tout ce dont tu rêves. Tes seules limites sont celles du jeu Minecraft lui-même et de ta propre imagination. Tu peux ajouter des maisons, des châteaux, des rivières souterraines, des hôtels à plusieurs étages avec piscines et même des villes entières ! Mais construire des objets complexes avec plusieurs types de blocs peut prendre un temps fou et te demander beaucoup de travail, notamment si cela implique des répétitions. Alors, pourquoi ne pas essayer d’automatiser certaines tâches ? Rien de tel pour épater une fois de plus tes amis.

Le langage Python est idéal pour automatiser des tâches complexes. Dans ce chapitre, tu apprendras quelques tours de passe-passe qui te permettront de construire automatiquement un grand nombre de blocs dans Minecraft. Puis tu répéteras l’opération en introduisant des boucles dans ton code, afin de bâtir d’immenses structures comme des rues entières bordées de maisons (voir la figure 3-1). Tes amis seront d’autant plus impressionnés de parcourir tes allées de maisons qu’ils voudront à tout prix connaître ton secret ! Tu apprendras également à exécuter des commandes directement depuis ton clavier, ce qui te permettra de réutiliser des programmes autant de fois que tu le voudras sans toucher au code !

FIGURE 3-1 Une maison construite à partir de blocs Minecraft

Créer des blocs

Dans Minecraft, chaque type de bloc dispose de sa propre valeur de données. Si tu as déjà joué à Minecraft, tu dois probablement en connaître quelques-uns. Mais l’interface de programmation de Minecraft te permet de désigner les blocs par leur nom plutôt que par leur valeur de données, ce qui te facilite grandement la tâche. En fait, ces noms sont des constantes – notion que nous avons abordée dans le chapitre 2 – auxquelles on a attribué les valeurs de données des types de blocs. Pour connaître la liste des types de blocs les plus courants, leurs noms et leurs valeurs de données, consulte l’annexe B dans la partie réservée aux références.

Le monde de Minecraft est fait de cubes invisibles qui sont tous dotés de coordonnées uniques. Chacun de ces cubes contient un type de bloc précis dont ton ordinateur connaît l’identité, même s’il s’agit d’un bloc de type AIR. En tant que programmeur Minecraft, tu peux demander à l’interface de programmation du jeu de t’indiquer le type de bloc correspondant à une coordonnée précise. Tu peux aussi modifier n’importe quel type de bloc, quelles que soient ses coordonnées. Par exemple, tu peux construire des ponts en remplaçant des blocs de type AIR par des blocs de type ROCHE, ce que tu apprendras à faire dans le chapitre 4.

Tu vas maintenant rédiger un simple programme pour illustrer tout cela. Ce programme consistera à placer automatiquement un simple bloc en face de ton joueur. Une fois cette opération effectuée, tu seras capable de bâtir tout ce que tu voudras automatiquement !

1.Lance Minecraft, IDLE ainsi que le serveur si tu es sur un PC ou un Mac. Tu t’es déjà certainement un peu familiarisé avec le processus, mais n’hésite pas à relire le chapitre 1 si tu as besoin de te rafraîchir la mémoire.

2.Ouvre IDLE, l’environnement de développement intégré (EDI) du langage Python. Tu vas utiliser cette fenêtre pour rédiger et exécuter tous tes programmes en Python.

3.Clique sur File>New File dans le menu de l’interpréteur. Va dans File>Save As et nomme ton fichier bloc.py. N’oublie pas d’enregistrer tes programmes dans le dossier MyAdventures, sinon ils ne fonctionneront pas.

4.Maintenant, importe les modules dont tu as besoin pour ce chapitre. Tu utiliseras un module complémentaire nommé block, qui contient toutes les valeurs de données des types de blocs que renferme Minecraft. Pour cela, saisis :

import mcpi.minecraft as minecraft

import mcpi.block as block

5.Connecte-toi au jeu Minecraft avec l’instruction suivante :

mc = minecraft.Minecraft.create()

6.Ensuite, obtiens la position de ton joueur en utilisant la variable pos. Tu utiliseras ces coordonnées pour calculer l’espace disponible en face de ton joueur et y créer ton nouveau bloc :

pos = mc.player.getTilePos()

7.Crée maintenant un bloc en face de ton joueur, sur la base des coordonnées de ta position. Tu en sauras plus sur les coordonnées relatives dans les paragraphes suivants. En utilisant pos+3 dans ton programme, tu t’assures de ne pas écraser ton joueur avec le bloc que tu vas créer ! Pour cela, saisis :

mc.setBlock(pos.x+3, pos.y, pos.z, block.STONE.id)

8.Clique sur File>Save pour sauvegarder ton programme, puis exécute-le en cliquant sur Run>Run Module dans le menu de l’éditeur.

Tu devrais maintenant voir apparaître un bloc de pierre tout près de toi ! Tu viens d’indiquer au monde de Minecraft de créer un bloc en face de ton joueur. À partir de ces simples instructions, tu peux désormais te lancer dans la création automatique de structures très intéressantes en les programmant directement dans Minecraft.

DÉFI

La pierre (STONE) est une matière un peu ennuyeuse. Jette un œil à l’annexe B (à télécharger) et amuse-toi à remplacer l’élément STONE de ton programme par d’autres types de blocs. Certains sont disponibles sur des systèmes d’exploitation, mais pas sur d’autres. Nous les avons catalogués pour toi à l’annexe B.

Par exemple, le type de bloc obsidienne brillante...

Chapitre 6

Construire des structures en 2D et en 3D

L’UN DES PLUS grands avantages de la programmation dans Minecraft, c’est qu’en plus de pouvoir visualiser tes créations sur un écran 2D, tu peux aussi leur donner vie en les construisant dans un monde en 3D. Tu peux t’amuser à courir autour, à les voir de l’intérieur, à les agrandir et même à les faire exploser ! En récupérant les idées que tu as utilisées pour afficher des objets en 3D sur un écran en 2D, tu peux concevoir des objets en 3D dans Minecraft et faire des miracles !

Dans ce chapitre, tu apprendras à utiliser le module minecraftstuff pour tracer des lignes et des formes en 2D. Avec un peu de mathématiques, ces dernières te permettront de programmer une horloge si grande que tu pourras poser ton joueur sur ses aiguilles en mouvement (voir la figure 6-1). Une fois que tu seras passé maître dans l’art de créer des formes en 2D, tu apprendras à les assembler pour bâtir d’immenses structures en 3D en seulement quelques secondes.

FIGURE 6-1 Une gigantesque horloge Minecraft

Le module minecraftstuff

minecraftstuff est un module d’extension de l’API de Minecraft qui a été écrit spécialement pour les besoins de ce livre. Il contient toutes les lignes de codes nécessaires pour dessiner des formes et prendre le contrôle d’objets en 3D. Il est doté d’un lot de fonctions appelé MinecraftDrawing, qui te permet de créer des segments, des cercles, des sphères et d’autres formes. Comme ce code se trouve dans un module à part, tu pourras programmer en toute simplicité et comprendre plus facilement ce que tu fais. Les modules sont un moyen de scinder un programme en plusieurs sections. Lorsqu’un programme devient trop gros, il devient aussi trop compliqué à comprendre et repérer des problèmes peut prendre beaucoup de temps.

Tu trouveras le module minecraftstuff dans le kit de démarrage à télécharger sur le site Internet du livre www.​edit​ions-​eyro​lles.​com/​dl/​67721. Tu pourras l’importer dans n’importe quel programme Minecraft exactement comme les modules minecraft et block.

Outre les structures étudiées dans ce livre, le module minecraftstuff te réserve d’autres surprises. Pour découvrir toutes les possibilités qui s’offrent à toi, consulte la page https://​mine​c​raft-​stuff.​read​t​h​e​docs.io.

Si tu utilises un kit de démarrage, tu verras qu’il contient également des instructions d’installation. Tu devras modifier la procédure d’importation du module minecraftstuff car, pour te faciliter la tâche, le module est présent dans le dossier mcpi du kit de démarrage.

Créer des segments, des cercles et des sphères

En assemblant plusieurs petits objets, tu peux créer des structures aussi complexes et larges que tu le souhaites. Dans ce...

Pour suivre toutes les nouveautés numériques du Groupe Eyrolles, retrouvez-nous sur Twitter et Facebook

images @ebookEyrolles

images EbooksEyrolles

Et retrouvez toutes les nouveautés papier sur

images @Eyrolles

images   Eyrolles