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

Python Discussion :

Besoin d'aide pour tkinter jeu taquin


Sujet :

Python

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2016
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Besoin d'aide pour tkinter jeu taquin
    Bonjour, je suis actuellement en première année de licence, et j'ai un projet de fin d'année à réaliser en informatique : le jeu taquin

    Mon jeu fonctionne correctement en version "texte" mais je dois maintenant m'attaquer à la phase graphique, pourtant pas compliqué puisse tout est quasiment donnée dans le sujet
    Sauf que je n'ai jamais fait de graphisme avec tkinter et je suis perdue

    Je vous donne donc le code que le prof nous a donné ainsi que le sujet (les trucs a modifier dans le code)

    Je suis preneuse de toute aide !
    Merci d'avance


    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
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    #!/usr/bin/python3
    # -*- coding: utf-8 -*-
     
    """
    :mod: module
     
    :author: FIL - IEEA - Univ. Lille1.fr <http://portail.fil.univ-lille1.fr>_
    :completed by:
     
    :date: 2015, december
     
    Interface graphique pour jouer eu taquin
    """
     
    from tkinter import *
    import tkinter.filedialog as tkfdial
     
    from taquin import *
     
    # nbre de lignes et de pièces par lignes du taquin
    DIM_TAQUIN = 4
    # dimension en pixels de la taille de l'image du taquin
    TAILLE_TAQUIN = 600
    # taille d'une pièce carrée du taquin (en pixels)
    TAILLE_PIECE = TAILLE_TAQUIN // DIM_TAQUIN
    GEOMETRIE = '{:d}x{:d}'.format (30 + 2 * DIM_TAQUIN * TAILLE_PIECE,
                                    52 + DIM_TAQUIN * TAILLE_PIECE)
     
    image = None
    image_decoupee = [None for k in range(DIM_TAQUIN * DIM_TAQUIN)]
    taquin = None
    fenetre = None
    case_vide = None
    puzzle = None
    modele = None
     
     
     
    def cases_voisines (c1, c2):
        """
        renvoie 
        - True si les cases c1 et c2 sont voisines
        - False sinon
     
        : CU: aucune
     
        :Exemples:
        >>> cases_voisines ((1,2), (1,3))
        True
        >>> cases_voisines ((1,2), (1,1))
        True
        >>> cases_voisines ((1,2), (0,2))
        True
        >>> cases_voisines ((1,2), (2,2))
        True
        >>> cases_voisines ((1,2), (2,1))
        False
        """
        if c1[0]==c2[0]:
            if c1[1]+1==c2[1]:
                return True
            elif c1[1]-1==c2[1]:
                return True
            else:
                return False
        if c1[1]==c2[1]:
            if c1[0]+1==c2[0]:
                return True
            elif c1[0]-1==c2[0]:
                return True
            else:
                return False
        else:
            return False
     
     
     
     
    def afficher_pieces ():
        """
        affiche les pièces du puzzle.
        """
        for l in range (DIM_TAQUIN):
            for c in range (DIM_TAQUIN):
                num_piece = numero_piece (taquin, c, l)
    #a modifier
                piece = image_decoupee [num_piece - 1]
                puzzle.create_image (c * (TAILLE_PIECE + 1),
                                     l * (TAILLE_PIECE + 1),
                                     anchor = NW,
                                     image = piece)
     
     
    def melanger ():
        """
        mélange les pièces du taquin
        """
        if image != None:
            pass
     
    def sous_image (src,xA,yA,xB,yB):
        """
        renvoie un morceau rectangulaire de l'image ``src``
        depuis le point supérieur gauche de coordonnées (xA,yA)
        au point inférieur droit de coordonnées (xB,yB).
        """
        pce = PhotoImage ()
        pce.tk.call (pce, 'copy', src,
                     '-from', xA, yA, xB, yB, '-to', 0, 0)
        return pce
     
    def choix_image ():
        """
        permet de choisir via une boîte de dialogues un fichier contenant une image.
     
        Ce fichier doit être au format PNG ou GIF, et l'image qu'il contient doit 
        être au moins de taille 600x600.
     
        L'image choisie est découpée en morceaux.
        Les morceaux sont affichée à gauche, et l'image originale à droite.
        """
        global image, taquin
        taquin = cree_taquin (DIM_TAQUIN)
        imagename = tkfdial.askopenfilename (title = 'Choisir une image',
                                             filetypes = [('PNG','.png'),('GIF','.gif')])
        image = PhotoImage (file = imagename)
        for k in range (len(image_decoupee)):
            l = k // DIM_TAQUIN
            c = k % DIM_TAQUIN
            image_decoupee[k] = sous_image (image, c * TAILLE_PIECE, l * TAILLE_PIECE,
                                            (c+1) * TAILLE_PIECE, (l+1) * TAILLE_PIECE)
        afficher_pieces ()
        modele.create_image (0,0,anchor = NW, image = image)
     
     
    def bouger_piece (event):
        """
        bouge la pièce désignée par le clic de souris (event),
        uniquement si cette pièce est voisine de la case vide.
        """
        c = event.x // (TAILLE_PIECE + 1)
        l = event.y // (TAILLE_PIECE + 1)
        # A COMPLETER
        afficher_pieces ()
     
     
    def main ():
        global fenetre, case_vide, puzzle, modele
     
     
        # La fenêtre principale
        fenetre = Tk ()
        fenetre.title ('Jeu du taquin')
        fenetre.geometry (GEOMETRIE)
        fenetre.resizable (width=False, height= False)
     
        # L'image représentant la case vide
        case_vide = sous_image(PhotoImage(file='images/case_vide_bleue.gif'),
                               0, 0,
                               TAILLE_PIECE-1, TAILLE_PIECE-1)
     
        # La zone gauche contenant le puzzle
        puzzle = Canvas (fenetre, width = TAILLE_PIECE * DIM_TAQUIN + DIM_TAQUIN - 1,
                         height = TAILLE_PIECE * DIM_TAQUIN +  DIM_TAQUIN - 1,
                         background = 'blue')
        puzzle.bind ('<Button-1>',bouger_piece)
        puzzle.grid (row=0, column=0, rowspan = DIM_TAQUIN, columnspan = DIM_TAQUIN,
                     padx = 6, pady = 8)
     
        # La zone droite contenant l'image modèle à reconstituer
        modele = Canvas (fenetre, width = TAILLE_PIECE * DIM_TAQUIN,
                         height = TAILLE_PIECE * DIM_TAQUIN,
                         background = 'black')
        modele.grid (row=0, column=DIM_TAQUIN, rowspan = DIM_TAQUIN,
                     columnspan = DIM_TAQUIN, padx=6, pady=8)
     
        # La zone du bas contenant les boutons
        Bouton_choix = Button (fenetre, text ='Choix image',
                               command = choix_image)
        Bouton_choix.grid (row = DIM_TAQUIN, column = 1, padx = 5, sticky = N)
     
        Bouton_melanger = Button (fenetre, text ='Mélanger',
                                  command = melanger)
        Bouton_melanger.grid(row = DIM_TAQUIN, column = 2)
     
        Bouton_quitter = Button (fenetre, text ='Quitter',
                                 command = fenetre.destroy)
        Bouton_quitter.grid(row = DIM_TAQUIN, column = 3)
     
     
        fenetre.mainloop ()


    Et voila le travail a réalisé :

    Le fichier taquin_gr.py doit être complété par vos soins en

    modifiant un peu la fonction afficher_pieces de sorte que la case vide soit représentée par un carré bleu (variable ̀̀case_vide``) ;
    complétant la fonction melanger (remplacer le pass par ce qu’il faut) ;
    compléter la fonction cases_voisines pour qu’elle satisfasse sa spécification ;
    compléter la fonction bouger_piece.
    Vous pourrez ensuite revenir sur les possibilités

    d’abandonner
    de compter le nombre de coups joués.

  2. #2
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2016
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Polytech ou Lille 1? ahah

    Sinon je peux voir à ta façon de rédiger que tu n'es pas bête , la partie graphique est très simple , faut juste se plonger dedans. Exécute le programme taquin_gr.py fourni et regarde dans le shell là où ça plante , j'ai fait comme ça et mon taquin marche à merveille. Personne ici ne fera le taff à ta place.
    Cordialement
    Un peip 14

Discussions similaires

  1. besoin d'aide pour un jeu
    Par pearl9108 dans le forum Débuter
    Réponses: 3
    Dernier message: 12/01/2011, 14h11
  2. Réponses: 1
    Dernier message: 02/06/2008, 21h31
  3. besoin d'aide pour jeu d'awalé
    Par Dabech dans le forum Débuter avec Java
    Réponses: 6
    Dernier message: 12/04/2008, 23h41
  4. [Débutant] Besoin d'aide pour modifier un jeu
    Par stoff66 dans le forum Assembleur
    Réponses: 9
    Dernier message: 31/08/2006, 19h24
  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, 09h55

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