Soyez le premier à donner votre avis sur cette source.
Snippet vu 9 585 fois - Téléchargée 18 fois
import string # place le symbole du joueur sur la case demandée et retourne # la valeur de tour (inchangée sauf si la case demandée # est remplie) def placer(tour, nom_j1, nom_j2): global A1, A2, A3, B1, B2, B3 global C1, C2, C3, case_remplie # on regarde c'est le tour de quel joueur. if tour%2 == 0: symbole = "X" nom = nom_j1 else : symbole = "O" nom = nom_j2 texte = nom + ", où voulez vous placer (ex: A1) : " case = input(texte) case = case.upper() # on place le symbole à la case demandée if case == "A1" and A1 == " ": A1 = symbole case_remplie += 1 elif case == "A2" and A2 == " ": A2 = symbole case_remplie += 1 elif case == "A3" and A3 == " ": A3 = symbole case_remplie += 1 elif case == "B1" and B1 == " ": B1 = symbole case_remplie += 1 elif case == "B2" and B2 == " ": B2 = symbole case_remplie += 1 elif case == "B3" and B3 == " ": B3 = symbole case_remplie += 1 elif case == "C1" and C1 == " ": C1 = symbole case_remplie += 1 elif case == "C2" and C2 == " ": C2 = symbole case_remplie += 1 elif case == "C3" and C3 == " ": C3 = symbole case_remplie += 1 else : print ('la case est déjà remplie, ou vous n avez pas tapez une case valide.') # affiche le morpion def affichage(A1,A2,A3,B1,B2,B3,C1,C2,C3): print ('\n A B C') print ('########################') print ('#",A1,"|",B1,"|",C1,"# 1') print ('#------+------+--------#') print ('#",A2,"|",B2,"|",C2,"# 2') print ('#------+------+--------#') print ('#",A3,"|",B3,"|",C3,"# 3') print ('#############\n') # vérifie si 3 symboles identiques sont alignés # et modifie "fini" si c'est le cas. def verification(A1,A2,A3,B1,B2,B3,C1,C2,C3, nom_j1, nom_j2): global fini if ((A1 == A2 and A1 == A3) or (A1 == B1 and A1 == C1) or (A1 == B2 and A1 == C3)) and A1 != " ": if A1 == "X": print ('Bravo", nom_j1, "vous avez gagné') else : print ('Bravo", nom_j2, "vous avez gagné') fini = True elif ((B1 == B2 and B2 == B3) or (A2 == B2 and B2 == C2) or (A3 == B2 and B2 == C1)) and B2 != " ": if B2 == "X": print ('Bravo", nom_j1, "vous avez gagné') else : print ('Bravo", nom_j2, "vous avez gagné') fini = True elif ((C1 == C3 and C2 == C3) or (A3 == C3 and B3 == C3)) and C3 != " ": if C3 == "X": print ('Bravo", nom_j1, "vous avez gagné') else : print ('Bravo", nom_j2, "vous avez gagné') fini = True tour_joueur = 0 fini = False A1, A2, A3 = " ", " ", " " B1, B2, B3 = " ", " ", " " C1, C2, C3 = " ", " ", " " case_remplie = 0 nom_joueur1 = input("entrez le nom du 1er joueur, vous aurez les X: ") nom_joueur2 = input("entrez le nom du 2eme joueur, vous aurez les O: ") affichage(A1,A2,A3,B1,B2,B3,C1,C2,C3) while not fini : tour_joueur = placer(tour_joueur, nom_joueur1, nom_joueur2) tour_joueur = +1 affichage(A1,A2,A3,B1,B2,B3,C1,C2,C3) verification(A1,A2,A3,B1,B2,B3,C1,C2,C3, nom_joueur1, nom_joueur2) if case_remplie == 9 and not fini: print ('match nul') fini = True
6 mai 2013 à 00:34
5 mai 2013 à 20:02
2 mai 2013 à 21:51
- tour_joueur = placer(tour_joueur, nom_joueur1, nom_joueur2) : là tu remplace la valeur actuelle de 'tour_joueur' par la valeur de retour d'une fonction qui ne renvoie rien par défaut. Donc tour_joueur passe à None après cette ligne.Donc met simplement placer(tour_joueur, nom_joueur1, nom_joueur2).
- tour_joueur = +1 : là tu affecte la valeur +1 dans tour_joueur après chaque appel de 'placer()', donc tu force le joueur 2 à joueur indéfiniment.Donc à remplacer par tour_joueur += 1.
Dernière chose :
- 'Bravo", nom_j1, "vous avez gagné' à remplacer par 'Bravo', nom_j1, 'vous avez gagné' .
Cordialement. Mints.
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.