Le deuxième projet sera deux parties :
Plusieurs classes vous sont fournies que vous devrez étendre durant le travail. Portez une attention particulière aux deux classes d’exemples ArbitraryMaze
et EmptyMaze
pour vous aider à concevoir vos classes.
Un package position
fournit des classes représentant une position et une direction dans l’espace.
Dans le package labyrinth
, vous trouverez la classe MazeDisplay
qui va nous permettre d’afficher nos labyrinthes de la partie 1 et nos marcheurs de la partie 2. Vous pouvez l’utiliser dès la partie 1.
Dans le package generate
, on retrouve une première classe abstraire Maze
qui est le gabarit pour la génération de nos labyrinthes. On fournit aussi deux exemples d’extension avec les classes ArbiraryMaze
et EmptyMaze
.
Vous devez implémenter les algorithmes de génération de labyrinthe avec les classes suivantes :
RecursiveMaze
- Dept-first backtrackingPrimMaze
- Algorithme de PrimVous devez implémenter les algorithmes de marcheurs dans des labyrinthes avec les classes suivantes :
Vous devez aussi utiliser votre propre implémentation d’au moins une collection de votre choix avec les outils que nous avons vue en classe.
Consulter la grille d’évaluation pour avoir plus d’informations.
Une attention particulière sera apportée à la conception de vos implémentations. Faites attention de créer des variables d’instances intéressantes, d’ajouter des méthodes privées pour vous faciliter la vie, de ne pas répéter de code, etc.