import bge # Bibliothèque Blender Game Engine (BGE) import random from ropy_lib import * ############################################################################### # ropy_init.py # @title: Initialisation du Robot Ropy # @project: Blender-EduTech # @lang: fr # @authors: Philippe Roy # @copyright: Copyright (C) 2020-2021 Philippe Roy # @license: GNU GPL # # Initialisation du Robot # # Ropy est destiné à la découverte de la programmation procédurale et du language Python. # A travers plusieurs challenges, donc de manière graduée, les élèves vont apprendre à manipuler les structures algoritmiques de base et à les coder en Python. # ############################################################################### def main(): ############################################################################### # Récupérer les objets du moteur 3D (BGE) ############################################################################### scene = bge.logic.getCurrentScene() # Récupérer la scène 3D cont = bge.logic.getCurrentController() # Récupérer le contrô´leur BGE obj = cont.owner # Récupérer le robot de la scène 3D ############################################################################### # Initialisation ############################################################################### # niveau = obj['level'] # print ("") # print ("Construction du niveau ...") # # Position initiale du robot # rp_init_position() # zone de 10x10 -> par défaut, au centre case (X,Y) : 5,5 # rp_orientation("est") # il y a nord, sud, est, ouest # obj['mvts'] = "" # Liste des mouvements # obj['mvt_i'] = 0 # Liste des mouvements # # obj.visible=False # # Enlever les murs et les marques # def_murs=[] # rp_enlever_marques() ############################################################################### # Construction du niveau # Zone de 10x10 # # Murs : # Longueur des murs : fixe d' une case # Position des murs : liste imbriquée : [[mur1_x1,mur1_y1,mur1_x2,mur1_y2],[mur2_x1,mur2_y1,mur2_x2,mur2_y2], ...] ############################################################################### niveau = obj['level'] print ("") print ("Construction du niveau ...") # Enlever les murs et les marques def_murs=[] rp_enlever_marques() rp_orientation("est") # il y a nord, sud, est, ouest # niveau 0 : Vide (bac à sable élève) if niveau==0: def_murs=[] obj['x_init'] = 5 obj['y_init'] = 5 # niveau 10 : Bac à sable enseignant if niveau==10: # Murs de test def_murs=[[4,3, 5,3],[4,3, 4,4]] # def_murs=[[4,3, 4,4]] # def_murs=[[4,3, 5,3]] rp_construire_murs(def_murs) obj['x_init'] = 5 obj['y_init'] = 5 ############################################################################### # niveau 1 : Mission 1 : Les premiers pas de Ropy ############################################################################### if niveau==1: # Petite maison def_murs=[ [4,3, 4,4],[4,4, 4,5],[4,5, 4,6], [4,6, 5,6],[5,6, 6,6],[6,6, 7,6], [7,5, 7,6],[7,4, 7,5],[7,3, 7,4], [4,3, 5,3], [6,3, 7,3]] rp_construire_murs(def_murs) rp_marquer_objectif (7,2) obj['x_init'] = 5 obj['y_init'] = 5 ############################################################################### # Mission 2 : Sécuriser Ropy ############################################################################### if niveau==2: # Petite maison def_murs=[ [4,3, 4,4],[4,4, 4,5],[4,5, 4,6], [4,6, 5,6],[5,6, 6,6],[6,6, 7,6], [7,5, 7,6],[7,4, 7,5],[7,3, 7,4], [4,3, 5,3], [6,3, 7,3]] rp_construire_murs(def_murs) rp_marquer_objectif (7,2) obj['x_init'] = 5 obj['y_init'] = 5 ############################################################################### # Mission 3 : Partir au bout du monde ############################################################################### if niveau==3: def_murs=[] rp_marquer_objectif (10,10) obj['x_init'] = 5 obj['y_init'] = 4 ############################################################################### # Mission 4 : Faire face à l'inconnu ############################################################################### if niveau==4: def_murs=[] rp_marquer_objectif (10,10) obj['x_init'] = random.randint(1,10) obj['y_init'] = random.randint(1,10) ############################################################################### # Mission 5 : Se rendre utile ############################################################################### if niveau==5: for i in range (10): rp_marquer_objectif (random.randint(1,10),random.randint(1,10)) # Position aléatoire des objectifs def_murs=[] obj['x_init'] = random.randint(1,10) obj['y_init'] = random.randint(1,10) ############################################################################### # Position initiale du robot ############################################################################### rp_init_position() # rp_orientation("est") # il y a nord, sud, est, ouest obj['mvts'] = "" # Liste des mouvements obj['mvt_i'] = 0 # Liste des mouvements # obj.visible=False