From 0c391109c8579763bc09d171b9d0060e86297576 Mon Sep 17 00:00:00 2001 From: alstergym Date: Wed, 30 Sep 2026 11:04:31 +0200 Subject: [PATCH] 30.09.2026 --- README.md | 3 + meinspiel.py | 159 ++++++++++++++++++++++++++------------------------- starten2.py | 3 +- 3 files changed, 86 insertions(+), 79 deletions(-) diff --git a/README.md b/README.md index 3b56475..56a6cc6 100644 --- a/README.md +++ b/README.md @@ -22,6 +22,9 @@ RandRegeln in Funktion geschoben und klarer definiert ## 29.09.2026 Versucht den Bug mit dem Ball und dem unteren Spielfeldrand zu lösen +## 30.09.2026 +Ball prallt venünfig an den Wänden ab und wenn man den auffrisst spawnt er in der Mitte neu. Außerdem habe ich eine Geschwindigkeitsänderung mit der Taste O eingebaut, die den Ball schneller bewegen lässt. + # Quellen Karten von itch.io -> nächste stunde sind hier genauere Quellen \ No newline at end of file diff --git a/meinspiel.py b/meinspiel.py index 402b6af..f9b494d 100644 --- a/meinspiel.py +++ b/meinspiel.py @@ -10,6 +10,7 @@ class MeinSpiel: richtung = 0 richtung_y = 0 alter_hintergrund = 0 + geschwindigkeit = 10 punkte1 = 0 # Punkte des Spieler 1 punkte2 = 0 # Punkte des Spieler 2 def __init__(self, felderX, felderY): @@ -52,6 +53,9 @@ class MeinSpiel: elif taste == 1073741905: # Pfeiltaste_Runter self.bewegeSpieler(2, "spieler2") + elif taste == pygame.K_o: + self.geschwindigkeit = 7 if self.geschwindigkeit !=7 else 10 + def starte_spiel(self, neue_punkte = False): self.richtung = random.randint(1, 2) # 1 = linke Spielhälfte / 2 = rechte Spielhälfte @@ -84,110 +88,109 @@ class MeinSpiel: def bewegeball(self): if self.richtung == 0: return stoppe_suche = False - for x in range(len(self.spielfeld)): + try: + for x in range(len(self.spielfeld)): - for y in range(len(self.spielfeld)): + for y in range(len(self.spielfeld)): - if self.spielfeld[x][y] == 2: - try: - spieler_x = x+1 if self.richtung == 2 else x-1 - spieler_y = y - # gucken ob links/rechts ein spieler ist - if self.spielfeld[x+1][y] == 1 or self.spielfeld[x-1][y] == 1: - self.richtung = 1 if self.richtung == 2 else 2 - self.richtung_y = random.randint(-1, 1) # -1 ist nach oben 1 nach unten - + if self.spielfeld[x][y] == 2: + try: + spieler_x = x+1 if self.richtung == 2 else x-1 + spieler_y = y + # gucken ob links/rechts ein spieler ist + if self.spielfeld[x+1][y] == 1 or self.spielfeld[x-1][y] == 1: + self.richtung = 1 if self.richtung == 2 else 2 + self.richtung_y = random.randint(-1, 1) # -1 ist nach oben 1 nach unten + if self.richtung_y == 0: self.richtung_y = 1 + - self.spielfeld[x][y] = self.alter_hintergrund + self.spielfeld[x][y] = self.alter_hintergrund - if self.richtung == 2: - self.alter_hintergrund = self.spielfeld[x+1][y] - self.spielfeld[x+1][y+self.richtung_y] = 2 + if self.richtung == 2: + self.alter_hintergrund = self.spielfeld[x+1][y] + self.spielfeld[x+1][y+self.richtung_y] = 2 - elif self.richtung == 1 and x-1 != -1: - self.alter_hintergrund = self.spielfeld[x-1][y] - self.spielfeld[x-1][y+self.richtung_y] = 2 - + elif self.richtung == 1 and x-1 != -1: + self.alter_hintergrund = self.spielfeld[x-1][y] + self.spielfeld[x-1][y+self.richtung_y] = 2 + - elif x-1 == -1: self.richtung = 2; self.spielfeld[x][y] = 2 # Später Punktesystem! - print(x, y) - #self.guckeObAmRand(x, y) + #elif x-1 == -1: self.richtung = 2; self.spielfeld[x][y] = 2 # Später Punktesystem! + #print(x, y) + #self.guckeObAmRand(x, y) - # Gucke, ob der Ball am Spielfeldrand ist + # Gucke, ob der Ball am Spielfeldrand ist - if y+1 == 14 or y-1 == 0: - if self.richtung_y != 1 and self.richtung_y != 0: + if y+1 == 15 and self.richtung_y != -1: print("aaaaaaaaaaa") print(y+1) print(self.richtung_y) print("---------") self.richtung_y = -1 if self.richtung_y == 1 else 1 + print("richtung y geändert") + + + elif y-1 == 0 and self.richtung_y != 1: + print("aaaaaaaaaaa") + print(y+1) + print(self.richtung_y) + print("---------") + self.richtung_y = -1 if self.richtung_y == 1 else 1 + print("richtung y geändert") + + elif x+1 == 14: + self.punkte1 +=1 + self.starte_spiel() + + elif x-1 == 0: + self.punkte2 +=1 + self.starte_spiel() + + + stoppe_suche = True + sleep(0.1) + except IndexError as e: + print("Ball ist außerhalb des") + print(e) + # Wenn am Rand des spielfelds, muss gucken ob punkt gibt oder von wand abprallt + print("x+1",x+1) + print("x-1",x-1) + print("y-1",y-1) + print("y+1",y+1) + + if y+1 == 15 or y-1 == 0: + if self.richtung_y != 0: + print("aaaaaaaaaaa") + print(y+1) + print(self.richtung_y) + print("---------") + self.richtung_y = -1 if self.richtung_y == 1 else 1 + print("richtung y geändert") + + else: + print("einfach anders") + + self.spielfeld[x][y] = 2 + - elif x+1 == 14: - self.punkte1 +=1 - self.starte_spiel() - - elif x-1 == 0: - self.punkte2 +=1 - self.starte_spiel() - stoppe_suche = True - sleep(0.1) - except IndexError: - # Wenn am Rand des spielfelds, muss gucken ob punkt gibt oder von wand abprallt - print(x+1) - print(x-1) - print(y-1) - print(y+1) - - # if y+1 == 14 or y-1 == -1: - # self.richtung_y = -1 if self.richtung_y == -1 else 1 - - #self.guckeObAmRand(x, y, fehler=True) - - print(x,y) - self.spielfeld[x][y] = 2 # Später Punktesystem! - self.richtung = 1 if self.richtung == 2 else 2 - self.richtung_y = random.randint(-1, 1) - + if stoppe_suche: break if stoppe_suche: break - if stoppe_suche: break - - return spieler_x, spieler_y + return spieler_x, spieler_y + except UnboundLocalError as e: + print(e) + self.starte_spiel() - # def guckeObAmRand(self, x, y, fehler = False): - # pass - - # if y+1 == 14 or y-1 == 0 and self.richtung_y == -1: - # print("aaaaaaaaaaa") - # print(y+1) - # print(self.richtung_y) - # print("---------") - # self.richtung_y = -1 if self.richtung_y == 1 else 1 - - # elif x+1 == 14: - # self.punkte1 +=1 - # self.starte_spiel() - - # elif x-1 == 0: - # self.punkte2 +=1 - # self.starte_spiel() - - # if fehler: - # print(x,y) - # self.spielfeld[x][y] = 2 # Später Punktesystem! - # self.richtung = 1 if self.richtung == 2 else 2 - # self.richtung_y = random.randint(-1, 1) - def bewegeSpieler(self, richtung, spieler: Literal["spieler1", "spieler2"]): + # Bei Richtung ist 1 nach oben und 2 nach unten x = 1 if spieler == "spieler1" else 13 stoppe_suche = False for y in range(len(self.spielfeld)): diff --git a/starten2.py b/starten2.py index 8da4a6b..0418b86 100644 --- a/starten2.py +++ b/starten2.py @@ -13,7 +13,7 @@ FPS = 60 SCHWARZ = ( 0, 0, 0) WEISS = ( 255, 255, 255) pyGameBilder = [] -geschwindigkeit = 10 # Geschwindigkeit des balles; niegdriger = schneller + # Bilder aus meinSpiel werden für pygame vorbereitet meinSpiel = MeinSpiel(FelderX, FelderY) @@ -31,6 +31,7 @@ clock = pygame.time.Clock() # Schleife Hauptprogramm counter = 0 while True: + geschwindigkeit = meinSpiel.geschwindigkeit # Geschwindigkeit des balles; niegdriger = schneller counter+=1 # Überprüfen, ob Nutzer eine Aktion durchgeführt hat for event in pygame.event.get():