Ce n'est pas forcément dans aGagne() que se trouve le problème. Est-ce que ça ne marche pas dans tous les cas où il y a 4 pions alignés ? (verticale, horizontale, diagonales droite et gauche)
A quoi sert le premier appel aGagne(ttint_plateau) ? L'entier retourné n'est pas récupéré dans une variable, qui permettrait en plus de ne pas appeler à nouveau cinq fois la fonction ! Même remarque dans aGagne().
Dans aGagne(), les return devraient être après les printf, sinon ils ne sont pas exécutés car on a déjà quitté la fonction.
Le problème doit venir des tests d'égalité de quatre cases : en C, on ne peut tester l'égalité que de deux variables à la fois, on ne peut pas les enchaîner comme ça :
# commentaires
Posté par vmagnin (site web personnel, Mastodon) . En réponse au message Puissance 4, problème avec l'affichage du gagnant. Évalué à 4.
Ce n'est pas forcément dans
aGagne()que se trouve le problème. Est-ce que ça ne marche pas dans tous les cas où il y a 4 pions alignés ? (verticale, horizontale, diagonales droite et gauche)Dans ce bloc, il y a des choses étranges :
A quoi sert le premier appel
aGagne(ttint_plateau)? L'entier retourné n'est pas récupéré dans une variable, qui permettrait en plus de ne pas appeler à nouveau cinq fois la fonction ! Même remarque dansaGagne().Dans
aGagne(), lesreturndevraient être après lesprintf, sinon ils ne sont pas exécutés car on a déjà quitté la fonction.Le problème doit venir des tests d'égalité de quatre cases : en C, on ne peut tester l'égalité que de deux variables à la fois, on ne peut pas les enchaîner comme ça :
Donc il manque des
&&.