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

Programmation multimédia/Jeux Python Discussion :

Projet de jeu de Puissance 4 sur Tkinter


Sujet :

Programmation multimédia/Jeux Python

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    février 2021
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : février 2021
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Projet de jeu de Puissance 4 sur Tkinter
    Bonjour, j'ai un projet NSI à rendre pour bientôt qui consiste à créer un jeu puissance 4 via python (tkinter) et je bloque à certains endroits:
    Tout d'abord j'ai crée la fonction "player" pour determiner quelle couleur doit être utilisée mais je ne sais pas si celle-ci est correcte, ensuite j'ai crée une fonction detec_clic pour pointer la souris cependant, lorsque je l'utilise dans la fonction "mouvement" qui est censée crée un pion à l'endroit ou le clique à été éffectué, rien ne se passe, je ne comprend pas pourquoi.
    Enfin je bloque vers la fin, la ou il y'a les listes cercles et tableau, tableau est censé représenter le plateau de jeu et lorsque un pion est placé, la liste est censée transformer le zéro de l'emplacement souhaité par un 1 (équipe jaune) ou un 2 (équipe rouge) mais je ne sais pas comment faire pour la suite. La liste cercle, elle, comprend les coordonées des 42 différents cercles qui constituent le plateau de jeu et elle est censée aider la liste tableau à effectuer sa tâche.

    Merci de votre aide !

    le code est en pièce jointe mais le voici quand même:

    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
    127
    from tkinter import*
     
    from random import*
     
    ##création d'une fenêtre
    fen=Tk()
    fen.title("Puissance 4")
     
    ##création du canevas
    can=Canvas(fen,width=710, heigh=610, bg="blue")
    can.pack()
     
    ##fonction qui permet d'alterner les couleurs à chaque clique grâce à "couleurs.reverse()"
    couleurs=[('red',1),('yellow',2)]
    def player(event):
        Aléatoire=randint(1,2)
        if Aléatoire==1:
            player='red'
        else:
            player='yellow'
    couleurs.reverse()
     
     
    ##fonction qui détecte le clique et éxécute la fonction "mouvement"
    def detec_clic(event):
        x , y = event.x, event.y
        command=mouvement
     
    can.bind("<Button-1>", detec_clic,player)
     
    ##fonction qui fait apparître un pion à la case cliquéé
    def mouvement(event):
        x,y, = event.x, event.y
        if detec_clic >0 and detec_clic <700 :
            print("d'accord")
    ##        can.create_oval(event.x, event.y,fill="player")
        else:
            print("oups, il semblerait qu'il y'ai une erreur")
        command=tableur
     
     
     
     
     
     
    ##création de la grille
    x=00
    y=00
    def grille():
        can.delete(all)
        global x, y
    for i in range(6):
        for j in range(7):
            can.create_oval(x,y,x+100,y+100,fill='white')
     
            x=x+100
        y=y+100
        x=00
     
     
    ##compteur_pions_réunis=0
    ##compteur_pion_rouge=0
    ##compteur_pion_jaune=0
    ## if compeur_pions_réunis>=42:
    ##    print("match nul")
     
    ##liste contenant chacun des 42 cercles ainsi que ses coordonnés
    cercles={1:(0,0,100,100),
             2:(0,100,100,200),
             3:(0,200,100,300),
             4:(0,300,100,400),
             5:(0,400,100,500),
             6:(0,500,100,600),
             7:(100,0,200,100),
             8:(100,100,200,200),
             9:(100,200,200,300),
             10:(100,300,200,400),
             11:(100,400,200,500),
             12:(100,500,200,600),
             13:(200,0,300,100),
             14:(200,100,300,200),
             15:(200,200,300,300),
             16:(200,300,300,400),
             17:(200,400,300,500),
             18:(200,500,300,600),
             19:(300,0,400,100),
             20:(300,100,400,200),
             21:(300,200,400,300),
             22:(300,300,400,400),
             23:(300,400,400,500),
             24:(300,500,400,600),
             25:(400,0,500,100),
             26:(400,100,500,200),
             27:(400,200,500,300),
             28:(400,300,500,400),
             29:(400,400,500,500),
             30:(400,500,500,600),
             31:(500,0,600,100),
             32:(500,100,600,200),
             33:(500,200,600,300),
             34:(500,300,600,400),
             35:(500,400,600,500),
             36:(500,500,600,600),
             37:(600,0,700,100),
             38:(600,100,700,200),
             39:(600,200,700,300),
             40:(600,300,700,400),
             41:(600,400,700,500),
             42:(600,500,700,600)}
     
     
    ##Liste qui représente le tableau, le but est que le programme se "souvienne" des choix des joueurs
    tableau=[   [0, 0, 0, 0, 0, 0],
                [0, 0, 0, 0, 0, 0],
                [0, 0, 0, 0, 0, 0],
                [0, 0, 0, 0, 0, 0],
                [0, 0, 0, 0, 0, 0],
                [0, 0, 0, 0, 0, 0],
                [0, 0, 0, 0, 0, 0]]
     
    def tableur():
     
     
    def score():
        return (tableau)
     
    fen.mainloop()
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    juin 2008
    Messages
    17 724
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : juin 2008
    Messages : 17 724
    Points : 30 596
    Points
    30 596
    Par défaut
    Salut,

    Citation Envoyé par ZaiKoTy2 Voir le message
    Tout d'abord j'ai crée la fonction "player" pour determiner quelle couleur doit être utilisée mais je ne sais pas si celle-ci est correcte, ensuite j'ai crée une fonction detec_clic pour pointer la souris cependant, lorsque je l'utilise dans la fonction "mouvement"....
    La commande "print" permet d'afficher du texte. Elle est magique parce qu'elle vous permet de répondre aux questions que vous vous posez sur le fonctionnement de votre programme.

    Par exemple, ajouter print(<nom de la fonction>) au début de vos fonctions player, detec_clic, mouvement et vous saurez si elles sont bien appelées quand et comme vous le souhaitez. Vous pouvez aussi l'utiliser pour afficher la valeur de certaines variables.

    Sans çà comment savoir si le code qu'on écrit bien ce qu'on attend? Et faire çà c'est la base de tout boulot: s'assurer que le temps qu'on a galéré à... produit le résultat attendu sinon pourquoi s'agiter si c'est pour faire n'importe quoi?

    Citation Envoyé par ZaiKoTy2 Voir le message
    Enfin je bloque vers la fin, la ou il y'a les listes cercles et tableau,
    Changer la couleur du cercle sur lequel le joueur clique (avec la bonne couleur) serait déjà un bon début... pour la fin, il y a du chemin à faire (et du temps à passer dans les tutos pour revoir les bases).

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    février 2021
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : février 2021
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    salut, merci beaucoup, je partais du principe que je devais créer un cercle a l'emplacement du clique mais en réalité, il suffit simplement de changer la couleur si j'ai bien compris ton message, merci beaucoup !!!!

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    juin 2008
    Messages
    17 724
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : juin 2008
    Messages : 17 724
    Points : 30 596
    Points
    30 596
    Par défaut
    Citation Envoyé par ZaiKoTy2 Voir le message
    salut, merci beaucoup, je partais du principe que je devais créer un cercle a l'emplacement du clique mais en réalité, il suffit simplement de changer la couleur si j'ai bien compris ton message, merci beaucoup !!!!
    Lorsque l'utilisateur clique, il faut qu'il voit qu'il se passe quelque chose (c'est interactif) et ici, à part voir que la couleur change...

    Changer la couleur du disque existant ou ajouter un disque d'une autre couleur au dessus aura le même effet visuel: la couleur change. Le code sera différent, avec, dans chaque cas, des avantages et des inconvénients.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. Besoins d'aide pour un projet portant sur du hdmi
    Par C L'XTAZ dans le forum Windows 10
    Réponses: 0
    Dernier message: 05/10/2019, 17h10
  2. Besoin d'aide pour un exercice sur les registres
    Par zakuza dans le forum Assembleur
    Réponses: 5
    Dernier message: 14/04/2006, 14h23
  3. Besoin d'aide pour un projet en vb6
    Par Tyrael62 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 14/01/2006, 05h25
  4. Besoin d'aide pour un projet
    Par ZiMo dans le forum Linux
    Réponses: 9
    Dernier message: 24/10/2005, 00h28
  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