Aide puissance 4 simple verif colonne
Résolu/Fermé
m4tts
-
Modifié le 20 janv. 2022 à 16:34
mamiemando Messages postés 33499 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 28 janvier 2025 - 20 janv. 2022 à 18:27
mamiemando Messages postés 33499 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 28 janvier 2025 - 20 janv. 2022 à 18:27
A voir également:
- Aide puissance 4 simple verif colonne
- Test puissance pc - Guide
- Déplacer une colonne excel - Guide
- Formule somme excel colonne - Guide
- Trier colonne excel - Guide
- Iphone 14 simple - Guide
2 réponses
mamiemando
Messages postés
33499
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
28 janvier 2025
7 818
Modifié le 20 janv. 2022 à 18:27
Modifié le 20 janv. 2022 à 18:27
Bonjour,
Merci d'utiliser les balises de codes dans tes prochains messages. Essaye aussi d'espacer ton code de sorte à te conformer aux recommandations PEP8 (espace derrière les virgules, espaces autour des opérateurs).
Ton bug est dû au fait que ton programme n'examine pas la dernière colonne. En effet, si tu écris
De plus, vu que tu connais
Dernier point : Il faut être vigilant à ce que retourne un test d'égalité. En l'occurrence, python3 renvoie la valeur (et non
Bonne chance
Merci d'utiliser les balises de codes dans tes prochains messages. Essaye aussi d'espacer ton code de sorte à te conformer aux recommandations PEP8 (espace derrière les virgules, espaces autour des opérateurs).
Ton bug est dû au fait que ton programme n'examine pas la dernière colonne. En effet, si tu écris
for i in range(n), tu itères de
0inclue à
nexclu avec un pas de
1, donc sur les valeurs
0, 1 ..., n -1.
De plus, vu que tu connais
foret
range, tu devrais l'utiliser à la place de ta boucle
while, ce serait plus élégant. Généralement les indices sont notés
iet
j(
ipour les lignes de la matrices,
jpour les indices de la colonne). En tout cas, ce que tu appelles
cn'est pas adéquat, car ce n'est pas un indice de colonne mais de ligne. Donc si tu veux utiliser
iet
c, on aboutirait au code suivant :
def a_gagne_vertical(grille, joueur): for i in range(len(grille) - 3): for c in range(len(grille[0])): if grille[i][c] == grille[i + 1][c] == grille[i + 2][c] == grille[i + 3][c] == joueur: return True return False print( a_gagne_vertical([ [2, 1, 1, 1, 2, 2], [1, 1, 2, 2, 1, 2], [1, 1, 2, 0, 0, 2], [1, 1, 2, 2, 0, 2], [0, 0, 0, 0, 0, 0] ], 2 ))
Dernier point : Il faut être vigilant à ce que retourne un test d'égalité. En l'occurrence, python3 renvoie la valeur (et non
Trueou
False), ce qui signifie que lorsqu'un test d'égalité est évalue, on ne compare pas un booléen à une valeur de ta matrice. Donc c'est correct en python3, mais selon le langage, écrire un test ainsi peut ne pas marcher.
Bonne chance
yg_be
Messages postés
23449
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
28 janvier 2025
Ambassadeur
1 564
20 janv. 2022 à 16:34
20 janv. 2022 à 16:34
bonjour,
il y a une petite erreur en ligne 4: affiche peut-être les valeurs de i pour t'aider à comprendre.
il y a une petite erreur en ligne 4: affiche peut-être les valeurs de i pour t'aider à comprendre.
20 janv. 2022 à 16:43
par un for, je suggère plutôt:
et pas
Modifié le 20 janv. 2022 à 18:28