J'ai un problème dans la programmation d'un jeu de morpion, le code va jusqu'à là:
- Code: Tout sélectionner
dimensions=3
grille=[[" ","A","B","C"],["1"," "," "," "],["2"," "," "," "],["3"," "," "," "]]
victoire=0
remplie=0
def afficher(tableau):
for abscisse in range(0,dimensions+1):
rangee=""
for colonne in range(0,dimensions+1):
case=tableau[abscisse][colonne]
rangee=rangee+"|"+case
rangee=rangee+"|"
print rangee
def demande(joueur):
""" Cette fonction permet de verifier la validite des donnees entres pas l'utilisateur,"""
abscisses=[ "A","B","C"]
ordonnees=["1","2","3"]
J1="X"
J2="C"
print "Au joueur %s de jouer"%(joueur)
print "Choisissez la case (LettreChiffre)"
# try:
abs,ord=raw_input("entrez la case : ").split()
# except
# print "la case devrait etre un doublet lettrenombre"
# exit()
try:
index_a=abscisses.index(abs)
index_o=ordonnees.index(ord)
except:
print "Abscisses et Ordonnees doivent etre compris entre A,B,C et 1,2,3"
exit()
grille[index_o+1][index_a+1]= str(joueur)
def gagne(joueur):
victory=0
global dimensions,remplie
#Teste les lignes
for ligne in range (1,dimensions+1):
if (grille[abscisses][1]==grille[abscisses][2] and grille[abscisses][2]==grille[abscisses][3] and grille[abscisses][1]!=" "):
victory=joueur
#Teste les colonnes
for col in range (1,dimensions+1):
if (grille[1][ordonnees]==grille[2][ordonnees] and grille[2][ordonnees]==grille[3][ordonnees] and grille[1][ordonnees]!=" "):
victory=joueur
#Teste deux diagonales
rang=1
if (grille[rang][rang]==grille[rang+1][rang+1] and grille[rang+1][rang+1]==grille[rang+2][rang+2] and grille[rang+1][rang+1]!=" "):
victory=joueur
if (grille[rang+2][rang]==grille[rang+1][rang+1] and grille[rang+1][rang+1]==grille[rang][rang+2] and grille[rang+1][rang+1]!=" "):
victory=joueur
#Un gagnant ?
if victory!=0:
print "le joueur %s gagne"%[victory]
exit()
#Match nul ?
if remplie==dimensions*dimensions
print "match nul"
exit()
while victoire==0:
afficher(grille)
demande(1)
afficher(grille)
demande(2)
Ce code n'est pas fini encore, mais quand je le lance dans le terminal il me met un problème de syntaxe à la ligne 59 pour if remplie==dimensions*dimensions il y a un problème mais je ne vois pas lequel, si vous pouviez m'aider !
Merci !