mirror of
https://github.com/Fare-spec/cours.git
synced 2025-12-07 10:50:36 +00:00
Auto urgent commit.
This commit is contained in:
20
graphes/maze/fifo.py
Normal file
20
graphes/maze/fifo.py
Normal file
@@ -0,0 +1,20 @@
|
||||
class Pile:
|
||||
def __init__(self) -> None:
|
||||
self.element = []
|
||||
|
||||
def empiler(self,element)->None:
|
||||
self.element.append(element)
|
||||
|
||||
def est_vide(self)->bool:
|
||||
return len(self.element) == 0
|
||||
|
||||
def defiler(self):
|
||||
assert not self.est_vide(), "La pile est vide"
|
||||
return self.element.pop()
|
||||
|
||||
def size(self)->int:
|
||||
return len(self.element)
|
||||
|
||||
def index(self, k):
|
||||
assert not self.est_vide(), "La pile est vide"
|
||||
return self.element[k]
|
||||
@@ -18,4 +18,3 @@ class Queue:
|
||||
def index(self, k):
|
||||
assert self.est_vide() , "La file est vide"
|
||||
return self.element[k]
|
||||
|
||||
|
||||
22
graphes/maze/maze_creator.py
Normal file
22
graphes/maze/maze_creator.py
Normal file
@@ -0,0 +1,22 @@
|
||||
import fifo
|
||||
import lifo
|
||||
|
||||
class Labyrinth:
|
||||
def __init__(self, rows, cols) -> None:
|
||||
self.rows = rows
|
||||
self.cols = cols
|
||||
self.grid = [[1 for _ in range(cols)]for _ in range(rows)]
|
||||
self.visited = [[False for _ in range(cols)]for _ in range(rows)]
|
||||
self.stack = fifo.Pile()
|
||||
self.queue = lifo.Queue()
|
||||
self.start = None
|
||||
self.end = None
|
||||
|
||||
def __str__(self) -> str:
|
||||
return "\n".join("".join(" " if cell == 0 else "#" for cell in row) for row in self.grid)
|
||||
def set_start_end(self, start, end):
|
||||
self.start = start
|
||||
self.end = end
|
||||
def generate_maze(self):
|
||||
pass
|
||||
|
||||
51
graphes/maze/test.py
Normal file
51
graphes/maze/test.py
Normal file
@@ -0,0 +1,51 @@
|
||||
from fifo import Pile # Remplacez "fifo" par le nom exact de votre fichier contenant la classe Pile
|
||||
|
||||
# Initialisation
|
||||
pile = Pile()
|
||||
|
||||
# Test de empiler
|
||||
pile.empiler(5)
|
||||
pile.empiler(10)
|
||||
assert pile.size() == 2, "Erreur : La taille de la pile devrait être 2"
|
||||
assert pile.element == [5, 10], "Erreur : Les éléments de la pile ne correspondent pas"
|
||||
|
||||
# Test de est_vide
|
||||
assert not pile.est_vide(), "Erreur : La pile ne devrait pas être vide"
|
||||
pile.defiler()
|
||||
pile.defiler()
|
||||
assert pile.est_vide(), "Erreur : La pile devrait être vide après avoir défiler tous les éléments"
|
||||
|
||||
# Test de defiler
|
||||
pile.empiler(7)
|
||||
pile.empiler(3)
|
||||
assert pile.defiler() == 3, "Erreur : Le dernier élément défilé devrait être 3"
|
||||
assert pile.defiler() == 7, "Erreur : Le dernier élément défilé devrait être 7"
|
||||
try:
|
||||
pile.defiler()
|
||||
assert False, "Erreur : defiler devrait lever une exception pour une pile vide"
|
||||
except AssertionError as e:
|
||||
pass # Test réussi
|
||||
|
||||
# Test de size
|
||||
pile.empiler(4)
|
||||
assert pile.size() == 1, "Erreur : La taille de la pile devrait être 1"
|
||||
pile.defiler()
|
||||
assert pile.size() == 0, "Erreur : La taille de la pile devrait être 0 après defiler"
|
||||
|
||||
# Test de index
|
||||
pile.empiler(1)
|
||||
pile.empiler(2)
|
||||
pile.empiler(3)
|
||||
assert pile.index(0) == 1, "Erreur : L'élément à l'index 0 devrait être 1"
|
||||
assert pile.index(2) == 3, "Erreur : L'élément à l'index 2 devrait être 3"
|
||||
try:
|
||||
pile.defiler()
|
||||
pile.defiler()
|
||||
pile.defiler()
|
||||
pile.index(0)
|
||||
assert False, "Erreur : index devrait lever une exception pour une pile vide"
|
||||
except AssertionError as e:
|
||||
pass # Test réussi
|
||||
|
||||
print("Tous les tests sont passés avec succès !")
|
||||
|
||||
Reference in New Issue
Block a user