Des Chiffres et des Lettres – premier tirage

08 062011

On va poursuivre le script précédent en connectant le bouton nouveau tirage à un tirage aléatoire de lettres.
Pour cela on va utiliser des labels que l’on remplira par des lettres non accentuées et en majuscules.
On importe random et string :

import string,random

Création des labels :

self.lettre=[]
for i in range(10):
self.lettre.append(gtk.Label(""))
table.attach(self.lettre[i], i+1, i+2, 0, 1)

Remplissage aléatoire :

for i in range(10):
self.lettre[i].set_text(string.ascii_uppercase[random.randint(0,25)])

Code complet :

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
#!/usr/bin/env python
# -*- coding: utf-8 -*-

import pygtk
pygtk.require('2.0')
import gtk
import string,random

class ChiffresEtLettres:

    def delete_event(self, widget, event, data=None):
        print "delete event occurred"
        return False

    def destroy(self, widget, data=None):
        print "destroy signal occurred"
        gtk.main_quit()
    def __init__(self):
        print "_init_"
        # création de la fenêtre
        self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
        self.window.set_title("Des Chiffres et des Lettres")
        self.window.connect("delete_event", self.delete_event)
        self.window.connect("destroy", self.destroy)

        self.window.set_border_width(100)

        table=gtk.Table(11,3,False)

        self.window.add(table)    

       
        #labels tirages
        self.lettre=[]
        for i in range(10):
            self.lettre.append(gtk.Label(""))
            table.attach(self.lettre[i], i+1, i+2, 0, 1)

        # bouton nouveau tirage
        button = gtk.Button("Nouveau tirage")
        button.connect("clicked", self.tiragelettres, None)
        table.attach(button, 0, 1, 0, 1)
       
        #tout montrer
        self.window.show_all()
        self.window.show()

    def main(self):
        gtk.main()
    def tiragelettres(self, widget, data=None):
        print "Nouveau tirage de lettres"
       
        for i in range(10):
            self.lettre[i].set_text(string.ascii_uppercase[random.randint(0,25)])


if __name__ == "__main__":
    cl = ChiffresEtLettres()
    cl.main()

Ce qui donne :

On voit que les tirages sont super chauds : trop de X,Y,ou Z, trop de consonnes, on verra comment améliorer ça plus tard. D’abord on va regarder comment créer un timer et le lier à une barre de progression

Cette entrée a été publiée dans Des Chiffres et des Lettres. Vous pouvez la mettre en favoris avec ce permalien.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>