RE: [python] dotaz-mřížka

Petr Prikryl Prikryl na skil.cz
Středa Únor 16 07:56:39 CET 2005


> From: p.kosina [mailto:gen2n na seznam.cz] 
> [...] Ještě jedno řešení [...] tentokrát okenní:

Dovolil jsem si drobnou úpravu. Protože se jako klíče slovníku
BARVA používala čísla 0 až 2, může se to změnit na jednodušší
strukturu -- seznam. Drobnou úpravou se pak dá zajistit, 
že se použijí všechny barvy, kterými seznam naplním (doplněna
žlutá).

Místo range(DELKA) je lepší používat xrange(DELKA).

Osobně považuji takové příklady za vynikající prostředek
k diskusi. Vždycky se na tom dá najít nějaký chlup (je jich
tam ještě hodně) a vždycky se na tom dá dozvědět něco nového
(i když to sleduji jen pasivně). Navrhuji došolichat ten 
příklad do vzorové podoby (i co se týká stylu), vytvořit
z toho nějaký dokument (HTML) a zařadit to do nějakých 
školiček včetně zpracované podoby nastávající diskuse.
A taky navrhuji, předělat to do ryze české podoby, včetně
českých komentářů a textů. Zvýrazní se tím nové problémy, 
které se v reálných českých aplikacích musí řešit.


from Tkinter import *
import random

KROK=30                                     # velikost jednoho ctverecku
OKRAJ=20                                    # velikost okraje
DELKA=10                                    # pocet poli
BARVA=['white', 'red', 'lightgreen', 'yellow']   # barvicky (free bonus)

def ctverec(x,y,vypln):
    "Vytiskne ctverecek v souradnicich x,y a s vyplni"
    x=x*KROK+OKRAJ
    y=y*KROK+OKRAJ
    canvas.create_rectangle(x,y,x+KROK,y+KROK,fill=BARVA[vypln])

def sachovnice():
    "Vymalovani sachovnice bunek"
    for y in xrange(DELKA):
        for x in xrange(DELKA):
            bakterie=(random.randint(0,len(BARVA)-1))
            ctverec(x,y, bakterie)

# inicializace Tkinter
root=Tk()
root.title("Sachovnice")
frame=Frame(root)
frame.pack()
canvas=Canvas(frame, bg='white', 
              height=DELKA*KROK+2*OKRAJ, width=DELKA*KROK+2*OKRAJ)
canvas.pack()

# vykresleni sachovnice
sachovnice()
root.mainloop()

> -----Original Message-----
> From: p.kosina [mailto:gen2n na seznam.cz] 
> Sent: Monday, February 14, 2005 7:31 AM
> To: python na py.cz
> Subject: Re: [python] dotaz-mřížka
> 
> Ještě jedno řešení, jestli tu  ještě jsi, tentokrát okenní:
> 
> from Tkinter import *
> import random
> 
> KROK=30                                     # velikost 
> jednoho ctverecku
> OKRAJ=20                                    # velikost okraje
> DELKA=10                                    # pocet poli
> BARVA={0:'white',1:'red', 2:'lightgreen'}   # barvicky (free bonus)
> 
> def ctverec(x,y,vypln):
>      "Vytiskne ctverecek v souradnicich x,y a s vyplni"
>      x=x*KROK+OKRAJ
>      y=y*KROK+OKRAJ
>      canvas.create_rectangle(x,y,x+KROK,y+KROK,fill=BARVA[vypln])
> 
> def sachovnice():
>      "Vymalovani sachovnice bunek"
>      for y in range(DELKA):
>          for x in range(DELKA):
>                  bakterie=(random.randint(0,2))
>                  ctverec(x,y, bakterie)
> [...]



Další informace o konferenci Python