diff --git a/__pycache__/circle.cpython-312.pyc b/__pycache__/circle.cpython-312.pyc new file mode 100644 index 0000000..567f76d Binary files /dev/null and b/__pycache__/circle.cpython-312.pyc differ diff --git a/__pycache__/circle.cpython-313.pyc b/__pycache__/circle.cpython-313.pyc new file mode 100644 index 0000000..1ee107b Binary files /dev/null and b/__pycache__/circle.cpython-313.pyc differ diff --git a/__pycache__/player.cpython-312.pyc b/__pycache__/player.cpython-312.pyc index eec6e6f..c6300c0 100644 Binary files a/__pycache__/player.cpython-312.pyc and b/__pycache__/player.cpython-312.pyc differ diff --git a/circle.py b/circle.py new file mode 100644 index 0000000..2f2ac58 --- /dev/null +++ b/circle.py @@ -0,0 +1,26 @@ +from random import randint +class Circle: + name= "circle" + character = 'O' + + def __init__(self, position): + self.position = position + + def play_turn(self, game): + width, height = game.board_size + fall_speed = game.state.get("fall_speed", 1) + + x, y = self.position + player = game.get_agent_by_name('player') + new_position = (x, y + 1) + + if new_position == player.position: + game.end() + return + if y >= height - 1: + game.state["score"] += 1 + if game.state["fall_speed"] < 5: + game.state["fall_speed"] += 1 + self.position = (randint(0, width - 1), 0) + else: + self.position = new_position diff --git a/circle_spawner.py b/circle_spawner.py new file mode 100644 index 0000000..5f5cc32 --- /dev/null +++ b/circle_spawner.py @@ -0,0 +1,18 @@ +from random import randint +from circle import Circle + +class CircleSpawner: + display = False + + def play_turn(self, game): + width, height = game.board_size + game.state['score'] += 1 + if self.should_spawn_circle(game.turn_number): + x= randint(0, width - 1) + new_circle= Circle((x,0)) + game.add_agent(new_circle) + + def should_spawn_circle(self, turn_number): + return randint(0, 200) < turn_number + + \ No newline at end of file diff --git a/nav_game.py b/nav_game.py index 6d445e2..5f30017 100644 --- a/nav_game.py +++ b/nav_game.py @@ -1,7 +1,16 @@ from retro.game import Game from player import Player +from circle import Circle + board_size = (100, 25) player = Player(board_size) -game = Game([player], {"score": 0}, board_size=board_size) +circle= Circle ((board_size[0] // 2, 0)) + +def during_turn(game): + pass + +game = Game([player, circle], {"score": 0, "fall_speed": 1}, board_size=board_size) + +game.during_turn = during_turn game.play() \ No newline at end of file diff --git a/player.py b/player.py index b6b9da1..a57db65 100644 --- a/player.py +++ b/player.py @@ -1,6 +1,6 @@ class Player: name = "player" - character = 'O' + character = '^' def __init__(self, board_size): board_width, board_height = board_size @@ -8,12 +8,17 @@ class Player: 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) - else: - new_position = (x + 1, y) - if game.on_board(new_position): + if keystroke.name == "KEY_LEFT": + new_position = (x - 1, y) + elif keystroke.name == "KEY_RIGHT": + new_position = (x + 1, y) + elif keystroke.name == "KEY_UP": + new_position = (x, y - 1) + elif keystroke.name == "KEY_DOWN": + new_position = (x, y + 1) + else: + return + if game.on_board(new_position): if game.is_empty(new_position): self.position = new_position else: