31 lines
968 B
Python
31 lines
968 B
Python
from commands.move_command import MoveCommand
|
|
|
|
|
|
class GameController:
|
|
def __init__(self, maze, player, view):
|
|
self.maze = maze
|
|
self.player = player
|
|
self.view = view
|
|
self.history = []
|
|
|
|
def move(self, direction):
|
|
command = MoveCommand(self.player, self.maze, direction)
|
|
if command.execute():
|
|
self.history.append(command)
|
|
self.view.update({"type": "move", "direction": direction})
|
|
self.view.render(self.maze, player_position=self.player.currentCell)
|
|
return True
|
|
print("Cannot move there")
|
|
return False
|
|
|
|
def undo(self):
|
|
if not self.history:
|
|
print("Nothing to undo")
|
|
return False
|
|
command = self.history.pop()
|
|
if command.undo():
|
|
self.view.update({"type": "undo"})
|
|
self.view.render(self.maze, player_position=self.player.currentCell)
|
|
return True
|
|
return False
|