generated from mwc/project_game
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:
BIN
proposal.md/__pycache__/spaceship.cpython-313.pyc
Normal file
BIN
proposal.md/__pycache__/spaceship.cpython-313.pyc
Normal file
Binary file not shown.
BIN
proposal.md/__pycache__/targets.cpython-313.pyc
Normal file
BIN
proposal.md/__pycache__/targets.cpython-313.pyc
Normal file
Binary file not shown.
9
proposal.md/nav_game.py
Normal file
9
proposal.md/nav_game.py
Normal 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
20
proposal.md/spaceship.py
Normal 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
19
proposal.md/targets.py
Normal 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
|
||||
Reference in New Issue
Block a user