From 3b00c6837ec102eb59e4f572bf505690174821ab Mon Sep 17 00:00:00 2001 From: alstergym Date: Wed, 7 Oct 2026 10:58:47 +0200 Subject: [PATCH] 7.10. --- README.md | 9 +++++++ meinspiel.py | 72 +++++++++++++++++++++++++++------------------------- starten.py | 6 ++++- 3 files changed, 51 insertions(+), 36 deletions(-) diff --git a/README.md b/README.md index 3da508e..594bf50 100644 --- a/README.md +++ b/README.md @@ -45,6 +45,15 @@ Code um einen Stein am oberen Spielfeldrand erscheinen zu lassen funktioniert no Beeren spawnen jetzt am oberen Spielfeldrand und sollten runterfallen, aber das Feld füllt sich leider komplett mit Beeren. Trotzdem kann man die Beeren einsammeln und Idee zum Punkte zählen habe ich auch. +### 6.10.2026 + +Die Beeren spawnen jetzt nicht mehr überall auf dem Spielfeld, sondern nur noch am oberen Spielfeldrand und fallen dann so wie gewollt nach unten. Die Beeren können auch aufgesammelt werden, aber werden noch nicht gezählt oder irgendwie im Score festgehalten. + +### 7.10.2026 + +Nun fallen nicht mehr nur Beeren ,sondern auch Steine vom Himmel. Diese erscheinen nur halb so häufig wie die Beeren. Steine sollen den Vogel erschlagen und zum verlieren bringen, dies ist aber noch nicht ganz fertig. +Ich habe auch noch versucht den Vogel am anderen Spielfeldrand erscheinen zu lassen, wenn er das Spielfeld verlässt, aber auch das habe ich noch nicht hinbekommen und muss noch gemacht werden. + ## Bildquellen [Grass Image by macrovector on Freepik](https://www.freepik.com/free-vector/seamless-green-grass-pattern_13187581.htm#query=grass%20texture&position=0&from_view=keyword&track=ais&uuid=c689b011-652b-4ad1-a90a-bf3c50762622) diff --git a/meinspiel.py b/meinspiel.py index b41506c..a65f506 100644 --- a/meinspiel.py +++ b/meinspiel.py @@ -16,7 +16,7 @@ class MeinSpiel: def anfangsKonfiguration(self): self.spielfeld[0][13]=0 - def erstelle_neues_objekt(self): + def erstelle_neues_objekt1(self): # zufällige x Koordinate am oberen Spielfeldrand zufall_x = random.randint(0, len(self.spielfeld)- 1) @@ -24,6 +24,17 @@ class MeinSpiel: if self.spielfeld[zufall_x][0] == 2: self.spielfeld[zufall_x][0] = 3 + def erstelle_neues_objekt2(self): + # zufällige x Koordinate am oberen Spielfeldrand + zufall_x = random.randint(0, len(self.spielfeld)- 1) + + #nur wenn das Feld frei ist spawnen + if self.spielfeld[zufall_x][0] == 2: + self.spielfeld[zufall_x][0] = 1 + + + + def objekt_fallen_lassen(self): kontrollfeld = copy.deepcopy(self.spielfeld) max_x = len(self.spielfeld) @@ -47,16 +58,26 @@ class MeinSpiel: elif self.spielfeld[x][y + 1] == 2: kontrollfeld[x][y + 1] = 3 kontrollfeld[x][y] = 2 + + for x in range(max_x): + for y in range(max_y - 1, -1, -1): + if self.spielfeld[x][y] == 1:#Objedkt gefunden + + #Check 1: wird der Boden erreicht? + if y == max_y - 1: + kontrollfeld[x][y] = 2 # Objekt löschen + + #Check 2: wird Figur getroffen + elif self.spielfeld[x][y +1] == 0: + kontrollfeld[x][y] = 1#Objekt verschwindet + # self.punkte += 1 # Punkt kommt dazu + # print(self.punkte) + #fällt ganz normal + elif self.spielfeld[x][y + 1] == 2: + kontrollfeld[x][y + 1] = 1 + kontrollfeld[x][y] = 2 + self.spielfeld = kontrollfeld - # for i in range(3): - # x = random.randint(0, len(self.spielfeld) - 1) - # y = random.randint(0, len(self.spielfeld) - 1) - - # while self.spielfeld[x][y] != 0: - # x = random.randint(0, len(self.spielfeld) - 1) - # y = random.randint(0, len(self.spielfeld) - 1) - - # self.spielfeld[x][y] = 1 def tasteGedrueckt(self, taste): kontrollfeld = copy.deepcopy(self.spielfeld) @@ -75,8 +96,9 @@ class MeinSpiel: if self.spielfeld [x][y] == 0: kontrollfeld [x + 1] [y] = 0 kontrollfeld [x][y] = 2 - - + # if kontrollfeld[x + 1][y] == 1: + # kontrollfeld[x][y] = 1 + if pygame.K_w == taste : print("up") for x in range(len(self.spielfeld)): @@ -92,15 +114,14 @@ class MeinSpiel: if self.spielfeld [x][y] == 0: kontrollfeld [x] [y + 1] = 0 kontrollfeld [x] [y] = 2 - if self.spielfeld[x > 13][y]: - x = 0 - self.spielfeld[x][y] - if pygame.K_a == taste : print("left") for x in range(len(self.spielfeld)): for y in range(len(self.spielfeld[x])): + # if self.spielfeld [x > 13][y] == 0: + # self.spielfeld[0][y] = 0 + if self.spielfeld [x][y] == 0: kontrollfeld [x - 1] [y] = 0 kontrollfeld [x] [y] = 2 @@ -111,22 +132,3 @@ class MeinSpiel: self.spielfeld = kontrollfeld - - - - - - - - - #def anfangsKonfiguration(self): - # self.spielfeld[1][13] = 0 - # for i in range(3): - # x = random.randint(0, len(self.spielfeld) - 1) - # y = random.randint(0, len(self.spielfeld) - 1) -# - # while self.spielfeld[x][y] != 0: - # x = random.randint(0, len(self.spielfeld) - 1) - # y = random.randint(0, len(self.spielfeld) - 1) -# - # self.spielfeld[x][y] = 1 \ No newline at end of file diff --git a/starten.py b/starten.py index f8d34e2..7228047 100644 --- a/starten.py +++ b/starten.py @@ -49,9 +49,13 @@ while True: #Spawn und automatische Bewegung if frame_zaehler % 50 == 0: - meinSpiel.erstelle_neues_objekt() + meinSpiel.erstelle_neues_objekt1() meinSpiel.objekt_fallen_lassen() + if frame_zaehler % 100 == 0: + meinSpiel.erstelle_neues_objekt2() + + # Spielfeld/figuren zeichnen # Fenster aktualisieren