Random Rectangle

Code-Stücke können hier veröffentlicht werden.
Benutzeravatar
Marz
User
Beiträge: 7
Registriert: Sonntag 19. Dezember 2004, 20:22

Random Rectangle

Beitragvon Marz » Donnerstag 12. Januar 2006, 23:53

ich hab mich mal spasserhalber mit Canvas und Tkinter beschaeftigt ... folgendes ist rausgekommen :

Code: Alles auswählen

from Tkinter import *
from random import *
from time import *

zufall = {}
j = 1
a = '('
e = ',)'

hauptfenster = Tk()
canvas = Canvas(hauptfenster,height="5c",width="5c",bg="blue")
canvas.grid()

def mix ():
        for i in range(4):
          zufall[i]=  randint(1,100)
        id = canvas.create_rectangle(zufall.values(),fill="black")

def delete(event):
        w = event.widget
        id = w.find_overlapping(event.x,event.y,event.x,event.y)
        w.delete(id)

        global zufall
        global j
        if str(id) == a+str(j)+e:
                mix()
                j = j+1

mix()
canvas.bind("<Button-1>",delete)

hauptfenster.mainloop()

Man muss das Rechteck an der zufaellig entstandene Stelle anklicken damit es weg geht und dann entsteht an zufaellig Stelle ein neues ... u.s.w.
Ist etwas sinnfrei aber zum lernen denke ich ganz nett. Ich wollte nun fragen wie ich das noch kuerzer und effizienter machen koennte.
mawe
Python-Forum Veteran
Beiträge: 1209
Registriert: Montag 29. September 2003, 17:18
Wohnort: Purkersdorf (bei Wien [Austria])

Beitragvon mawe » Freitag 13. Januar 2006, 07:18

Hi!

Etwas kürzer geht's schon ;)

Code: Alles auswählen

from Tkinter import *
import random

hauptfenster = Tk()
canvas = Canvas(hauptfenster, height=100, width=100, bg="blue")
canvas.pack()

def mix():
    zufall = random.sample(range(1,100), 4)
    canvas.create_rectangle(zufall, fill="black")

def check(event):
    rid = canvas.find_overlapping(event.x, event.y, event.x, event.y)
    if rid:
        canvas.delete(rid)
        mix()

mix()
canvas.bind("<Button-1>", check)

hauptfenster.mainloop()


Gruß, mawe
Gast

Beitragvon Gast » Freitag 13. Januar 2006, 15:02

Thanks das wollte ich wissen ...

Grüße Marz

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder