Commit 2ff76cea authored by Maël RENAULT's avatar Maël RENAULT
Browse files

Update Classes.py

parent a5e9d8e3
......@@ -85,6 +85,27 @@ class Grille:
return(L)
def supprimer_cases(self,n):
L=self.lignes
ordi = Ordinateur()
ordi.solve(L)
H = copy.deepcopy(L)
no = 0
while no != n : # tant que le nombre de cases supprimées no n'est pas égal au nombre n demandé par l'utilisateur
if len(ordi.solution) <= 1:
H = copy.deepcopy(L) # mise en mémoire de la liste L
ordi.solution = []
i = np.random.randint(0, 9)
j = np.random.randint(0, 9) # suppression de cases aléatoires
L[i,j]=0
ordi.solve(L)
else :
L = copy.deepcopy(H)
no = np.count_nonzero(L < 1) #compte le nombre de cases supprimées
self.initialiser_grille(L) #sauvegarde de la nouvelle grille
return(L)
class Joueur:
def __init__(self,nom):
# nom str contenant le nom du joueur
......@@ -144,7 +165,8 @@ class Humain(Joueur):
class Ordinateur(Joueur):
def __init__(self):
Joueur.__init__(self,'ordi')
def solve(self,grille,lst=[]):
self.solution = []
def solve(self,grille):
# Touve une solution à la grille par back tracking
# grille array contenant des cases
for y in range(9):
......@@ -153,10 +175,13 @@ class Ordinateur(Joueur):
for n in range(1, 10):
if self.possible(grille, x, y, n):
grille[y, x]=n
self.solve(grille,lst)
self.solve(grille)
grille[y, x] = 0
return lst
lst.append(copy.deepcopy(grille))
return
H = copy.deepcopy(grille)
self.solution.append(H)
return
def solution_unique(self,grille):
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment