Für mein erstes „großes“ Projekt in Python versuche ich einen simon says Spiel Klon mit pygame zu machenVariablennamen in Python dynamisch erstellen?
Die Blink() -Methode mich die Farbe zu erkennen erfordert, welche Farbe die Instanz (self.color) und ändern darauf bezogen.
Also rot zu hellrot, blau zu hellblau usw. Das Problem ist, dass mein aktueller Code sehr lang und hässlich ist, und ich weiß, dass es einen besseren Weg dafür geben muss.
Hier ist meine hässliche Code:
def blink(self):
if self.color == red:
self.color = brightred
elif self.color == blue:
self.color = brightblue
elif self.color == green:
self.color = brightgreen
die definierten Farben:
black = (0,0,0)
white = (255,255,255)
red = (150,0,0)
green = (0,150,0)
blue = (0,0,150)
yellow = (150,150,0)
brightred = (255,0,0)
brightgreen = (0,255,0)
brightblue = (0,0,255)
brightyellow = (255,255,0)
und schließlich die Klasse die Methode enthält:
class rec:
def __init__(self,left,top,size,color):
self.left = left
self.top = top
self.size = size
self.color = color
self.rect = pygame.Rect(self.left,self.top,self.size,self.size)
pygame.draw.rect(d,self.color,self.rect)
pygame.display.update()
def blink(self):
if self.color == red:
self.color = brightred
elif self.color == blue:
self.color = brightblue
elif self.color == green:
self.color = brightgreen
elif self.color == yellow:
self.color = brightyellow
pygame.draw.rect(d,self.color,self.rect)
pygame.display.update() # Not finished
Sorry, ich verstehe die Frage nicht. Was ist das Problem hier? Was ist dein Ziel? –