Re: simpler Kopfrechner mit Pygame
Verfasst: Montag 7. Dezember 2020, 12:56
Hallo zusammen,
ich experimentiere wieder ein wenig mit dem Kopfrechner rum, und verstehe wieder nicht, warum er das macht, was er macht, bzw. wie ich es besser hinkriege. Nach dem dem ENTER wird das Ergebnis ausgewertet, und er stellt sofort wieder eine neue Aufgabe und als Eingabe wird dann wohl nichts eingelesen, weil es viel zu schnell geht?
Und es kommt folgende Fehlermeldung:
text = "richtig!" if ergebnis == int(eingabe) else "falsch!"
ValueError: invalid literal for int() with base 10: ''
Hat jeman ein Tip, wie mans richtig macht?
(Ich versuche es erstmal ohne die Funktionen, weil es für mich momentan so einfacher zu verstehen ist.)
ich experimentiere wieder ein wenig mit dem Kopfrechner rum, und verstehe wieder nicht, warum er das macht, was er macht, bzw. wie ich es besser hinkriege. Nach dem dem ENTER wird das Ergebnis ausgewertet, und er stellt sofort wieder eine neue Aufgabe und als Eingabe wird dann wohl nichts eingelesen, weil es viel zu schnell geht?
Und es kommt folgende Fehlermeldung:
text = "richtig!" if ergebnis == int(eingabe) else "falsch!"
ValueError: invalid literal for int() with base 10: ''
Hat jeman ein Tip, wie mans richtig macht?
(Ich versuche es erstmal ohne die Funktionen, weil es für mich momentan so einfacher zu verstehen ist.)
Code: Alles auswählen
import pygame
import random
WHITE = (255, 255, 255)
GREEN = (0, 255, 0)
BLUE = (0, 0, 128)
pygame.init()
pygame.display.set_caption("Kopfrechner")
font = pygame.font.Font('freesansbold.ttf', 50)
clock = pygame.time.Clock()
display = pygame.display.set_mode((800, 300))
status = None
while status != pygame.QUIT:
zahl_1 = random.randint(1, 101)
zahl_2 = random.randint(1, 101)
ergebnis = zahl_1 + zahl_2
aufgabe = "{0} + {1} = ".format(zahl_1, zahl_2)
eingabe = ""
print("aufgabe: ", aufgabe, ergebnis)
while True:
display.fill(WHITE)
text = font.render(aufgabe, True, GREEN, BLUE)
display.blit(text, (200, 50))
for event in pygame.event.get():
#print("event-for-Schleife: ", event)
if event.type == pygame.QUIT:
status = pygame.QUIT
#print("status = pygame.QUIT", event)
break
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_RETURN:
status = pygame.K_RETURN
#print("status = pygame.RETURN", event)
break
elif event.key == pygame.K_BACKSPACE:
eingabe = eingabe[:-1]
else:
eingabe = eingabe + event.unicode
text = font.render(eingabe, True, GREEN, BLUE)
display.blit(text, (450, 50))
if status == pygame.K_RETURN:
print("ergebnis: ", ergebnis)
print("eingabe: ", eingabe)
#print("if Abfrage, status = pygame.K_RETURN")
text = "richtig!" if ergebnis == int(eingabe) else "falsch!"
text = font.render(text, True, GREEN, BLUE)
display.blit(text, (600, 50))
pygame.display.flip()
break
pygame.display.flip()
clock.tick(30)
if status == pygame.QUIT:
break
pygame.quit()