Aller à : navigation, rechercher

Minecraft et Raspberry Pi

Description

Cet atelier propose de découvrir le jeu Minecraft à partir d'un micro-ordinateur Raspberry Pi. Outre la découverte de ce type d'ordinateur, cet atelier se fixe pour objectif d'initier les participants à la programmation en s'appuyant sur le langage Python. En saisissant des lignes de codes, le joueur pourra interagir directement dans le jeu Minecraft.

Matériel nécessaire

  • Un raspberry pi configuré
  • Un écran
  • Un clavier
  • Une souris
  • Un cable HDMI
  • Minecraft-Pi (installé par défaut sur les dernières distributions pour raspberry)
  • Logiciel Python (installé par défaut sur les distributions pour Raspberry)
  • Démarrer avec Minecraft-Pi

  • Démarrez Minecraft en cliquant sur l'îcone du bureau ou en saisissant la commande minecraft-pi dans le terminal
  • Cliquer sur "Start new game" et créez un nouveau monde "Create a new world"
  • Quelques commandes pour jouer à Minecraft

  • Souris – Contrôle la caméra
  • Clic gauche – Détruire des blocs
  • Clic droit – Placer des blocs
  • W – Avancer
  • A – Gauche
  • S – Droite
  • E – Inventaire
  • Esc – Retourner au menu


  • Premier programme avec Pyhton : Hello world !

  • Basculez sur le bureau avec la touche tabulation et lancez Open IDLE
  • Créez un nouveau fichier > File > New Window et sauvegardez FiLE > Save
  • Tapez la commande suivante : from mcpi import minecraft ( Elle permet d'interagir avec Python dans Minecraft )
  • mc = minecraft.Minecraft.create()
  • mc.postToChat("Hello world")
  • >> Enregistrez le fichier et exécutez avec F5.



    Programme : Chemin de fleurs

    Ce bout de code permet de créer un chemin de fleurs derrière le joueur. quand il se déplace, peu importe la direction où il va.


    Quelques notions pour comprendre

  • Boucle while : Une boucle while répète une section de code. Le True (voir programme "Chemin de fleurs") est une partie de la boucle qui signifie que le code s'exécutera toujours jusqu'à que ce que l'utilisateur interrompe le programme.
  • Time : Utiliser "time" nous permet d'utiliser des fonctions qui contrôlent le temps. Par exemple, le code utilise time.sleep()
  • getPos() : La fonction getPos() est une partie de l'API Minecraft qui permet de trouver les coordonnées du joueur.
  • setBlock() : Cette fonction permet de créer des blocks dans le jeu . Il nécessite 4 arguments. Les trois premiers renvoient aux coordonnées (x, y , z) et le dernier argument est le type de block qu'on souhaite créer.

  • Le code à taper dans Open IDLE

    (Respectez bien l'indentation)


  • import mcpi.minecraft as minecraft || Ce code connecte python à Minecraft.
  • mc = minecraft.Minecraft.create()
  • import time || Cette déclaration permet d'utiliser la commande "temps" dans le programme.
  • while True : || Une boucle while permet de répéter un bout de code. Dans le programme chemin de fleurs, cela va répéter le code des lignes 5 à 11.
  • pos = mc.player.getPos()
  •         >>x = pos.x
            >>y = pos.y
            >>z = pos.z
            >>block = 38
            >>mc.setBlock(x, y, z, block)
            >>time.sleep(0.2)
    

    >> Enregistrez le fichier et exécutez avec F5.
    Exercices à proposer

  • Changer le type de bloc
  • Changer la durée

  • Programme : Téléporter le joueur

    Quelques notions pour comprendre

  • Variable  : une variable stocke une valeur. Exemple : x = 10. On peut changer la valeur par n'importe quel nombre. Les variables peuvent être réutilisées.
  • Entiers  : La programmation a recours aux nombres entiers (integers en anglais) par exemple : 10,549 et 42. On utilise des nombres entiers pour définir des variables.
  • Fonction  : Une fonction est un morceau de code réutilisable qui réalise une action précise. Par exemple, on utilise la fonction setPos() pour changer la position du joueur dans le jeu.
  • Arguments de fonction : Certaines fonctions ont besoin de données pour s'exécuter. Ces données sont appelées arguments. Par exemple dans le programme Téléporter (voir ci-dessous), on donne l'argument x, y et z à la fonction setPos() pour dire où doit être téléporté le joueur.
  • API  : Une API est une collection de fonctions qui permettent de se connecter à d'autres interfaces. Dans cette fiche, vous apprendrez à connecter Minecraft Pi à Python.
  • Le code à taper dans Open IDLE

    (Respectez bien l'indentation)


  • import mcpi.minecraft as minecraft
  • mc = minecraft.Minecraft.create()
  • x = 10
  • y = 11
  • z = 12
  • mc.player.setPos(x, y, z)
  • Enregistrez le fichier et pressez F5 dans IDLE pour exécuter le code dans Minecraft

  • Programme : Freeze

    Ce programme permet de transformer l'eau en glace !

    Quelques notions pour comprendre

  • getBlock() : Cette fonction permet de déterminer des blocs selon certaines coordonnées.
  • La condition if : Une condition if n'exécute un morceau de code que si la condition est vraie (True). Si la condition if est fausse, le code ne se lancera pas. Par exemple, dans l'exemple ci-dessous, le code ne s'exécutera que si le joueur marche sur l'eau.

  • Le code à taper dans Open IDLE

    (Respectez bien l'indentation)


  • import mcpi.minecraft as minecraft
  • mc = minecraft.Minecraft.create()
  • import time
  • while True:
  •       >>time.sleep(0.2)
          >>pos = mc.player.getPos()
          >>x = pos.x
          >>y = pos.y
          >>z = pos.z
          >>blockBelow = mc.getBlock(x, y - 1, z)
          >>water = 9
          >>ice = 79
          >>if blockBelow == water:
                >>mc.setBlock(x, y - 1, z, ice)    
    


    >> Enregistrez le fichier et exécutez avec F5.
    Exercices à proposer

  • Changer le bloc eau par un autre élément
  • Changer la glace par un autre élément
  • --Thomas (discussion) 3 février 2015 à 15:21 (CET)