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
This commit is contained in:
mollychi
2025-12-05 19:50:01 -05:00
parent af69f8ce27
commit 4f3655867f
7 changed files with 67 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.

22
frog.py Normal file
View File

@@ -0,0 +1,22 @@
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", "KEY_UP"):
if keystroke.name == "KEY_LEFT":
new_position = (x - 1, y)
if keystroke.name == "KEY_RIGHT":
new_position = (x + 1, y)
if keystroke.name == "KEY_UP":
new_position = (x, y + 1)
if game.on_board(new_position):
if game.is_empty(new_position):
self.position = new_position
else:
game.end()

19
obstacle.py Normal file
View File

@@ -0,0 +1,19 @@
class Obstacle:
character = 'O'
def __init__(self, position):
self.position = position
def play_turn(self, game):
width, height = game.board_size
if game.turn_number % 2 == 0:
x, y = self.position
if y == height + 1:
game.remove_agent(self)
else:
froggy = game.get_agent_by_name('froggy')
new_position = (x, y + 1)
if new_position == froggy.position:
game.end()
else:
self.position = new_position

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), 0))
game.add_agent(obstacle)
def should_spawn_obstacle(self, turn_number):
return randint(0, 1000) < turn_number