pseudolong
Messages postés1Date d'inscriptionvendredi 19 mai 2017StatutMembreDernière intervention19 mai 2017
-
Modifié le 19 mai 2017 à 00:23
BenjouilleLaFripouille
Messages postés74Date d'inscriptiondimanche 1 mars 2015StatutMembreDernière intervention20 mai 2017
-
20 mai 2017 à 22:04
Bonjour, moi et mes partenaires nous avons besoin d'aide pour notre isn .
Dans mon mémory j'ai intégré un chronomètre mais je n'arrive pas à le placer ou je veux pour qu'il soit visible . (voir la flèche)
Merci de bien vouloir nous aider parce que nous sommes dans une impasse et je trouve ça dommage de laisser tomber ce chronomètre.
from tkinter import * from random import randint, shuffle from timeit import default_timer
# ----- variables globales --------------------------------------------------- images = [] # contient les liens aux fichiers images cartes = [] # contient le lien vers l'image des différentes cartes cartes_jouees = [] # contient les cartes jouées nb_lignes, nb_colonnes = 5, 4 joueur_actuel = 0 score = [0,0] fini = False peut_jouer = True
# ----- Images ---------------------------------------------------------------- def charger_images(): del images[:] # vide la liste nb_images = 21 # l'image no 0 est le dos des cartes choixCartes = [] choixCartes.append(0)#ajouter un element a la fin de la liste i=0 while i < nb_images-1: # tirage au sort des cartes à utiliser x = randint(1, nb_images-1) #randomint pour le tirage aleatoire if x not in choixCartes: choixCartes.append(x) i += 1 for i in range(nb_images): # importation des images nom = 'carte-' + str(choixCartes[i]) + '.gif' image = PhotoImage(file = nom) images.append(image)
# ----- Melange des cartes ----------------------------------------------------- def melanger_cartes(): global nb_colonnes, nb_lignes, cartes nb_cartes = nb_colonnes * nb_lignes cartes=list(range(1,nb_cartes//2+1))*2 shuffle(cartes) #melange dans cartes
# ----- Retourne les deux cartes à la fin de la sélection ---------------------- def gerer_tirage(): global nb_colonnes, nb_lignes, cartes_jouees global joueur_actuel, fini, peut_jouer if cartes[cartes_jouees[0]-1] == cartes[cartes_jouees[1]-1]: # enlève les cartes identiques. Le joueur actuel reste le même canvas.delete(cartes_jouees[0]) canvas.delete(cartes_jouees[1]) score[joueur_actuel] += 1 else: # retourne les cartes différentes. Le joueur actuel change canvas.itemconfig(cartes_jouees[0], image = images[0]) canvas.itemconfig(cartes_jouees[1], image = images[0])
peut_jouer = True # réactive l'effet du clic de la souris if joueur_actuel == 0: # celui qui joue est en orange points_joueur1.config(bg = 'orange')
else:
points_joueur1.config(bg = 'white') if score[0] + score[1] == (nb_colonnes*nb_lignes)//2: fini=True # afficher le résultat de la partie if score[0] > score[1]: texte = "Facile non ?"
# ----- Retourne la carte sélectionnée ----------------------------------------- def cliquer_carte(event): global fini, plateau, cartes_jouees, peut_jouer if len(cartes_jouees) < 2: carteSel = canvas.find_closest(event.x, event.y) carteID = carteSel[0] if fini: fini = False reinit() else: canvas.itemconfig(carteID, image = images[cartes[carteID-1]]) # montre la carte if len(cartes_jouees) == 0: cartes_jouees.append(carteID) # enregistre la carte jouée elif carteID != cartes_jouees[0]: # ne pas cliquer 2x sur la même carte ! cartes_jouees.append(carteID) if peut_jouer and len(cartes_jouees) == 2: peut_jouer = False # désactive l'effet du clic de la souris plateau.after(1500,gerer_tirage) # patiente 1,5 secondes avant de continuer
# ----- Change la taille du plateau de jeu ------------------------------------- def jeu5x4(): global nb_colonnes nb_colonnes = 4 reinit()
def jeu5x6(): global nb_colonnes nb_colonnes = 6 reinit()
def jeu5x8(): global nb_colonnes nb_colonnes = 8 reinit()
# ----- création des menus et sous-menus ------------------------------------------ def creer_menus(fen): top = Menu(fen) fen.config(menu=top)
jeu = Menu(top, tearoff=False) top.add_cascade(label='Jeu', menu=jeu) jeu.add_command(label='Nouvelle partie', command=reinit)
submenu=Menu(jeu, tearoff=False) jeu.add_cascade(label='Dimensions', menu=submenu) submenu.add_command(label='5 x 4', command=jeu5x4) submenu.add_command(label='5 x 6', command=jeu5x6) submenu.add_command(label='5 x 8', command=jeu5x8)
# ----- Création du canvas -------------------------------------------------------- def creer_canevas(fen, col, lig): return Canvas(fen, width=(110*col)+10, height=(110*lig)+10, bg='white')
# ----- Modifier le canvas -------------------------------------------------------- # Redémarre une partie et change éventuellement la difficulté def reinit(): global canvas, joueur_actuel, score, nb_lignes, nb_colonnes joueur_actuel = 0 score =[0,0] del cartes[:] del cartes_jouees[:] canvas.destroy() canvas = creer_canevas(plateau, nb_colonnes, nb_lignes) canvas.pack(side = TOP, padx = 5, pady = 5) canvas.bind("<Button-1>", cliquer_carte) # permet le clic sur les cartes melanger_cartes() for i in range(nb_colonnes): # dessin des cartes retournées for j in range(nb_lignes): canvas.create_image((110*i)+60, (110*j)+60, image=images[0]) text1 = 'Joueur 1 : ' + str(score[0]*2)
# ----- Programme principal ---------------------------------------------------- fenetre = Tk() fenetre.title("Memory") creer_menus(fenetre) # création du canvas dont la taille dépend du nombre de cartes plateau = Frame(fenetre) plateau.pack() canvas=creer_canevas(plateau, nb_colonnes, nb_lignes) canvas.pack(side = TOP, padx = 2, pady = 2) points_joueur1 = Label(fenetre, text = "Joueur 1 : 0", bg="orange", font="Helvetica 16") points_joueur1.pack(pady = 2, side = LEFT)
charger_images() melanger_cartes() for i in range(nb_colonnes): # dessin des cartes retournées for j in range(nb_lignes): canvas.create_image((110*i)+60, (110*j)+60, image = images[0]) canvas.bind("<Button-1>", cliquer_carte) # permet le clic sur les cartes