But du programme : simuler le lancer d'un grand nombre de fois le jet de deux dès à 6 faces.
Problème : Les effectifs de mes tirages apparaissent après tous les tirages, je voudrais que le tableau se remplisse au fur et à mesure éventuellement en mettant une petite pause entre deux affichages, si c'est vraiment trop rapide. Cela ne me paraît pas d'une grande complexité, mais je ne trouve rien sur internet et je dois dire que je trouve la POO assez lourdingue. Bon de tout façon, avec la POO ou sans, je ne trouve pas comment indiquer ça à Python. Je ne pense pas que cela soit possible en ligne de commande (ou alors j'ai point trouvé) et c'est pour cela que je me suis lancer la dedans. Bon cela doit être possible, puisque j'ai un exemple de code qui le fait, mais impossible d'adapter mon code.
Code : Tout sélectionner
# /usr/bin/python
# -*- coding:latin-1 -*-
def tirages() :
c = random.randint(1,6)
d = random.randint(1,6)
n=c+d
for j in range(2,13) :
if n==j : s[j]=s[j]+1
return s
class Fenetre(object) :
def __init__(self):
"""Constructeur de la fenêtre principale"""
self.root=Tk()
self.root.title("Simulation de lancer de deux dés")
# Un autre texte
Label(self.root,text='Entrer un nombre entier').\
grid(row = 1,column=1)
# Un champs de saisie
self.entre=Entry(self.root)
self.entre.grid(row=1,column=2)
# Les résultats
Label(self.root,text="Nombre : ").grid(row=1,column=3)
Label(self.root,text="Effectif : ").grid(row=2,column=3)
for j in range(2,13):
Label(self.root,text=j).grid(row=1,column=j+3)
Label(self.root,text='0').grid(row=2,column=j+3)
# Bouton lancer
self.lancer=Button(self.root,text='Lancer',command=self.lanceTirage).\
grid(row=3,column=1)
# Bouton quitter
self.bouton=Button(self.root,text='Quitter',command=self.root.quit).\
grid(row=3,column=2)
self.root.mainloop()
# Fin de la construction de l'objet fenêtre
def lanceTirage(self) :
"Récupère le nombre rentre et lance le tirage"
self.valeur=self.entre.get() # on récupère la chaine de caractère
N=int(self.valeur) # on la transforme en entier
for i in range(1,N+1):
tirages()
for i in range(2,13):
Label(self.root,text=s[i]).grid(row=2,column=i+3)
# Fin du tirage
####### MAIN #####
if __name__ == '__main__' :
import random
from Tkinter import *
s=[0]*13
f=Fenetre()
Olivier