der braucht zum ausführen noch 6 bilder 01-06.jpg und ein back.jpg, ist egal welche größe.
Code: Alles auswählen
#creator
#Till Juergens
#import
import Tkinter
from Tkconstants import *
import whrandom
import time
#/
class switch(Tkinter.Button):
def __init__(self,master, geheim, imgid, r, c, callback):
Tkinter.Button.__init__(self, master)
self.backimg="back.gif"
self.geheim=geheim
self.imgid=imgid
self.back=Tkinter.PhotoImage(file=self.backimg)
self.bild=Tkinter.PhotoImage(file=self.geheim)
self.callback=callback
self.grid(row=r, column=c)
self.config(image=self.back)
self.bind('<Button-1>', self.callback)
def dreheum(self):
self.config(image=self.bild, width=self.back.width(), height=self.back.height())
self.bind('<Button-1>', self.nix)
def disablebutton(self):
# self.config(stat=DISABLED)
self.bind('<Button-1>', self.nix)
def dreheback(self):
self.config(image=self.back)
self.bind('<Button-1>', self.callback)
def gibID(self):
return self.imgid
def nix(self, m):
return ""
class spiel:
def __init__(self, master):
frame=Tkinter.Frame(master)
frame.pack(fill=BOTH, expand=1)
checklist=[]
zahl=self.randrow(checklist)
bild="0"+str(zahl)+".gif"
checklist.append(zahl)
self.karte01=switch(frame, bild, zahl, 0, 0, self.changeimage)
zahl=self.randrow(checklist)
bild="0"+str(zahl)+".gif"
checklist.append(zahl)
self.karte02=switch(frame, bild, zahl, 0, 1, self.changeimage)
zahl=self.randrow(checklist)
bild="0"+str(zahl)+".gif"
checklist.append(zahl)
self.karte03=switch(frame, bild, zahl, 0, 2, self.changeimage)
zahl=self.randrow(checklist)
bild="0"+str(zahl)+".gif"
checklist.append(zahl)
self.karte04=switch(frame, bild, zahl, 0, 3, self.changeimage)
zahl=self.randrow(checklist)
bild="0"+str(zahl)+".gif"
checklist.append(zahl)
self.karte05=switch(frame, bild, zahl, 1, 0, self.changeimage)
zahl=self.randrow(checklist)
bild="0"+str(zahl)+".gif"
checklist.append(zahl)
self.karte06=switch(frame, bild, zahl, 1, 1, self.changeimage)
zahl=self.randrow(checklist)
bild="0"+str(zahl)+".gif"
checklist.append(zahl)
self.karte07=switch(frame, bild, zahl, 1, 2, self.changeimage)
zahl=self.randrow(checklist)
bild="0"+str(zahl)+".gif"
checklist.append(zahl)
self.karte08=switch(frame, bild, zahl, 1, 3, self.changeimage)
zahl=self.randrow(checklist)
bild="0"+str(zahl)+".gif"
checklist.append(zahl)
self.karte09=switch(frame, bild, zahl, 2, 0, self.changeimage)
zahl=self.randrow(checklist)
bild="0"+str(zahl)+".gif"
checklist.append(zahl)
self.karte10=switch(frame, bild, zahl, 2, 1, self.changeimage)
zahl=self.randrow(checklist)
bild="0"+str(zahl)+".gif"
checklist.append(zahl)
self.karte11=switch(frame, bild, zahl, 2, 2, self.changeimage)
zahl=self.randrow(checklist)
bild="0"+str(zahl)+".gif"
checklist.append(zahl)
self.karte12=switch(frame, bild, zahl, 2, 3, self.changeimage)
self.firstButton=""
self.firstID=0
def check(self, liste, zahl):
i=0
for z in liste:
if z==zahl:
i=i+1
if i==2:
return 1
else :
return 0
def randrow(self, checklist):
zahl=whrandom.randint(1,6)
if self.check(checklist, zahl)==1:
zahl=self.randrow(checklist)
return zahl
def changeimage(self, event):
self.currentButton=event.widget
self.currentButton.dreheum()
currentID=self.currentButton.gibID()
if self.firstButton!="":
if currentID==self.firstID:
self.currentButton.disablebutton()
self.firstButton.disablebutton()
else:
# self.warten() oder time.sleep(2)
self.currentButton.dreheback()
self.firstButton.dreheback()
self.firstButton=""
self.firstID=0
else:
self.firstButton=self.currentButton
self.firstID=currentID
def warten(self):
old=time.time()
new=time.time()
while 1>new-old:
new=time.time()
tk=Tkinter.Tk()
start=spiel(tk)
tk.mainloop()