ich bin dranne ein kleines Spiel für meine Tochter zu programieren...
Dieses soll zunächst die ganz Zahlen von 0-10 per Zufall ausgeben und meine Tochter fragen od diese gerade, ungerade (und ein zusatz mit der Null) abfragen... Soweit so Gut wie man es nimmt... Nun dachte ich man könnte doch ihr, sage ich mal, 5 sec. geben und sie soll per Klicken eines Knopfes die Antwort geben... Die Zeit ist eher n kleines Problem, sowie die Fragen im label auszugeben... Nur wie Antwortet man per Knopf während einer Schleife? Habe es zunächst mit Threading versucht aber kläglich gescheitert. Am anfang habe ich 3 py's erstellt und diese eingebunden, wegen der Datengröße... ich weiß hier unnötig, aber für die Zukunft eventuell Nutzbar... Ja soweit bin ich schon, dass Importe mit * vermieden werden sollen und ich Danke "__JackBlack__" sowie "Sirius3" für die Top begründungen im Forum!
Der Code:
Code: Alles auswählen
from tkinter import *
from random import choice
import threading
import Zahlen
# zahl = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10']
import Uebung1
# zahl_u = ['1', '3', '5', '7', '9', '11', '13', '15', '17', '19']
import Uebung2
# zahl_n = ['0']
# zahl_g = ['2', '4', '6', '8', '10', '12', '14', '16', '18', '20']
should_run = False
class a:
def __init__(self):
while True:
if should_run:
for i in range(10):
if should_run:
a = choice(Zahlen.zahl)
b = Uebung1.zahl_u
c = Uebung2.zahl_n
d = Uebung2.zahl_g
print(a)
if a in b:
antw = input('g oder u: ')
if antw == 'u':
print('Richtig!'+'\n')
elif antw != 'u':
print('Falsch!'+'\n')
print('ungerade!'+'\n')
elif a in c:
antw = input('g oder u oder n: ')
if antw == 'n':
print('Richtig!'+'\n')
elif antw != 'n':
print('Falsch!'+'\n')
print('null!'+'\n')
elif a in d:
antw = input('g oder u: ')
if antw == 'g':
print('Richtig!'+'\n')
elif antw != 'g':
print('Falsch!'+'\n')
print('gerade!'+'\n')
if not should_run:
print('Stopped...')
break
t1 = threading.Thread(daemon = True, target = a)
t1.start()
class gui:
def __init__(self, window):
self.start_frame = Frame(master=window, relief=FLAT, borderwidth=1)
self.start_frame.grid(row=0, column=0, padx=1, pady=1)
self.start_button = Button(self.start_frame, text="start", fg="blue", command = lambda: self.los(True))
self.start_button.pack()
self.stop_frame = Frame(master=window, relief=FLAT, borderwidth=1)
self.stop_frame.grid(row=0, column=2, padx=1, pady=1)
self.stop_button = Button(self.stop_frame, text="stop", fg="red", command = lambda: self.los(False))
self.stop_button.pack()
self.Btn2_frame = Frame(master=window, relief=FLAT, borderwidth=1)
self.Btn2_frame.grid(row=0, column=4, padx=1, pady=1)
self.Btn2 = Button(self.Btn2_frame, text = "Beenden", command = root.destroy)
self.Btn2.pack()
self.Btn3_frame = Frame(master=window, relief=FLAT, borderwidth=1)
self.Btn3_frame.grid(row=0, column=5, padx=1, pady=1)
self.Btn3 = Button(self.Btn3_frame, text = "gerade", command = lambda: self.antworten_g())
self.Btn3.pack()
self.Btn4_frame = Frame(master=window, relief=FLAT, borderwidth=1)
self.Btn4_frame.grid(row=0, column=6, padx=1, pady=1)
self.Btn4 = Button(self.Btn4_frame, text = "ungerade", command = lambda: self.antworten_u())
self.Btn4.pack()
self.Btn5_frame = Frame(master=window, relief=FLAT, borderwidth=1)
self.Btn5_frame.grid(row=0, column=7, padx=1, pady=1)
self.Btn5 = Button(self.Btn5_frame, text = "null", command = lambda: self.antworten_n())
self.Btn5.pack()
def los(self, switch):
global should_run
should_run = switch
def antworten_g(self):
print("g")
def antworten_u(self):
print("u")
def antworten_n(self):
print("n")
root = Tk()
root.geometry("400x400")
app = gui(root)
root.mainloop()