Compare commits

...

4 Commits

Author SHA1 Message Date
mollychi
621a680676 I was able to solve all my bugs to get my code to look EXACTLY how i wanted to.
I used AI to help me through some issues, but all the coding I understood and worked through and typed on my own
I learned a lot about the structure and when AI would suggest something I could be like thats now going to solve my issue I need to do this which felt very motivating
2025-12-14 12:47:15 -05:00
mollychi
b2dd17e4ad im stuck as the same place as last time lol 2025-12-13 19:13:20 -05:00
mollychi
12f0b05e25 I was able to make the obstacles spawn on the screen more than just the top, now just need to work on moving my frog! 2025-12-06 17:43:02 -05:00
mollychi
4f3655867f Im proud im understanding what im doing
Im stuck on testing my code
Im worried my code isnt doing what i want it to but i cant test it to see
2025-12-05 19:50:01 -05:00
7 changed files with 87 additions and 0 deletions

View File

@@ -0,0 +1,11 @@
from retro.game import Game
from frog import Frog
from obstacle_spawner import ObstacleSpawner
board_size = (25, 25)
board_size = (25, 25)
froggy = Frog(board_size)
spawner = ObstacleSpawner()
game = Game([froggy, spawner], {"score": 0}, board_size=board_size)
game.play()

Binary file not shown.

Binary file not shown.

Binary file not shown.

25
frog.py Normal file
View File

@@ -0,0 +1,25 @@
class Frog:
name = "froggy"
character = '^'
def __init__(self, board_size):
board_width, board_height = board_size
self.position = (board_width // 2, board_height - 1)
def handle_keystroke(self, keystroke, game):
x, y = self.position
if keystroke.name in ("KEY_LEFT", "KEY_RIGHT"):
if keystroke.name == "KEY_LEFT":
new_position = (x - 1, y)
elif keystroke.name == "KEY_RIGHT":
new_position = (x + 1, y)
else:
return
if not game.on_board(new_position):
return
if not game.is_empty(new_position):
game.end()
self.position = new_position

36
obstacle.py Normal file
View File

@@ -0,0 +1,36 @@
class Obstacle:
character = 'O'
def __init__(self, position):
self.position = position
def handle_keystroke(self, keystroke, game):
froggy = game.get_agent_by_name('froggy')
if keystroke.name != "KEY_UP":
return
_, height = game.board_size
x, y =self.position
if y == height -1:
game.remove_agent(self)
return
new_position = (x,y + 1)
if new_position == froggy.position:
game.end()
return
if game.on_board(new_position) and game.is_empty(new_position):
self.position = new_position
def play_turn(self, game):
width, height = game.board_size
if game.turn_number % 2 == 0:
x, y = self.position
if y >= height:
game.remove_agent(self)

15
obstacle_spawner.py Normal file
View File

@@ -0,0 +1,15 @@
from random import randint
from obstacle import Obstacle
class ObstacleSpawner:
display = False
def play_turn(self, game):
width, height = game.board_size
game.state['score'] += 1
if self.should_spawn_obstacle(game.turn_number):
obstacle = Obstacle((randint(0, width - 1), randint(0, width-1)))
game.add_agent(obstacle)
def should_spawn_obstacle(self, turn_number):
return randint(0, 1000) < turn_number