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()