diff --git a/proposal.md/__pycache__/spaceship.cpython-313.pyc b/proposal.md/__pycache__/spaceship.cpython-313.pyc new file mode 100644 index 0000000..3e4bee6 Binary files /dev/null and b/proposal.md/__pycache__/spaceship.cpython-313.pyc differ diff --git a/proposal.md/__pycache__/targets.cpython-313.pyc b/proposal.md/__pycache__/targets.cpython-313.pyc new file mode 100644 index 0000000..1d4159e Binary files /dev/null and b/proposal.md/__pycache__/targets.cpython-313.pyc differ diff --git a/proposal.md/nav_game.py b/proposal.md/nav_game.py new file mode 100644 index 0000000..48adf27 --- /dev/null +++ b/proposal.md/nav_game.py @@ -0,0 +1,9 @@ +from retro.game import Game +from spaceship import Spaceship +from targets import Targets + +board_size = (100, 25) +ship = Spaceship(board_size) +targets = Targets((board_size[0] // 2, 0)) +game = Game([ship], {"score": 0}, board_size=board_size, color="white", debug=True) +game.play() \ No newline at end of file diff --git a/proposal.md/spaceship.py b/proposal.md/spaceship.py new file mode 100644 index 0000000..cf66e4a --- /dev/null +++ b/proposal.md/spaceship.py @@ -0,0 +1,20 @@ +class Spaceship: + name = "ship" + 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) + else: + new_position = (x + 1, y) + if game.on_board(new_position): + if game.is_empty(new_position): + self.position = new_position + else: + game.end() \ No newline at end of file diff --git a/proposal.md/targets.py b/proposal.md/targets.py new file mode 100644 index 0000000..60fffa0 --- /dev/null +++ b/proposal.md/targets.py @@ -0,0 +1,19 @@ +class Targets: + character = '8' + + 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: + ship = game.get_agent_by_name('ship') + new_position = (x, y + 1) + if new_position == ship.position: + game.end() + else: + self.position = new_position