コード例 #1
0
    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)
コード例 #2
0
 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)
コード例 #3
0
 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)