Advertisement
Guest User

Untitled

a guest
Jan 23rd, 2018
50
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.75 KB | None | 0 0
  1. # Juste prix Version 3.5
  2. from random import*
  3.  
  4. def init():
  5. '''affecte 5 ou 10 à essai selon le niveau choisi'''
  6. global niveau, essai
  7. while niveau!=1 and niveau!=2:
  8. niveau=int(input('Niveau : Normal= 1 ou Difficile = 2'))
  9.  
  10. if niveau==2:
  11. essai=5
  12. reponse['text']='Vous avez 5 essais'
  13. else:
  14. reponse['text']='Vous avez 10 essais'
  15.  
  16. def affiche_test(prop,essai):
  17. ''' affiche un message de réussite ou d'echec, selon la proposition et le nombre d'essais, '''
  18. global prix, total
  19. if essai==0: # fin de partie
  20. reponse['text']="Perdu, c'était "+str(prix)+' €'
  21. fin_partie()
  22.  
  23. elif prop < prix : # Comparaison avec le prix à trouver
  24. reponse['text']="C'est plus de "+ str(prop)
  25. elif prop > prix :
  26. reponse['text']="C'est moins de "+ str(prop)
  27. else:
  28. reponse['text']="Bravo vous avez gagné \n "+str(prix*niveau)+' €'+" en "+str(5-essai)+" essai(s)"
  29. total=total+prix
  30. fin_partie()
  31.  
  32. def fin_partie():
  33. ''' fin de partie : continuer ou fin de jeu et quitter'''
  34. global niveau, objet,total,essai
  35. vitrine.remove(objet) # supprime l'objet
  36.  
  37. if len(vitrine)==0: # si plus d'objet, c'est terminé
  38. titre_objet['text']='Gain total: '+str(total)+'€'
  39. bouton['text']='Quitter'
  40. bouton['command']=fen.destroy
  41.  
  42. else: # sinon réinitialise le nombre d'essais et l'objet
  43. if niveau==2: essai=5
  44. choix_vitrine()
  45.  
  46. def jouer():
  47. ''' boucle tant que prix n'est pas trouvé'''
  48. global prop, prix, essai
  49.  
  50. if prop != prix or essai>=1:
  51. prop=int(entre_prix.get())
  52. essai = essai -1
  53. affiche_test(prop,essai)
  54. entre_prix.delete(0,END) # efface le contenu de l'entry
  55.  
  56. ### nouvelle fonction
  57. def choix_vitrine():
  58. ''' affiche au hasard un objet de la vitrine et récupère son prix'''
  59. global prix, objet
  60. objet=choice(vitrine) # récupère un objet et son prix
  61. print(objet[0],objet[1]) # pour les tests
  62.  
  63. affiche_objet['text']=objet[0].upper() # affiche l'objet en majuscules
  64. prix=objet[1] # affecte le prix de l'objet au prix à trouver
  65.  
  66. #### programme principal ----------------------------------------------
  67.  
  68. # Liste des objets, et des prix
  69. vitrine=[['une TV \n grand écran',490], ['un smartphone',320],['un week-end \n Balnéo',430],['un VTT',260],['un spectacle', 110]]
  70.  
  71. prop = 0
  72. essai = 5
  73. niveau=0
  74. total=0
  75. ###### Interface-------------------------------------------
  76. from tkinter import *
  77. fen=Tk()
  78. fen.title("LE JUSTE PRIX")
  79.  
  80. # la vitrine ( texte et objet)
  81. titre_objet=Label(fen,text="GAGNEZ CET OBJET \n DE LA VITRINE",font="arial 15 bold", fg='purple',width=20)
  82. titre_objet.grid(row=0,column=0,padx=20,pady=20)
  83.  
  84. affiche_objet=Label(fen,text="?????????",font="arial 15 bold",fg='purple',width=15)
  85. affiche_objet.grid(row=0,column=1,padx=20,pady=20)
  86.  
  87. # la question posée
  88. titre_prix=Label(fen,text="Proposez un prix \n de 100 à 500 €",font="arial 15 bold", fg='purple',width=20)
  89. titre_prix.grid(row=1,column=0,padx=20,pady=20)
  90.  
  91. # le titre de la zone réponse
  92. reponse=Label(fen,text="Réponse",font="arial",bg='white',fg='purple',height=2, width=20)
  93. reponse.grid(row=2,column=0,padx=20,pady=20)
  94.  
  95. # la zone réponse
  96. entre_prix=Entry(fen,font="arial 15 bold",fg='purple',width=10 )
  97. entre_prix.grid(row=1,column=1,padx=20,pady=20)
  98.  
  99. # le bouton de lancement du jeu et quitter à la fin
  100. bouton=Button(fen,text="Jouer",width=10,font="arial 15 bold",bg='purple',fg='white',command=jouer)
  101. bouton.grid(row=2,column=1,padx=20,pady=20)
  102.  
  103. ## appel des fonctions ( niveau et objet à trouver)
  104. init()
  105. choix_vitrine()
  106.  
  107. fen.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement