Erreur python missing 1 required positional argument: 'event'

Résolu/Fermé
Antoine451833 Messages postés 47 Date d'inscription vendredi 1 mai 2020 Statut Membre Dernière intervention 13 mai 2020 - 6 mai 2020 à 16:25
Antoine451833 Messages postés 47 Date d'inscription vendredi 1 mai 2020 Statut Membre Dernière intervention 13 mai 2020 - 13 mai 2020 à 13:15
Bonjour a tous,

J'ai vu pas mal de question a ce sujet mais aucune ne répond a mon probleme. Donc si vous pouviez m'aider, comme indique dans le titre j'ai une erreur: missing 1 required positional argument: 'event'. C'est surement tout bête mais je ne vois pas d’où ça vient. Je vous envoi le code en question

def scene():
    global touches,joueur1,joueur2
    joueur1=[rut,Rpoint,Rpoint2]
    joueur2=[bob,Bpoint,Bpied]
    touches = ["A","M"]
    can1.focus_set()
    can1.bind("<KeyPress>",pressed)
    can1.bind("<KeyRelease>",released)
    scene2()

def scene2(event):
    global joueur1,joueur2,touches
    t = event.keysym.upper()

    if t=="A" and t in touches:
        can1.create_image(100,100,image=joueur1[0])
        toucheA="A"
    if t=="M" and t in touches:
        can1.create_image(200,100,image=joueur2[0])
        toucheB="M"

    if toucheA=="A" and toucheB=="M" :
        score1=score1+1
    if toucheA=="A" and toucheB=="P" :
        score2=score2+1
    #bouton
    bou7 =Button(windows, text="pause", width =10,borderwidth=0, command=pause)
    bou7.place(x=100,y=720)
    can1.after(100,scene2)

def pressed(event):
    #on rajoute la touche pressée dans la liste touches si elle n’y est pas déjà
    global touches
    t = event.keysym.upper()
    if not t in touches:
        touches.append(t)


def released(event):
    #on enlève la touche relachée de la liste touches
    global touches
    t = event.keysym.upper()
    if t in touches:
        touches.remove(t)
A voir également:

60 réponses

Antoine451833 Messages postés 47 Date d'inscription vendredi 1 mai 2020 Statut Membre Dernière intervention 13 mai 2020
8 mai 2020 à 18:59
Oui exactement ainsi de suite.

Je garde ton code il va mettre d'une grande utilité, autant pour le score que l'optimisation, merci !

C'est possible effectivement que tu puisses l’alléger, il est touffu comme tu dis mais il est déjà mieux organisé comparé a la dernière fois. Si tu veux je peux envoyer des screen des interfaces pour avoir une idée mais mettre a disposition toutes mes images avec l'intégralité du code sur un forum je le sens moyen.
0
Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 178
9 mai 2020 à 11:54
Bonjour Antoine,

OK,

Par contre maintenant qu'on est dans cet appel-ci, je pense que tu devrais marquer ton appel

"projet ISN" du 1er mai comme résolu pour ne pas laisser de doublons ...
0
Antoine451833 Messages postés 47 Date d'inscription vendredi 1 mai 2020 Statut Membre Dernière intervention 13 mai 2020
Modifié le 9 mai 2020 à 14:05
Ok pour les screen ?

Je veux bien mais je ne trouve plus le sujet

Et est ce que tu peux m'expliquer comment fonctionne ton score, a quoi correspond: {:d} ? Comment il enlève des points et comprend que 0 pv c'est Game Over.
0
Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 178
Modifié le 9 mai 2020 à 16:00
Les copies d'écrans ? pourquoi pas ...

Moi, je vois ton sujet:



Réponse à tes questions:

1_ Comment fonctionne le score:
La fonction init() initialise pv1 et pv2 à 5 au départ du jeu
Dans la fonction go() on diminue pv1 ou pv2 de 1 suivant le gagnant:
t = 'Joueur 1 gagne !'
pv2 -=1
pv2 -= 1 c'est la même chose que pv2 = pv2 - 1

2_ A quoi correspond {:d}
C'est pour le formatage d'un texte:
score = 'Points de vie joueur 1 : {:d} Points de vie joueur 2 : {:d}'.format(pv1,pv2)
:d signifie que l'on écrit un nombre entier à cet endroit là
donc si pv1 et pv2 = 5 par exemple, score est égal à
Points de vie joueur 1 : 5 Points de vie joueur 2 : 5

Pour un décimal, on écrit {:.3f} : un nombre avec 3 chiffres après la virgule
Pour une chaine de caractères : {:s}
On peut faire plein de chose avec les formats, exemples:
Le chiffre 10 sur 6 caractères (4 espaces devant):
print("\nJustifié a droite : {:>6d}".format(10))
' 10'

3_ Comment il comprend que pv 0, c'est game over
Il suffit de lire le code !
if(pv1 == 0 or pv2 == 0):     # si l'un des 2 pv = 0
    can1.delete('all')    # on efface tout
    can1.create_text(50,150,text= 'Game over !!!',anchor = NW, fill = 'red', font = ('helvetica', 20, 'bold'))    #on affiche game over
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Antoine451833 Messages postés 47 Date d'inscription vendredi 1 mai 2020 Statut Membre Dernière intervention 13 mai 2020
Modifié le 9 mai 2020 à 18:05
D'accord je vois, merci pour tes explications.

Une dernière chose, pourquoi le score de ton code ne défile pas ? Comme le mien fait, c'est a dire que quand un jours remporte, le score fait bien -1 mais en continu, il ne part pas 10 pour ensuite attendre a 9.

Est ce que tu vois ce que je veux dire ?

Je ne sais pas ou tu es mais moi j'ai rien:

0
Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 178
9 mai 2020 à 18:43
Les points de vie c'est bien censé diminuer, non ?

Donc, moi je leur en ai mis 5 chacun au départ pour tester

Au début du jeu, j'affiche 5 partout:



Ensuite, si 1 tape a et 2 tape p, c'est 1 qui gagne, donc j'affiche 5 pour 1 et 4 pour 2:



Ensuite chaque joueur retape une touche et sa rediminue et on retape encore et encore, jusqu'à ce qu'un des 2 soit à 0
Et là : game over !

Donc il y a bien une mise à jour des pv à chaque coup
0
Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 178
9 mai 2020 à 18:49
Je suis ici: forum -> programmation -> Python, là ou l'on voit toutes les questions :
en descendant plus bas, on voit ton appel

0
Antoine451833 Messages postés 47 Date d'inscription vendredi 1 mai 2020 Statut Membre Dernière intervention 13 mai 2020
9 mai 2020 à 19:38
niquel c'est fait
0
Antoine451833 Messages postés 47 Date d'inscription vendredi 1 mai 2020 Statut Membre Dernière intervention 13 mai 2020
Modifié le 9 mai 2020 à 19:48
Oui je suis d'accord, mais je vais t'envoyer ce que j'ai ça sera plus simple.

Au début je lui ai demandé de m'afficher dans la console le score, et il m'a affiche ça après deux/trois coups:
9
8
7
6
5
4
3
2
1
0
-1
-2
-3
-4
-5
-6
-7
-8
-9
-10
-11
-12
-13
-14
-15
-16
-17
-18
-19
-20
-21
-22
-23
-24
-25
-26
-27
-28
-29
-30
9
8
7
6
5
4
3
2
1
0
-1
-2
-31
-32
-33
-34
-35
-36
-3
-4
-5
-6
-7
-37
-38
-39
-8
-9
-10
-40
-41
-42
-11
-12
-13
-43
-44
-45
-46
-14
-15
-16
-17
-47
-48
-49
-50
-51
-52
-53
-54
-55
-56
-57
-58
-59
-18
-19
-20
-21
-22
-23
-24
-25
-26
-27
-28
-29
-30
-31
-32
-33
-34
-35
-36
-37
-38
-39
-40
-41
-42
-43
-44
-45
-46
-47
-48
-49
-50
-51
-52
-53
-54
-55
-56
-57
-58
-59
-60
-61
-62
-63
-64
-65
-66
-67
-68
-69
-70
-71
-72
-73
-74
-75
-76
-77
-78
-79
-80
-81
-82
-83
-84
-85
-86
-87
-88
-89
-90
-91
-92
-93
-94

Avec ce code:
def scene():
    global touches,joueur1,joueur2,toucheB,toucheA,image_joueur2,image_joueur1,score1,score2
    joueur1=[rut,Rpoint,Rpoint2]
    joueur2=[bob,Bpoint,Bpied]
    image_joueur1=can1.create_image(300,300,image=joueur1[0])
    image_joueur2=can1.create_image(500,300,image=joueur2[0])
    score1=0
    score2=0
    touches = []
    can1.focus_set()
    can1.bind("<KeyPress>",pressed)
    can1.bind("<KeyRelease>",released)
    toucheA=""
    toucheB=""
    scene2()

def scene2():
    global joueur1,joueur2,touches,score1,score2,toucheA,toucheB,image_joueur2,image_joueur1
    if "A" in touches:
        can1.itemconfig(image_joueur1,image=joueur1[1])
        toucheA="A"
    if "Q" in touches:
        can1.itemconfig(image_joueur1,image=joueur1[2])
    if "M" in touches:
        can1.itemconfig(image_joueur2,image=joueur2[1])
        toucheB="M"
    if "P" in touches:
        can1.itemconfig(image_joueur2,image=joueur2[2])
        toucheB="P"

    if toucheA=="A" and toucheB=="M" :
        score1=score1+1
        print(score1)
    if toucheA=="A" and toucheB=="P" :
        score2=score2+1
        print(score2)
    #bouton
    bou7 =Button(windows, text="pause", width =10,borderwidth=0, command=pause)
    bou7.place(x=100,y=720)
    can1.after(100,scene2)

def pressed(event):
    #on rajoute la touche pressée dans la liste touches si elle n’y est pas déjà
    global touches
    t = event.keysym.upper()
    if not t in touches:
        touches.append(t)


def released(event):
    #on enlève la touche relachée de la liste touches
    global touches
    t = event.keysym.upper()
    if t in touches:
        touches.remove(t)


Et ensuite j'ai modifié le tout pour que ça s'affiche sur la fenêtre graphique mais évidemment ça marche pas tip top, il affiche maximum jusqu’à PVr9 et PVb9 donc il affiche la barre de vie pleine (10/10) et celle avec un pv en moins (9/10). Le code:
def scene():
    global pv1,pv2,score1,score2,touches,joueur1,joueur2,toucheB,toucheA,image_bob,image_rut,image_pv1,image_pv2

    #definition de deux joueurs et de leurs photos
    joueur1=[rut,Rpoint,Rpoint2]
    joueur2=[bob,Bpoint,Bpied]
    #definition des touches des joueurs et de la liste
    toucheA=""
    toucheB=""
    touches = []
    #creation de leurs images sur la fenetre graphique
    image_rut=can1.create_image(300,300,image=joueur1[0])
    image_bob=can1.create_image(800,300,image=joueur2[0])
    #on associe à can1 un appui/relachement de touche
    can1.bind("<KeyPress>",pressed)
    can1.bind("<KeyRelease>",released)
    can1.focus_set()
    #score
    pv1 = 10
    pv2 = 10
    score1=[PVr10,PVr9,PVr8,PVr7,PVr6,PVr5,PVr4,PVr3,PVr2,PVr1,PVr0]
    score2=[PVb10,PVb9,PVb8,PVb7,PVb6,PVb5,PVb4,PVb3,PVb2,PVb1,PVb0]
    #creation de leurs images sur la fenetre graphique
    image_pv1=can1.create_image(329,65,image=score1[0])
    image_pv2=can1.create_image(1062,63,image=score2[0])
    #on lance scene2
    scene2()

def scene2():
    global pv1,pv2,score1,score2,joueur1,joueur2,touches,toucheA,toucheB,image_bob,image_rut,image_pv1,image_pv2
    #affect a une touche une image
    if "A" in touches:
        can1.itemconfig(image_rut,image=joueur1[1])
        toucheA="A"
    if "Q" in touches:
        can1.itemconfig(image_rut,image=joueur1[2])
    if "M" in touches:
        can1.itemconfig(image_bob,image=joueur2[1])
        toucheB="M"
    if "P" in touches:
        can1.itemconfig(image_bob,image=joueur2[2])
        toucheB="P"
    #score
    if toucheA=="A" and toucheB=="M" :
        pv1-=1
        can1.itemconfig(image_pv1,image=score1[1])
    if toucheA=="A" and toucheB=="P" :
        pv2-=1
        can1.itemconfig(image_pv2,image=score2[1])
    #bouton
    bou7 =Button(windows, text="",width=66,height=66,borderwidth=0,image=image_B4,command=pause)
    bou7.place(x=663,y=42)
    can1.after(100,scene2)

def pressed(event):
    #on récupère la touche appuyée via t, on la met en majuscules et on l'ajoute a la liste touches
    global touches
    t = event.keysym.upper()
    if not t in touches:
        touches.append(t)


def released(event):
    #on récupère la touche relaché via t, on la met en majuscules et on l'enlève de la liste touches
    global touches
    t = event.keysym.upper()
    if t in touches:
        touches.remove(t)
0
Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 178
Modifié le 9 mai 2020 à 20:38
Plusieurs remarques:

1_ if toucheA=="A" and toucheB=="M" :

if toucheA=="A" and toucheB=="P" :

et la touche Q, on ne l'exploite pas ?

2_ Tu oublie des combinaisons de touches car si M est appuyé en 1er et A ensuite, M sera 1er dans la liste et donc on aura toucheA = 'M' et toucheB = 'A'

C'est pour ça que dans mon code je teste toutes les combinaisons:
ap, pa, am, ma, qp, pq, qm, mq

3_ can1.itemconfig(image_pv1,image=score1[1])
can1.itemconfig(image_pv2,image=score2[1])

donc c'est toujours PVr9 et PVb9 qui sont affichés, c'est normal ?
les autres PVr et PVb ne servent pas ?
0
Antoine451833 Messages postés 47 Date d'inscription vendredi 1 mai 2020 Statut Membre Dernière intervention 13 mai 2020
9 mai 2020 à 20:53
J'ai pas fini cette partie ne t'en fait pas j'en avais bien conscience. Je voulais pouvoir voir claire et une seul combinaison suffit pour voir si tout marche correctement.

Justement la est le probleme, le but c'est qu'une fois que PVr9 est affiché, si le joueur est retouché, PVr8 s'affiche.

pour info PVr9 correspond a la barre de vie de Rut, le joueur 1
0
Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 178
Modifié le 10 mai 2020 à 08:59
Bonjour Antoine,

Qu'entends-tu par "un joueur est retouché" ?

Tu veux tester avec une seule combinaison, mais fais attention quand même car si tu tapes A pour le joueur 1 et M pour le joueur 2, il faut vraiment que A sois tapé avant sinon, ca va donner
['M','A'] et pas ['A','M']

On est d'accord que PVr8 ne s'affiche jamais ?
Car dans ta liste d'images : score1=[PVr10,PVr9,PVr8,PVr7,PVr6,PVr5,PVr4,PVr3,PVr2,PVr1,PVr0]
PVr8 est à l'indice 2 de la liste donc il faudrait une ligne comme celle-ci:
can1.itemconfig(image_pv1,image=score1[2])
et je ne vois pas cette ligne dans ton code ...
0
Antoine451833 Messages postés 47 Date d'inscription vendredi 1 mai 2020 Statut Membre Dernière intervention 13 mai 2020
10 mai 2020 à 12:20
Salut Phil, la est le probleme. Je vais illustrer avec des images ça sera plus simple.

D'abord PVr.. est le score de Rut, le joueur 1.

Donc ça c'est PVr10:



Ça c'est PVr9:



Donc le chiffre représente le nombre de point de vie. Pour le moment il affiche la barre de vie pleine (10/10) et celle avec une vie en moins (9/10), mais il faudrait ensuite qu'il affiche celle d’après (9/10) si le joueur 1 perd de nouveau face au joueur 2 et ainsi de suite si le joueur 2 gagne encore.

C'est a dire qu'un fois touché une première fois, le jouer sur sa barre de vie est a 9/10, si il est de nouveau touché alors 8/10 ect ect jusqu’à 0/10, le KO et la c'est Game Over.

J'ai pris l'exemple du joueur 1, mais ça doit fonctionner de la même manière avec le joueur 2. Est est c'est plus claire maintenant ?
0
Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 178
Modifié le 10 mai 2020 à 12:46
Ah ok

il ne faut pas écrire can1.itemconfig(image_pv1,image=score1[1])
c'est toujours PVr9 qui s'affiche

il faut mettre une variable qui servira de compteur à la place de [1]

1_ Dans la fonction scene(), il faut ajouter l'initialisation des compteurs à 0:

    #score
    pv1 = 10
    pv2 = 10
    #compteurs
    k1,k2 = 0,0


2_ dans la fonction scene2(), il faut écrire ça:

    #score
    if toucheA=="A" and toucheB=="M" :
        k1 += 1
        pv1-=1
        can1.itemconfig(image_pv1,image=score1[k1])
    if toucheA=="A" and toucheB=="P" :
        k2 += 1
        pv2-=1
        can1.itemconfig(image_pv2,image=score2[k2])

    #Tester si game over
    if(pv1 == 0 or pv2 == 0):
     #afficher 'game over !!!'


A chaque tour, k1 et k2 sont incrémentés de 1 et donc on change d'image :
score1[1], score1[2] ……...……....

ne pas oublier le test si game over !
0
Antoine451833 Messages postés 47 Date d'inscription vendredi 1 mai 2020 Statut Membre Dernière intervention 13 mai 2020
Modifié le 10 mai 2020 à 14:43
Super ça, merci beaucoup. L'idée est la mais il y a un probleme, au premier coup remporter par le joueurs, c'est toute la liste qui défile. Donc, première manche, joueurs 1 perd face a joueurs 2 du coup toute la liste score 1 défile avec 1 seconde d'intervalle jusqu’à arriver a PVr0 et comme il est a la fin de la liste il affiche: IndexError: list index out of range.

Il faudrait qu'il prenne pour valeur k1 et qu'il se stabilise a cette valeur jusqu’à la prochaine manche.

Pour Game Over j’hésite entre deux options, soit je fais une image avec une belle texture ou y a marqué Game Over et je propose de recommencer ou quitter

Soit j'affiche Game Over via print/caneva ou autre a voir, et je propose la même chose, recommencer ou quitter.
0
Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 178
10 mai 2020 à 14:50
Ca marche, alors ?

Pour Game over, là, tu fais comme tu veux :-)

As-tu remarqué l'initialisation de variables sur une seule ligne ?

k1,k2 = 0,0

De la même façon, tu peux écrire: pv1,pv2 = 10,10

Au fait, as-tu simplifié l'écriture des règles et de l'histoire en mettant les textes dans une seule variable comme je t'ai montré ?

C'est plus simple si on veut ajouter ou enlever des lignes, ou modifier le texte
C'est plus élégant aussi du point de vue codage ...
0
Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 178
10 mai 2020 à 15:15
Nos réponses se sont croisées, ce serait mieux si tu répondait seulement après avoir testé, on gagnerait du temps

tout défile ?

l'explication est simple: scene2() est une boucle:
elle s'appelle elle-même a la fin tous les 1/10eme de secondes
(100 est un chiffre en millisecondes, donc 1 seconde c'est 1000 millisecondes)

def scene2():

.....................

can1.after(100,scene2)

Ok ?

donc si k1 s'incrémente tout le temps, c'est que l'on rentre dans le test

if toucheA=="A" and toucheB=="M" :

à chaque tour de boucle, même si les joueurs n'ont pas encore recommencé a taper

Tu en conclus quoi ?

Que la liste touches n'a pas été vidée après la 1er manche !

Donc personne n'appuie, mais toucheA est toujours égal à 'A' et on rentre dans le if et on incrémente k1 et on décrémente pv1 !

je ne sais pas si la fonction released(event) fait son boulot, apparemment, non

Moi, dans le code que je t'ai envoyé, je vide simplement ma liste après calcul des coups et des scores:

touches = []

Et ca marche
0
Antoine451833 Messages postés 47 Date d'inscription vendredi 1 mai 2020 Statut Membre Dernière intervention 13 mai 2020
10 mai 2020 à 15:21
Justement non, si le joueur1 perd la première manche il perd tout sa vie d'un coup. Par première manche j'entends le premier combat, dès que le décompte de swith est terminé et que scene2 est lancé.

il faudrait qu'il perdre sa vie de manière progressive, si (même exemple) le joueur1 perd la première manche et bien il perd une barre de vie, c'est a dire qu'il passe de PVr10 a PVr9. Si il perd ensuite la deuxième manche, il perd de nouveau une barre de vie et passe de PVr9 a PVr8.

Donc si t'as bien compris (sinon dit le moi je réexpliquerai) d’après moi il faut que k1 et k2 après la première manche prenne comme valeur le résultat de cette manche. C'est a dire soit -1 barre pour joueur1 soit -1 pour joueur2. J'ai donc essayé ça, juste avant #bouton , mais ça suffit pas (les nouvelles lignes sont les toutes les combinaisons ne soit pas surpris)

#score
    pv1,pv2 = 10,10
    k1,k2 = 0,0
    scene2()

def scene2():
    global pv1,pv2,score1,score2,joueur1,joueur2,touches,toucheA,toucheB,image_bob,image_rut,image_pv1,image_pv2,k1,k2
#JOUEUR1
    if "A" in touches:
        can1.itemconfig(image_rut,image=joueur1[1])
        toucheA="A"
    if "Q" in touches:
        can1.itemconfig(image_rut,image=joueur1[2])
        toucheA="Q"
#JOUEUR2
    if "P" in touches:
        can1.itemconfig(image_bob,image=joueur2[1])
        toucheB="P"
    if "M" in touches:
        can1.itemconfig(image_bob,image=joueur2[2])
        toucheB="M"
#SCORE1
    if toucheA=="A" and toucheB=="M" :
        #j1 gagne
        k2 += 1
        pv2-=1
        can1.itemconfig(image_pv1,image=score1[k1])
    if toucheA=="A" and toucheB=="P" :
        #j1 perd
        k1 += 1
        pv1-=1
        can1.itemconfig(image_pv2,image=score2[k2])
    if toucheA=="Q" and toucheB=="P" :
        #j1 gagne
        k2 += 1
        pv2-=1
        can1.itemconfig(image_pv1,image=score1[k1])
    if toucheA=="Q" and toucheB=="M" :
        #j1 perd
        k1 += 1
        pv1-=1
        can1.itemconfig(image_pv2,image=score2[k2])
#SCORE2
    if toucheB=="P" and toucheA=="A" :
        #j2 gagne
        k1 += 1
        pv1-=1
        can1.itemconfig(image_pv1,image=score1[k1])
    if toucheB=="P" and toucheA=="Q" :
        #j2 perd
        k2 += 1
        pv2-=1
        can1.itemconfig(image_pv2,image=score2[k2])
    if toucheB=="M" and toucheA=="Q" :
        #j2 gagne
        k1 += 1
        pv1-=1
        can1.itemconfig(image_pv1,image=score1[k1])
    if toucheB=="M" and toucheA=="A" :
        #j2 perd
        k2 += 1
        pv2-=1
        can1.itemconfig(image_pv2,image=score2[k2])
    k1=k1
    k2=k2
    #bouton
    bou7 =Button(windows, text="",width=66,height=66,borderwidth=0,image=image_B4,command=pause)
    bou7.place(x=663,y=42)
    can1.after(100,scene2)


Oui j'ai remarqué l'initialisation de variables sur une seule ligne, j'ai direct fait la même pour pv1 et pv2 mdr.

Par contre pour règle et histoire j'ai pas touché, quand tout sera optimal j'enverrai des sreen tu verras que c'est pas possible autrement.
0
Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 178
10 mai 2020 à 15:36
Je ne comprends rien a ce que tu racontes

ces 2 lignes sont inutiles:
k1 = k1
k2 = k2
k1 est forcement égal à k1, rien ne change ici

c'est quoi le décompte de swith ?

qu'appelles-tu une manche ?

pour moi c'est une phase du jeu pendant laquelle les 2 joueurs appuient chacun sur une touche
et là, un des 2 gagne
donc on diminue les points de vie du perdant de 1 et on affiche l'image avec une barre en moins

"Justement non, si le joueur1 perd la première manche il perd tout sa vie d'un coup"

Tu veux dire qu'il faudrait faire ça, ou bien que c'est ce que fais ton programme actuellement ?

Si il fait ça et que ce n'est pas bon, c'est parce que la liste n'est pas vidée après chaque manche
0
Antoine451833 Messages postés 47 Date d'inscription vendredi 1 mai 2020 Statut Membre Dernière intervention 13 mai 2020
Modifié le 10 mai 2020 à 16:44
Je me suis mal exprimé autant pour moi.

Je suis d'accord avec toi pour la définition d'une manche.

"Justement non, si le joueur1 perd la première manche il perd tout sa vie d'un coup" => c'est ce que le programme fait actuellement, et c'est pas ce que je veux.

Donc il faut que je vide scene1 et scene2 si je suis ce que tu dis, du coup ça devrait ressembler a ça ?

score1=[]
score2=[]
0