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