Lena
-
Modifié le 26 avril 2020 à 16:35
Whismeril
Messages postés18416Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention 1 juin 2023
-
28 avril 2020 à 15:01
Bonjour,
Je suis en terminale S et j'ai choisie la spécialité ISN ( malgré un niveau très faible en informatique). Avec mes camarades nous avons décidé pour notre projet de créer un jeu du petit bac. nous avons déjà réalisé une partie du programme mais nous bloquons sur le chronomètre ( qui doit s’arrêter au bout de 30 sec pour mettre fin au jeu) et sur comment vérifier les réponses du joueur ( fonction vérification). Cela fait plusieurs semaine que nous bloquons dessus, pourriez vous nous aider ? je vous mets notre programme.
(Nb : excusez moi pour les fautes si il y en a )
# Import des modules
from random import *
from tkinter import *
from time import *
# fonctions pour la création du petit bac
def initialisation():
liste =['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O',
'P','Q','R','S','T','U','V','W','X','Y','Z']
letter = choice(liste)
liste2 =['Metier','Capital','Departement','Etats des etats unis','Animaux','Fruit',
'Legume','Pays','Sport','Moyen de transport','Arbre','Auteur.e','Element de chimie',
'Couleur','Fleur','Instrument de musique','Outil','Verbe irregulier anglais']
liste3 = []
for i in range(3):
categorie=choice(liste2)
liste3.append(categorie)
liste2.remove(categorie)
return letter,liste3
def verification():
""" permet de verrifier les reponse du joueur"""
points = 0
for i in range(3):
categorie = listecat[i]
mon_fichier = open(categorie, "r")
contenu = mon_fichier.read()
liste = contenu.split("\n")
mon_fichier.close()
i = 0
listemot=reponse.get
mot=listemot[i]
while i != len(liste) :
if liste[i] == mot :
points = points + 1
else :
i = i + 1
return points
##def chrono():
## global actu,fin
## reste = int(round(fin-actu))
## if stop == True :
## bouton.config(text=" bien jouer !!")
## else :
## if reste>0 :
## temps.config(text='Compte à rebour : '+str(reste)+' s')
## actu=time()
## fenetre.after(1000,chrono)
## else :
## temps.config(text='Compte à rebour : '+str(reste)+' s')
## bouton.config(text="dommage !!")
##def desamorce() :
## global stop
## stop=True
def affichecategories(liste):
cat1 = Label(frame4, text = liste[0], relief = GROOVE, fg = 'black')
cat2 = Label(frame4, text = liste[1], relief = GROOVE, fg = 'black')
cat3 = Label(frame4, text = liste[2], relief = GROOVE, fg = 'black')
cat1.grid(column=1,row=1)
cat2.grid(column=1,row=2)
cat3.grid(column=1,row=3)
# Fonctions de gestion de l'interface graphique
def retour_accueil():
""" fonction qui permet de reinstaller la page d'accueil """
for widget in frame.winfo_children():
widget.pack_forget()
frame1.pack_forget()
frame2.pack_forget()
frame3.pack_forget()
frame4.pack_forget()
frame.pack(side=TOP,padx=10,pady=10)
bouton1 = Button(frame, text='Jeu 1 : Le Petit Bac', command = installe_jeu1_consignes)
bouton2 = Button(frame, text='Quitter', command = fenetre.destroy)
bouton1.pack(side = TOP, padx = 1, pady = 1)
bouton2.pack(side = TOP, padx = 1, pady = 3)
def installe_jeu1_consignes():
""" fonction qui permet d'installer la page des consignes du petit bac """
for widget in frame.winfo_children():
widget.pack_forget()
frame4.pack_forget()
frame1.pack(side=TOP,padx=10,pady=10)
frame2.pack(side=TOP,padx=11,pady=11)
frame3.pack(side=TOP,padx=12,pady=12)
def installe_jeu1():
""" fonction qui permet d'installer le jeu 1 """
for widget in frame.winfo_children():
widget.pack_forget()
frame1.pack_forget()
frame2.pack_forget()
frame3.pack_forget()
frame4.pack(side=TOP,padx=10,pady=10)
# Construction de l'interface graphique
fenetre = Tk()
# configuration de la fenetre
w, h = fenetre.winfo_screenwidth(), fenetre.winfo_screenheight()
largeur = str(w)
hauteur = str(h)
fenetre.geometry(largeur + "x" + hauteur)
fenetre.title("Mini jeu")
frame = Frame(fenetre,relief=GROOVE)
frame.pack(side=TOP,padx=10,pady=10)
bouton1 = Button(frame, text='Jeu 1 : Le Petit Bac', command = installe_jeu1_consignes)
bouton2 = Button(frame, text='Quitter', command = fenetre.destroy)
bouton1.pack(side = TOP, padx = 1, pady = 1)
bouton2.pack(side = TOP, padx = 1, pady = 3)
# création de la page consignes petit bac
frame1 = Frame(frame,borderwidth=2,relief=GROOVE)
Label(frame1,text="But du jeu :").pack(padx=450,pady=10)
Label(frame1,text=" Une catégorie vous sera proposée (mammifère, fruit,\
légume, sport,...) ainsi qu'une lettre de l'alphabet. Le but du jeu est de\
trouver un mot appartenant à la catégorie proposée et commencant par la\
lettre demandée").pack(padx=10,pady=1)
Label(frame1,text="Consignes :").pack(padx=450,pady=10)
Label(frame1,text= "-Ecrire un mot qui commence par la lettre du dessus et\
qui correspond à la catégorie de gauche").pack(padx=10,pady=1)
Label(frame1,text="-Mettre une réponse par case").pack(padx=10,pady=1)
Label(frame1,text="-/!\ Ne pas mettre de majuscules", fg = 'red').pack(padx=10,pady=1)
Label(frame1,text="-Laisser un espace entre les noms composés", fg = 'red').pack(padx=10,pady=1)
frame2 = Frame(frame,borderwidth=2,relief=GROOVE)
bouton1 = Button(frame2, text='Jouer', command = installe_jeu1)
bouton1.pack()
frame3 = Frame(frame,borderwidth=2,relief=GROOVE)
bouton2 = Button(frame3, text='Accueil', command = retour_accueil)
bouton2.pack()
# création du petit bac
frame4 = Frame(frame,relief=GROOVE)
reponse1 = Entry(frame4)
reponse2 = Entry(frame4)
reponse3 = Entry(frame4)
reponse1.grid(column=2, row=1)
reponse2.grid(column=2, row=2)
reponse3.grid(column=2, row=3)
bouton1 = Button(frame4, text='valider', command = verification)
bouton2 = Button(frame4, text='Consignes', command = installe_jeu1_consignes)
bouton3 = Button(frame4, text='Accueil', command = retour_accueil)
bouton1.grid(column=2, row=4)
bouton2.grid(column=2, row=5)
bouton3.grid(column=2, row=6)
### timer
##temps=Label(frame4,text="COMPTE A REBOUR ",fg='red')
##temps.grid(column=1, row=0)
##stop=False
##actu = time()
##fin= time()+30
##chrono()
# lettre
lettre = initialisation()[0]
lettre = Label(frame4, text=lettre, relief=RIDGE)
lettre.grid(column=2, row=0)
# categorie
listecat = initialisation()[1]
affichecategories(listecat)
fenetre.mainloop()
Whismeril
Messages postés18416Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention 1 juin 2023624 26 avril 2020 à 15:43
Bonjour
en Python, il y a un truc primordial => l'indentation.
CodesSourceS, comme tous les sites de code qui se respectent, dispose d'un outil permettant de la conserver: les balises de code.
Voici un petit tuto sur leur bonne utilisation https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Tu as encore le temps de modifier ton message et le rendre exploitable pour ceux qui pourraient t'aider
Pour la vérification, je n'ai pas d'éditeur Python chez moi et les 2 online que j'ai essayé n'acceptent pas ton code.
Comme je n'ai jamais codé avec tkinter, je ne sais pas trop d'où ça vient.
Cependant, ici déjà je m'interroge (voir le commentaire dans le code
def verification():
""" permet de verrifier les reponse du joueur"""
points = 0
for i in range(3):
categorie = listecat[i] #elle sort d'où la collection listecat
mon_fichier = open(categorie, "r")
contenu = mon_fichier.read()
liste = contenu.split("\n")
mon_fichier.close()
i = 0
listemot=reponse.get
mot=listemot[i]
while i != len(liste) :
if liste[i] == mot :
points = points + 1
else :
i = i + 1
return points
Lena39
Messages postés1Date d'inscriptiondimanche 26 avril 2020StatutMembreDernière intervention28 avril 2020 28 avril 2020 à 14:26
Merci beaucoup pour votre aide !
Pour la collection listecat[i] je ne sais pas vraiment car c'est mon prof qui m'a donné cette partie du programme.