Code: Alles auswählen
from Tkinter import *
from random import randint
fragen = {1: ('Welcher Fluss fließt durch Berlin?',
'Spree', 'Mosel', 'Rhein', 'Oder',
'r', 'f', 'f', 'f'),
2: ('Welcher Verein ist deutscher Fussballmeister 2002?',
'Bayern', 'Dortmund', 'Schalke', 'Leverkusen',
'f', 'r', 'f', 'f'),
3: ('Mondamin ist ein/e ... ',
'Sprache', 'chemisches Element', 'Backzutat', 'Schimpfwort',
'f', 'f', 'r', 'f')}
# >>>>Arbeiten mit Klassen
class Quiz:
def __init__(self,fenster):
self.root = fenster
self.root.title('Superhirn')
self.schon_gestellt = []
self.hauptfenster()
self.z = 0 # initialer Wert
def hauptfenster(self):
ueberschrift1 = Label(self.root, text='Wer wird Millionär?')
ueberschrift1.pack(anchor='w')
ueberschrift2 = Label(self.root, text='Bitte die richtige Antwort '\
'anklicken! Erst denken dann klicken!')
ueberschrift2.pack(anchor='w')
self.frage = Label(self.root, text = 'Hier erscheinen die Fragen',\
fg = "blue")
self.frage.pack(padx = 5, pady = 5)
#####>>>Die Radiobuttons:
self.antwort = StringVar()
whlrahmen = Frame(self.root) # ...für die Optik!
whlrahmen.pack()
self.ant1 = Radiobutton(whlrahmen, text = 'Antwort 1',\
variable = self.antwort, value = 1)
self.ant1.pack(anchor='w')
self.ant2 = Radiobutton(whlrahmen, text = 'Antwort 2',\
variable = self.antwort, value = 2)
self.ant2.pack(anchor='w')
self.ant3 = Radiobutton(whlrahmen, text = 'Antwort 3',\
variable = self.antwort, value = 3)
self.ant3.pack(anchor='w')
self.ant4 = Radiobutton(whlrahmen, text = 'Antwort 4',\
variable = self.antwort, value = 4)
self.ant4.pack(anchor='w')
#####>>>Label und Entry für die Namenseingabe:
eingaberahmen = Frame(self.root)
eingaberahmen.pack()
ueberschrift3 = Label(eingaberahmen, text = 'Ihr Name:')
ueberschrift3.pack(side=LEFT)
name = Entry(eingaberahmen)
name.pack(side=LEFT)
self.ergebnis = Label(self.root, text = 'Ergebnis')
self.ergebnis.pack(fill = BOTH, expand = 1)
#####>>>Knöpfe zur Spielsteuerung und zum Beenden:
self.startknopf = Button(self.root, text='Spiel starten!', fg = "red")
self.startknopf.pack(fill = BOTH, expand = 1)
Widget.bind(self.startknopf, '<Button-1>', self.weiter)
endeknopf = Button(self.root, text='ENDE', command = self.root.destroy)
endeknopf.pack(fill = BOTH, expand = 1)
def weiter(self, e):
self.z = randint(1, 3) # Der Zufallsgenerator wird angeschmissen!!
# Will der Zufallsgenarator auf eine bereits gestellte Frage zugreifen, wird
# er nach einem Test nochmals gestartet, bis eine noch nicht gestellte Frage
# gewählt wird!
while self.z in self.schon_gestellt:
self.z = randint(1, 3)
# Hier werden die bereits gestellten Fragen an die Liste angehängt:
self.schon_gestellt.append(self.z)
self.frage.config(text = fragen[self.z][0])
self.ant1.config(text = fragen[self.z][1])
self.ant2.config(text = fragen[self.z][2])
self.ant3.config(text = fragen[self.z][3])
self.ant4.config(text = fragen[self.z][4])
self.ergebnis.config(text = 'Bitte wählen!', fg = "red")
self.startknopf.config(text = 'Weiter')
Widget.bind(self.startknopf, '<Button-1>', self.auswerten)
def auswerten(self, e):
awort = self.antwort.get()
if fragen[self.z][eval(awort) + 4] == 'r':
if len(self.schon_gestellt) == 3:
self.ergebnis.config(text = 'Toll du hast alles richtig '\
'beantwortet!!!\nYou are the champion '\
'... leider ohne Musike, die musst du '\
'dir denken!!!', fg = "black",\
bg = "yellow")
else:
self.weiter(e)
else:
self.ergebnis.config(text = 'Leider Falsch! ... vielleicht klappt'\
'es beim nächsten Mal!!!\nSchade: Du hast lei'\
'der verloren!')
# Programmstart:
test = Tk()
Quizzz = Quiz(test)
test.mainloop()