Ich darf mir mal einige Kommentare erlauben:
Die ganzen herumfliegenden Zahlen hatte ich ja schon erwähnt. Spätestens in zwei Wochen wirst dur nicht mehr wissen, was diese bedeuten.
Ersetze die *-Importe. Bei dir hilft vielleicht schon ein "import ... as ..."
Konstanten werden nach PEP8 in Großbuchstaben geschrieben und gehören natürlich auch irgendwie dokumentiert/kommentiert.
Zum Einrücken verwende doch bitte pro Block 4 Leerzeichen und keine Tabs oder gar gemische Formen!
Vor und hinter ein Gleichheitszeichen gehören jeweils ein Leerzeichen.
Funktionsnamen werden übrigens mit einem Kleinbuchstaben begonnen: ich_bin_eine_funktion.
Außerdem vermischt du englische und deutsche Bezeichner.
Das Kommentar "globale variablen" ist total überflüssig.
Du arbeitest sehr viel mit copy&paste:
Code: Alles auswählen
pygame.draw.circle(screen, farben[0],(40,170), 20)
pygame.draw.circle(screen, farben[1],(100,170), 20)
pygame.draw.circle(screen, farben[2],(40,220), 20)
pygame.draw.circle(screen, farben[3],(100,220), 20)
#besser als
coords = [(40, 170), (100, 170), ...]
for farbe, coord in zip(farben, coords):
pygame.draw.circle(screen, farbe, coord, 20)
Deine "Mach"-Funktion ist viel zu lang, da kann man sicher etwas auslagern. Vorallem alles nach dem Kommentar "reihe feststellen" ist viel zu kompliziert:
Code: Alles auswählen
cx = 150 < pos[0] < 250
if cx:
coords = [(20, 45), (50, 75), ...]
for index, (x, y) in coords:
if x < pos[1] < y:
akt_zeile = index+1
Die Funktion kannst du gleich auslagern und auch auf "spalte festellen" anwenden. Das ist quasi das selbe!
Statt "done = 0" und "done = 1" verwende besser "True" und "False": "done = True".