Game boarder and spaceship

Right now im trying to figure out why my target isnt showing up in the game
how i will i get it to move how i want it
This commit is contained in:
tsmith37
2025-12-04 15:33:12 -05:00
parent 17c49c0ea4
commit 5e31240474
5 changed files with 48 additions and 0 deletions

Binary file not shown.

Binary file not shown.

9
proposal.md/nav_game.py Normal file
View File

@@ -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()

20
proposal.md/spaceship.py Normal file
View File

@@ -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()

19
proposal.md/targets.py Normal file
View File

@@ -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