def test_deplacer_robot(self): """ Teste le déplacement d'un robot """ labyrinthe = Labyrinthe(self.obstacles) # on ajoute un robot à côté de la sortie labyrinthe.ajouter_robot_xy(self.num_robot, self.x, self.y) # on tente un déplacement vers un obstacle labyrinthe.deplacer_robot(self.num_robot, "o") # on vérifie que le robot n'a pas bougé robot = labyrinthe.robot[self.num_robot] self.assertTupleEqual((robot.x, robot.y), (self.x, self.y)) self.assertIsInstance(labyrinthe.grille[self.x, self.y], Robot) # on déplace le robot vers une porte et on vérifie que ça passe labyrinthe.deplacer_robot(self.num_robot, "s") self.assertTupleEqual((robot.x, robot.y), (self.x, self.y + 1)) self.assertIsInstance(labyrinthe.grille[self.x, self.y + 1], Robot) # on vérifie aussi que la porte est enregistrée dans les points invisibles self.assertIsInstance(labyrinthe.invisibles[0], Porte) # et si on sort de la porte, elle réapparait dans la grille labyrinthe.deplacer_robot(self.num_robot, "n") self.assertTupleEqual((robot.x, robot.y), (self.x, self.y)) self.assertIsInstance(labyrinthe.grille[self.x, self.y], Robot) self.assertIsInstance(labyrinthe.grille[self.x, self.y + 1], Porte) # on déplace vers la sortie et on vérifie que la partie est gagnée self.assertFalse(labyrinthe.gagnee) labyrinthe.deplacer_robot(self.num_robot, "e") self.assertTupleEqual((robot.x, robot.y), (self.x + 1, self.y)) self.assertIsInstance(labyrinthe.grille[self.x + 1, self.y], Robot) self.assertTrue(labyrinthe.gagnee)
def test_percer_porte(self): """ Teste la transformation d'un mur en porte """ labyrinthe = Labyrinthe(self.obstacles) # on ajoute un robot à côté d'un mur labyrinthe.ajouter_robot_xy(self.num_robot, self.x, self.y) self.assertIsInstance(labyrinthe.grille[self.x - 1, self.y], Mur) labyrinthe.percer_porte(self.num_robot, "o") self.assertIsInstance(labyrinthe.grille[self.x, self.y + 1], Porte)
def test_murer_porte(self): """ Teste le murage d'une porte : transformation d'une porte en mur """ labyrinthe = Labyrinthe(self.obstacles) # on ajoute un robot à côté d'une porte labyrinthe.ajouter_robot_xy(self.num_robot, self.x, self.y) self.assertIsInstance(labyrinthe.grille[self.x, self.y + 1], Porte) labyrinthe.murer_porte(self.num_robot, "s") self.assertIsInstance(labyrinthe.grille[self.x, self.y + 1], Mur)