diff --git a/__pycache__/frog.cpython-313.pyc b/__pycache__/frog.cpython-313.pyc index 0b5a93d..33efcaf 100644 Binary files a/__pycache__/frog.cpython-313.pyc and b/__pycache__/frog.cpython-313.pyc differ diff --git a/__pycache__/obstacle.cpython-313.pyc b/__pycache__/obstacle.cpython-313.pyc index c5fe678..acc8f10 100644 Binary files a/__pycache__/obstacle.cpython-313.pyc and b/__pycache__/obstacle.cpython-313.pyc differ diff --git a/frog.py b/frog.py index 4b0f957..e0560ae 100644 --- a/frog.py +++ b/frog.py @@ -8,16 +8,18 @@ class Frog: def handle_keystroke(self, keystroke, game): x, y = self.position - if keystroke.name in ("KEY_LEFT", "KEY_RIGHT", "KEY_UP"): + if keystroke.name in ("KEY_LEFT", "KEY_RIGHT"): if keystroke.name == "KEY_LEFT": new_position = (x - 1, y) - if keystroke.name == "KEY_RIGHT": + elif keystroke.name == "KEY_RIGHT": new_position = (x + 1, y) - if keystroke.name == "KEY_UP": - froggy = game.get_agent_by_name('froggy') - froggy.position = (froggy.position[0], froggy.position[1]+1) - 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 + else: + return + if not game.on_board(new_position): + return + if not game.is_empty(new_position): + game.end() + self.position = new_position + + + \ No newline at end of file diff --git a/obstacle.py b/obstacle.py index ac29cf0..dd9b25d 100644 --- a/obstacle.py +++ b/obstacle.py @@ -3,17 +3,34 @@ class Obstacle: def __init__(self, position): self.position = position + + + def handle_keystroke(self, keystroke, game): + froggy = game.get_agent_by_name('froggy') + if keystroke.name != "KEY_UP": + return + _, height = game.board_size + x, y =self.position + if y == height -1: + game.remove_agent(self) + return + new_position = (x,y + 1) + if new_position == froggy.position: + game.end() + return + if game.on_board(new_position) and game.is_empty(new_position): + self.position = new_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: + if y >= height: game.remove_agent(self) - else: - froggy = game.get_agent_by_name('froggy') - new_position = (x, y) - if new_position == froggy.position: - game.end() - else: - self.position = new_position + + + + + + +