Inscription / Connexion Nouveau Sujet
Niveau algorithmique
Partager :

Problème python

Posté par
Thanatos82
28-10-19 à 15:24

Bonjour,
J'ai fais un programme python pour un morpion, mais la programme n'empêche pas le fait de pouvoir récrire un symbole sur un même symbole.
Programme :
nbt=0 #compteur de nombre de tour
t=1 #défini c'est a qui de jouer
case=['0']*9 #verifie quel symbole dans quelle case


def Nouveaujeu(jeu):        #debut du nouveau jeu
    for i in range (0,10):
        jeu.append(".")

def Afficherjeu(jeu):                           #tableau du jeu
    print(jeu[1],jeu[2],jeu[3],'    ','1 2 3')
    print(jeu[4],jeu[5],jeu[6],'    ','4 5 6')
    print(jeu[7],jeu[8],jeu[9],'    ','7 8 9')

def Joueruncoupj1(jeu):
    numero=11
    while numero>9 or numero<1:
        numero=int(input("Joueur 1, choisis un endroit"))
    while case[numero - 1]==1 or case[numero - 1]==2 :
        numero=int(input("Joueur 1, choisis un autre endroit"))
    case[numero - 1]="1"
    jeu[numero]="x"

def Joueruncoupj2(jeu):
    numero=11
    while numero>9 or numero<1:
        numero=int(input("Joueur 2, choisis un endroit"))
    while case[numero - 1]==1 or case[numero - 1]==2 :
        numero=int(input("Joueur 2, choisis un autre endroit"))
    case[numero - 1]="2"
    jeu[numero]="o"

jeu=[]
Nouveaujeu(jeu)
Afficherjeu(jeu)
print("\n")

while nbt != 8:
    if t==1:
        Joueruncoupj1(jeu)
        t=t-1
        nbt=nbt+1
        Afficherjeu(jeu)
        print("\n")
        print(nbt)
        print(t)
        print(case)
    if t==0:
        Joueruncoupj2(jeu)
        t=t+1
        nbt=nbt+1
        Afficherjeu(jeu)
        print("\n")
        print(nbt)
        print(t)
        print(case)

Joueruncoupj1(jeu)
Afficherjeu(jeu)
print(nbt)
print(t)
print(case)



Merci d'avance

Posté par
carpediem
re : Problème python 28-10-19 à 16:33

salut

Citation :
mais la programme n'empêche pas le fait de pouvoir récrire un symbole sur un même symbole.
une simple condition du genre :

si case est vide alors affecter case ...

Posté par
Thanatos82
re : Problème python 28-10-19 à 16:42

Donc à la place de mettre:
si case pleine...

il faut mieux mettre:
si case vide...

C'est ça ?

Posté par
carpediem
re : Problème python 28-10-19 à 16:47

en fait tu remplis au départ avec des points puis tu distingues les deux joueurs avec des x ou des o

donc il faut adapter :

si case = "." alors ok ... (jouer) sinon rejouer

Posté par
Thanatos82
re : Problème python 28-10-19 à 16:55

Ah merci beaucoup j'ai réussi

Posté par
carpediem
re : Problème python 28-10-19 à 17:05

de rien

Posté par
Thanatos82
re : Problème python 28-10-19 à 17:15

par contre si je fait les conditions pour gagner, mon programme passe de 100 lignes à 150, c'est grave ?

Posté par
carpediem
re : Problème python 28-10-19 à 19:26

pas du tout ...

moi-même j'avais fait un programme qui ne perdait jamais ...



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !