This code is very different from Unit 1. Unit 1 was very top to bottom. This is more object driven. Instead of one loop or code there are agents that act to put everything together as a focus of what agent should be doing for the game to become a game such as the spaceship, asteroid, asteroid spawner are all used to generate the game. This code seems so real and more day to day life in my opinion.

This commit is contained in:
erbrown
2025-12-14 20:45:39 -05:00
parent 2f90ac3797
commit b8c69441d5
7 changed files with 65 additions and 0 deletions

View File

@@ -2,3 +2,24 @@
# ------------
# By MWC Contributors
# This module defines a spaceship agent class.
class Spaceship:
name = "ship"
character = '^'
color = "turquoise2"
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()