Comment ajouter des niveaux dans un jeu Python?
Fermé
Utilisateur anonyme
-
Modifié le 16 févr. 2021 à 13:40
Phil_1857 Messages postés 1872 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 - 23 févr. 2021 à 15:00
Phil_1857 Messages postés 1872 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 - 23 févr. 2021 à 15:00
A voir également:
- Comment ajouter des niveaux dans un jeu Python?
- 94 jeu - Télécharger - Puzzle & Réflexion
- Ajouter un compte gmail - Guide
- Jeu zuma - Télécharger - Jeux vidéo
- Citizen code python avis - Accueil - Outils
- Ajouter un compte whatsapp - Guide
8 réponses
Phil_1857
Messages postés
1872
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
168
16 févr. 2021 à 13:32
16 févr. 2021 à 13:32
Bonjour,
L'indentation étant importante en Python, merci de copier/coller ici ton code complet avec les balises de code
mode d'emploi:
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Visuellement, ça doit ressembler à ceci (avec la coloration syntaxique) :
L'indentation étant importante en Python, merci de copier/coller ici ton code complet avec les balises de code
mode d'emploi:
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Visuellement, ça doit ressembler à ceci (avec la coloration syntaxique) :
def test(): print('test') test()
Phil_1857
Messages postés
1872
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
168
Modifié le 16 févr. 2021 à 14:24
Modifié le 16 févr. 2021 à 14:24
Ah, on y voit clair maintenant que ton code a été modifié !
Au fait, tu savait que l'on peut écrire:
au lieu de :
Il faut plutôt écrire
Pour le choix du niveau, tu sais déjà faire des labels et des boutons, tu pourrais ajouter
une liste déroulante qui permettrait de sélectionner "niveau 1 :trouvez 5 positions", etc
Et en fonction du choix de l'utilisateur, tu changes le test de la valeur de nbBut
(je pense que c'est cette variable qui donne le nb de positions trouvées)
Au fait, tu savait que l'on peut écrire:
global posJoueur, posBut, n, c, score
au lieu de :
global posJoueur ; global posBut ; global n ; global c ; global score
Il faut plutôt écrire
l1 = Label(f1, text="Bienvenue dans mon jeu !")au lieu de
l1 = Label(f1, text="Bienvenu dans mon jeu !")
Pour le choix du niveau, tu sais déjà faire des labels et des boutons, tu pourrais ajouter
une liste déroulante qui permettrait de sélectionner "niveau 1 :trouvez 5 positions", etc
Et en fonction du choix de l'utilisateur, tu changes le test de la valeur de nbBut
(je pense que c'est cette variable qui donne le nb de positions trouvées)
Phil_1857
Messages postés
1872
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
168
17 févr. 2021 à 10:29
17 févr. 2021 à 10:29
Hello Mallek,
Qu'en penses-tu ?
Qu'en penses-tu ?
Phil_1857
Messages postés
1872
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
168
Modifié le 17 févr. 2021 à 11:15
Modifié le 17 févr. 2021 à 11:15
Ah ok,
hé bien dans ce cas, tu peux faire ça:
initialiser en début de code une variable
dans la fonction jouer(), changer le test
par:
Dans cette branche du test, après affichage du score, tu ajoute ceci:
(enlever le message jeu terminé, ou le mettre vraiment quand on a épuisé tous les niveaux)
hé bien dans ce cas, tu peux faire ça:
initialiser en début de code une variable
niveau = 5
dans la fonction jouer(), changer le test
if nbBut==5:
par:
if nbBut==niveau:
Dans cette branche du test, après affichage du score, tu ajoute ceci:
niveau = 10 nbBut = 0 But() ;#pour recommencer à jouer au niveau suivant
(enlever le message jeu terminé, ou le mettre vraiment quand on a épuisé tous les niveaux)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Phil_1857
Messages postés
1872
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
168
Modifié le 17 févr. 2021 à 17:15
Modifié le 17 févr. 2021 à 17:15
En tout cas, à part ce truc de niveaux, ton code marche super bien !
Ah au fait, suite à mon précédent message:
C'est
Sinon, il n'y aurait que 2 niveaux: 5 et 10
Ah au fait, suite à mon précédent message:
C'est
niveau += 5et non pas
niveau = 10
Sinon, il n'y aurait que 2 niveaux: 5 et 10
Phil_1857
Messages postés
1872
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
168
22 févr. 2021 à 09:39
22 févr. 2021 à 09:39
Bonjour,
Tu viens d'ouvrir un autre appel, tu peux donc fermer celui-là ...
Tu viens d'ouvrir un autre appel, tu peux donc fermer celui-là ...
Phil_1857
Messages postés
1872
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
168
22 févr. 2021 à 14:37
22 févr. 2021 à 14:37
Tu as fermé l'autre appel, donc on ne peut pas répondre
J'ai refait ton jeu avec les niveau, ça marche très bien en fait:
J'ai refait ton jeu avec les niveau, ça marche très bien en fait:
# -*- coding:Latin-1 -*- from tkinter import * from random import * import time class G(): ball_dia = 50 rond = None but = None posx = 0 posy = 0 posButx = 0 posButy = 0 nbut = 0 niveau = 2 def commencerJeu(): G.rond = c1.create_oval(G.posx,G.posy,G.posx+G.ball_dia,G.posy+G.ball_dia,fill='#fff') But() def But(): G.nbut += 1 G.posButx=randint(0,9)*50 G.posButy=randint(0,9)*50 G.but=c1.create_oval(G.posButx,G.posButy,G.posButx+G.ball_dia,G.posButy+G.ball_dia, fill="red") jouer() def jouer(): if(G.posx == G.posButx and G.posy == G.posButy): if(G.nbut == G.niveau): G.nbut = 0 G.niveau += 1 l1['text'] = 'Gagné, on passe au niveau : '+str(G.niveau) But() else: But() def droite(event): c1.delete(ALL) G.posx+=50 if(G.posx > 450): G.posx=450 G.rond = c1.create_oval(G.posx,G.posy,G.posx+G.ball_dia,G.posy+G.ball_dia,fill='#fff') jouer() def gauche(event): c1.delete(ALL) G.posx-=50 if(G.posx < 0): G.posx=0 G.rond = c1.create_oval(G.posx,G.posy,G.posx+G.ball_dia,G.posy+G.ball_dia,fill='#fff') jouer() def haut(event): c1.delete(ALL) G.posy-=50 if(G.posy < 0): G.posy=0 G.rond = c1.create_oval(G.posx,G.posy,G.posx+G.ball_dia,G.posy+G.ball_dia,fill='#fff') jouer() def bas(event): c1.delete(ALL) G.posy+=50 if(G.posy > 450): G.posy=450 G.rond = c1.create_oval(G.posx,G.posy,G.posx+G.ball_dia,G.posy+G.ball_dia,fill='#fff') jouer() f1=Tk() f1.title("Python Game Challenge") f1.geometry('600x600+300+50') f1.bind("<Right>", droite) ; f1.bind("<Left>", gauche) f1.bind("<Down>", bas) ; f1.bind("<Up>", haut) c1=Canvas(f1,width=500,height=500, bg="black") c1.place(x=10, y=10) l1 = Label(f1, text = 'Niveau : '+str(G.niveau)) l1.place(x=200, y=550) l2 = Label(f1, text = 'Score : 0.0') l2.place(x=400, y=550) b1=Button(f1,text="Jouer",fg='yellow',bg="black", command=commencerJeu) b1.place(x=10, y=550) f1.mainloop()
Phil_1857
Messages postés
1872
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
168
23 févr. 2021 à 15:00
23 févr. 2021 à 15:00
Bonjour Mallek,
Alors, ou en es tu ? Tu abandonnes ?
As-tu copié/collé mon code dans un fichier pour l'exécuter ?
Tu verrais que ca marche bien ....
Alors, ou en es tu ? Tu abandonnes ?
As-tu copié/collé mon code dans un fichier pour l'exécuter ?
Tu verrais que ca marche bien ....
16 févr. 2021 à 13:46