# Ropy **Discover Python with Ropy (coding adventure)**
**Découvre le Python avec Ropy (code ton aventure)** Ropy est un rover martien qui se programme en Python. Les aventures de Ropy permettent la découverte de la programmation procédurale et du language Python. A travers les différents missions, donc de manière graduée, les élèves vont apprendre à manipuler les structures algorithmiques et à les coder en Python ( [vidéo de présentation](https://nuage03.apps.education.fr/index.php/s/NaHgKMJo8zHGMtM) ). Ropy a fortement été inpiré par [RobotProg](http://www.physicsbox.com/indexrobotprogfr.html) et [Light Bot](https://lightbot.com/). Ce jeu sérieux fait partie du projet open source [Blender-EduTech (Blender/UPBGE pour l'Enseignement Technologique)](https://gitlab.com/blender-edutech). ![Screenshot](img/screenshot-v2b.jpg) ![Poster](img/poster.png) ## Téléchargement Les binaires (Game Engine Runtime) sont hébergés sur [apps.education.fr](https://nuage03.apps.education.fr/index.php/s/f5jELp5xifEM5Xx). ## Instructions et missions Le script Python qui permet la commande du robot est le fichier **'rp_cmd.py'**. Il est éditable avec tout éditeur (Spyder, Emacs, Atoms, ...). Les instructions de base sont : - Avancer : **rp_avancer()** - Reculer : **rp_reculer()** - Tourner à gauche : **rp_gauche()** - Tourner à droite : **rp_droite()** - Marquer la case : **rp_marquer()** - Détecter la présence d'un mur devant à un pas : **rp_detect()** -> retourne True en présence d'un mur et False en absence de mur Il y a 6 missions : - Mission 1 : Les premiers pas de Ropy - Mission 2 : Ma première fonction - Mission 3 : Sécuriser Ropy - Mission 4 : Partir au bout du monde - Mission 5 : Faire face à l'inconnu - Mission 6 : Se rendre utile Du niveau 1 au niveau 5, chaque niveau donne lieu à la découverte d'une nouvelle structure algorithmique. Le niveau 6 correspond à la mission principale, il faudra mobiliser l'ensemble de structures vues précédement. Ropy est une plateforme pédagogique où d'autres missions pouvent être dévelopées pour mettre en oeuvre des concepts comme la programmation objet, le machine learning ou encore le jumeau numérique. ## Documents pédagogiques Les applications pédagogique se trouvent dans le [dépôt des documents pédagogiques du projet Blender-EduTech](https://gitlab.com/blender-edutech/blender-edutech-oer-french) . ## Développement L'environnement de développement est basé sur : la plateforme de modélisation et d'animation 3D Blender ( https://blender.org ), le langage Python (https://python.org ) et le moteur de jeu 3D UPBGE ( https://upbge.org ). Le code source, les fichiers blender et les assets sont hébergés sur le dépôt [gitlab](https://gitlab.com/blender-edutech/ropy). Ropy peut être un **jumeau numérique** via la **liaison série**. Il est donc nécessaire que l'environnement de développement Python d'UPBGE contienne la bibliothèque **serial** (non inclus par défaut). Les étapes sont : - La configuration ici présente est UPBGE installé sous GNU-Linux sur ~ avec Python 3.9 - Aller dans le répertoire local de Python de UPBGE: $ cd ~/UPBGE-0.30-linux-x86_64/3.0/python/bin - Installer localement (UPBGE) le gestionnaire de paquet pip : $ ./python3.9 -m ensurepip --default-pip - Installer localement (UPBGE) la bibliothèque serial : $ ./pip install serial -t ~/UPBGE-0.30-linux-x86_64/3.0/python/lib/python3.9/site-packages