Traduction

Signaler
-
Messages postés
13147
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 novembre 2020
-
Bonjours j'ai besoin de votre aide j'ai ce code:
def diagAscendante(i, j):
j1 = j - min(i, j)-1
for i1 in range(i-min(i,j),min(8,7-j1)):
j1+=1
yield i1, j1
def diagDescendante(i, j):
j1=j+min(i,7-j)+1
for i1 in range(i-min(i,7-j),min(8,j1)):
j1-=1
yield i1, j1
def positionValide(L, l, c):
if not L[l] < 0: return False
try:
z=L.index(c)
return False
except ValueError:
pass
diagonaleAscendante = diagAscendante(l, c)
if any([L[i]==j for i, j in diagonaleAscendante]): return False
diagonaleDescendante = diagDescendante(l, c)
if any([L[i]==j for i, j in diagonaleDescendante]): return False
return True

from time import perf_counter
def backTracking(L, l, c):
while c > 7 and l > 0:
l -= 1
c=L[l]+1
L[l] = -1
if c > 7: return -1, 0
return l, c
T=perf_counter()
S = [] # Liste des solutions.
L = [-1 for _ in range(8)]
l=0
c=0
while l >= 0:
while c < 8:
if not positionValide(L, l, c):
c+=1
else:
L[l] = c
c+=1
l += 1
if l <= 7:
c=0
else:
S.append(L[:])
l -= 1
c+=1
L[l] = -1
l, c = backTracking(L, l, c)
print("Temps: {round(perf_counter()-T, 3)} secondes")
print(len(S))
for i,L in enumerate(S):
print(i+1,": ",*L)

Pourriez vous m'expliquer que fait chaque ligne du programme dumoin les plus importante via un # derrière la ligne en question que je puisse comprendre le fonctionnement de ce code merci d'avance

1 réponse

Messages postés
13147
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 novembre 2020
732
bonjour,
comment en es-tu arrivé à utiliser un code que tu ne comprends pas?
dans quel contexte fais-tu cela?
Enfait j'ai se code d'un ami tout simplement et j'essaye d'apprendre et il me faudrai comprendre ce code voila tout c'est pour cela que je demande de me dire si possible a quoi correspond chaque ligne ou du moinnles grandes lignes merci si tu peut m'aider
Messages postés
13147
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 novembre 2020
732 > Pierre
je ne pense pas que c'est ainsi que tu vas apprendre.
essaie d'abord de comprendre du code plus simple.