IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Tkinter Python Discussion :

Besoin d'aide: Jeu de Combat


Sujet :

Tkinter Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mai 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2014
    Messages : 3
    Par défaut Besoin d'aide: Jeu de Combat
    Bien le bonjour à tous, je me présente Julien élève en terminale suivant la spécialité ISN. Je viens ici car pour mon projet de fin d'année je suis un peu perdu: en effet je voulais créer un jeu où 2 joueurs s’affrontent, chacun possédant un personnage et 3 boutons, donc 3 choix d'attaque possible. Or je galère vraiment je suis perdu. Actuellement je possède la fenêtre avec le fond et les boutons, je possède également le programme sur lequel notre système de combat se base. Mais le problème c'est que je n'arrive pas a lier les 2 ! J'aimerai pouvoir afficher un compteur de point de vie pour chacun des joueur et faire en sorte que le joueur 2 ne peut choisir d'attaque avant que le joueur 1 est choisie la sienne. J'en appelle donc à votre aide pour m'aiguiller
    Fichiers attachés Fichiers attachés

  2. #2
    Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mai 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2014
    Messages : 3
    Par défaut Mise à jour
    Bonjour/bonsoir à tous,

    Je tiens juste à vous informer de l'avancé de mon projet : actuellement il ne me reste plus qu'un seul problème !

    Le dit problème est que ma variable qui gère les points de vies n'arrête pas de se réinitialiser. Je vous explique: Normalement lorsque que je sélectionne une attaque, cette attaque génère un nombre de dégât aléatoire qui doit se répercuter sur les points de vie de l'adversaire.Or cela fonctionne sauf qu'après application dégâts, ma variable retourne à son origine rendant ainsi le combat infini.

    Je précise que je suis plus que débutant en codage et à mon avis mon erreur doit être quelque chose de ridiculement simple mais le problème c'est que je ne l'a vois pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    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
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    from tkinter import *
    import random
     
     
    #Base de la fenetre
    fen = Tk()
    fen.geometry("700x394")
    fen.title("Projet ISN")
    image = PhotoImage(file='fond.gif')
    canvas = Canvas(fen, width=1, height=1)
    canvas.pack(fill=BOTH, expand=1)
    canvas.create_image(0, 0, image=image, anchor=NW)
     
    #Fonction associé aux boutons
    def C1 ():
        """Estoc"""
        import random
        valeur1 = random.randint (50,70)
        PDV1=500
        PDV2=500
        if PDV2 >= 0 :
            tour=1
            PDV2=PDV2-valeur1
            messagebox.showinfo("Points de vie restant au joueur 2",PDV2)
        else:
            messagebox.showinfo("joueur 2 a gagné")
     
    def C2 ():
     
        """Purification"""
        import random
        valeur2 = random.randint (30,100)
        PDV1=500
        PDV2=500
        if PDV2 >= 0 :
            PDV2=PDV2-valeur2
            messagebox.showinfo("Points de vie restant au joueur 2",PDV2)
        else:
            messagebox.showinfo("joueur 2 a gagné")
     
    def C3 ():
        """Sacre divin"""
        import random
        valeur3 = random.randint (0,300)
        PDV1=500
        PDV2=500
        if PDV2 >= 0 :
            PDV2=PDV2-valeur3
            messagebox.showinfo("Points de vie restant au joueur 2",PDV2)
        else:
            messagebox.showinfo("joueur 2 a gagné")
     
    def C4 ():
        """Taillade"""
        import random
        valeur4 = random.randint (50,70)
        PDV1=500
        PDV2=500
        if PDV1 >= 0 :
            PDV1=PDV1-valeur4
            messagebox.showinfo("Points de vie restant au joueur 1",PDV1)
        else:
            messagebox.showinfo("joueur 1 a gagné")
    def C5 ():
        """Fracasseur"""
        import random
        valeur5 = random.randint (30,100)
        PDV1=500
        PDV2=500
        if PDV1 >= 0 :
            PDV1=PDV1-valeur5
            messagebox.showinfo("Points de vie restant au joueur 1",PDV1)
        else:
            messagebox.showinfo("joueur 1 a gagné")
    def C6 ():
        """Decapitation"""
        import random
        valeur6 = random.randint (0,300)
        PDV1=500
        PDV2=500
        if PDV1 >= 0 :
            PDV1=PDV1-valeur6
            messagebox.showinfo("Points de vie restant au joueur 1",PDV1)
        else:
            messagebox.showinfo("joueur 1 a gagné")
     
    #Boutons Joueur 1
    L1=Label(fen,text="Joueur 1")
    B1=Button(fen,text="Estoc",width=10,command=C1)
    B2=Button(fen,text="Purification",width=10,command=C2)
    B3=Button(fen,text="Sacre divin",width=10,command=C3)
     
    #Boutons Joueur 2
    L2=Label(fen,text="Joueur 2")
    B4=Button(fen,text="Taillade",width=10,command=C4)
    B5=Button(fen,text="Fracasseur",width=11,command=C5)
    B6=Button(fen,text="Decapitation",width=9,command=C6)
     
    #Emplacement des boutons Joueur 1
    L1.place(x=100, y=10)
    B1.place(x=10, y=350)
    B2.place(x=100, y=350)
    B3.place(x=190, y=350)
     
    #Emplacement des boutons Joueur 2
    L2.place(x=550, y=10)
    B4.place(x=445, y=350)
    B5.place(x=535, y=350)
    B6.place(x=625, y=350)
     
    #Première fenetre
    messagebox.showinfo(
            "Demon Soul",
            "Bienvenue dans Demon Soul!\n\n"
            "Ce jeu se joue au tour par tour. \n"
            "Le joueur 1 contrôle un chevalier de la Lumière \n"
            "Le joueur 2 contrôle un guerrier des Enfer \n"
            "Chacun va choisir son attaque parmis 3 disponibles pour chaque personnage jusqu'a ce que mort s'en suive. \n\n"
            "Tester votre chance ! "
            )
     
     
     
     
     
    fen.mainloop()

  3. #3
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par MiisterRiku Voir le message
    Bonjour/bonsoir à tous,

    Je tiens juste à vous informer de l'avancé de mon projet : actuellement il ne me reste plus qu'un seul problème !

    Le dit problème est que ma variable qui gère les points de vies n'arrête pas de se réinitialiser. Je vous explique: Normalement lorsque que je sélectionne une attaque, cette attaque génère un nombre de dégât aléatoire qui doit se répercuter sur les points de vie de l'adversaire.Or cela fonctionne sauf qu'après application dégâts, ma variable retourne à son origine rendant ainsi le combat infini.

    Je précise que je suis plus que débutant en codage et à mon avis mon erreur doit être quelque chose de ridiculement simple mais le problème c'est que je ne l'a vois pas
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    #Fonction associé aux boutons
    def C1 ():
        """Estoc"""
        import random
        valeur1 = random.randint (50,70)
        PDV1=500
        PDV2=500
        if PDV2 >= 0 :
            tour=1
            PDV2=PDV2-valeur1
            messagebox.showinfo("Points de vie restant au joueur 2",PDV2)
        else:
            messagebox.showinfo("joueur 2 a gagné")
    en ne prenant que cette fonction pour exemple : à chaque fois que vous appelez C1(), l'ordinateur exécute les lignes une à une, l'une après l'autre, sans faire de considérations philosophiques.

    or, regardez ce que vous avez écrit :
    1. on importe le module random
    2. on initialise valeur1 avec une valeur aléatoire
    3. on initialise PDV1 avec 500
    4. on initialise PDV2 avec 500
    5. si PDV2 est positif ou nul alors
    6. on initialise tour à 1
    7. on retranche valeur1 à PDV2
    8. on affiche un message
    9. sinon
    10. on affiche un message


    que nous apporte la lecture ligne à ligne du code ? faire ressortir les incohérences.

    à la ligne 7, vous dites PDV2 = 500, ce qui est une assignation constante, et à la ligne d'après vous testez si PDV2 est positif ou nul.

    pour moi, cela revient à dire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    #Fonction associé aux boutons
    def C1 ():
        """Estoc"""
        import random
        valeur1 = random.randint (50,70)
        PDV1=500
        PDV2=500
     
        if 500 >= 0 :
     
            tour=1
            PDV2=PDV2-valeur1
            messagebox.showinfo("Points de vie restant au joueur 2",PDV2)
        else:
            messagebox.showinfo("joueur 2 a gagné")
    si 500 est positif ou nul est une condition TOUJOURS VRAIE.

    vu ce qui ne va pas ?

    @+.

  4. #4
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Salut,

    Tu ne nous dis pas quelle est cette variable en question, mais bon je remarque malgré tout ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
        import random
        valeur3 = random.randint (0,300)
        PDV1=500
        PDV2=500
        if PDV2 >= 0 :

    Importe random au début de ton code et pas dans chaque fonction.
    Dans toutes les fonctions tu déclares que PDV2 = 500 et, juste après, tu vérifies si PDV2 est supérieur ou égal à 0, quelle logique suis-tu ?

  5. #5
    Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mai 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2014
    Messages : 3
    Par défaut
    En fait mon vrai problème je l'ai cerné c'est l'absence de boucle

    Mais le problème c'est que je ne sais pas comment faire pour que ma boucle soit modifié à l'aide de bouton. Je ne sais pas si se que je dis est très clair

    En gros je voudrais créer une boucle pour gérer les points de vie durant le combat j'avais penser à une boucle while:
    while PDV1 > 0 and PDV > 0

    Mais ensuite je voudrais que par exemple lorsque j'appuie sur le bouton "Estoc" la valeur que va prendre le bouton (nombre aléatoire compris entre 50 et 70) se soustrait au total de point de vie du joueur 2 (PDV2). Et que lorsque j'appuie sur une autre attaque la valeur prise se soustrait à la valeur précédente jusqu'à arriver à 0 où une fenêtre s'ouvrira indiquant le Joueur gagnant.

Discussions similaires

  1. Besoin d'aide jeu du morpion
    Par narcis60floyjo dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 28/02/2008, 15h14
  2. BESOIN AIDE JEU BASKET
    Par stitch666 dans le forum Flash
    Réponses: 4
    Dernier message: 19/09/2007, 17h14
  3. besoin d'aide sur 1 jeu :(
    Par dani_fr dans le forum Flash
    Réponses: 3
    Dernier message: 25/05/2007, 10h13
  4. [Débutant] Besoin d'aide pour modifier un jeu
    Par stoff66 dans le forum Assembleur
    Réponses: 9
    Dernier message: 31/08/2006, 18h24
  5. Besoin d'aide pour un projet de jeu en ligne
    Par FLEO dans le forum Projets
    Réponses: 1
    Dernier message: 21/10/2005, 08h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo