Hilfe mit Geometriquiez
Verfasst: Dienstag 23. Mai 2006, 14:06
hallo, ich wollte mal fragen ob ihr wisst wie man ein quiz macht mit python z.b. mit canvas
Seit 2002 Diskussionen rund um die Programmiersprache Python
https://www.python-forum.de/
Code: Alles auswählen
def right_1():
print 'richtig'
flag += 1 # oder auch Punkt jenachdem wie du sie nennen willst!
Code: Alles auswählen
print "Sie haben %i Punkte" % (flag)
Code: Alles auswählen
# -*- coding: iso-8859-1 -*-
import Tkinter as tk
class Quiz:
## Die Fragen sind als Dictionary zu definieren
## im Format {Frage:[Antwort,Bild]}
fragen = {"Bei einem Tetraeder sind alle Seiten gleich lang und alle \
Flächen gleich groß":[True,1],
"Habe ich die Suchfunktion verwendet?":[False,2],
"Habe ich mir selbst Gedanken gemacht?":[True,3],
"Ist es richtig, Hausaufgaben durch andere erledigen zu \
lassen?":[False,4],
}
def __init__(self):
self.root = tk.Tk()
self.root.title('Geometriequiz')
self.maxX = 480
self.maxY = 320
self.richtig = 0
self.falsch = 0
self.alteFrage = ''
# Canvas
self.fr01 = tk.LabelFrame(self.root, text = 'Canvas-Zeichnung')
self.fr01.pack(fill=tk.X)
self.canvas= tk.Canvas(self.fr01,width=self.maxX,
height=self.maxY, bg='white')
self.canvas.pack()
# Fragelabel
self.fragenliste = self.fragen.keys()
self.anzahlfragen = len(self.fragenliste)
self.gewaeltefrage = 0
self.frage = tk.StringVar()
self.frage.set(self.fragenliste[0])
self.frame2 = tk.LabelFrame(self.root,text='Frage')
self.frame2.pack(fill=tk.X)
self.lab_1=tk.Label(self.frame2,textvariable = self.frage)
self.lab_1.pack()
#Buttonleiste
self.frame3 = tk.LabelFrame(self.root,text='Antwortbutton')
self.frame3.pack(fill=tk.X)
self.but_R=tk.Button(self.frame3,
text='Richtig',
command = lambda:self.pruefAntwort(True))
self.but_R.pack(side=tk.LEFT)
self.but_L=tk.Button(self.frame3,
text='Falsch',
command = lambda:self.pruefAntwort(False))
self.but_L.pack(side=tk.RIGHT)
self.anzeigeBild(self.fragen[self.frage.get()][1])
self.root.mainloop()
def pruefAntwort(self,button):
try:
if button == self.fragen[self.frage.get()][0]:
self.richtig += 1
self.naechsteFrage()
else:
self.falsch += 1
self.naechsteFrage()
except KeyError:
pass
def naechsteFrage(self):
self.gewaeltefrage += 1
if self.anzahlfragen > self.gewaeltefrage:
self.frage.set(self.fragenliste[self.gewaeltefrage])
self.anzeigeBild(self.fragen[self.frage.get()][1])
else:
self.frage.set('')
self.anzeigeLoeschen()
self.frage.set('richtige Antworten: %s, falsche Antworten %s'%\
(self.richtig,self.falsch))
def anzeigeBild(self,nummer):
self.anzeigeLoeschen()
if nummer == 1:
self.bild1()
elif nummer == 2:
self.bild2()
elif nummer == 3:
self.bild3()
elif nummer == 4:
self.bild4()
def anzeigeLoeschen(self):
self.canvas.destroy()
self.canvas= tk.Canvas(self.fr01,width=self.maxX,
height=self.maxY,
bg='white')
self.canvas.pack()
def bild1(self):
self.canvas.create_line(40,280,360,280)
self.canvas.create_line(40,280,200,120)
self.canvas.create_line(200,120,360,280)
self.canvas.create_line(360,280,200,240)
self.canvas.create_line(40,280,200,240)
self.canvas.create_line(200,120,200,240)
def bild2(self):
self.canvas.create_line(40,280,360,280)
def bild3(self):
self.canvas.create_line(360,280,200,240)
def bild4(self):
self.canvas.create_line(200,120,200,240)
if __name__ == '__main__':
Quiz()