import sys import os sys.path.insert(0, r'C:\ivantsovma\docs\MazeProject') from builders import TextFileMazeBuilder from strategies import BFSStrategy from visualization import ConsoleView, GameController def test_observer(): print("ПАТТЕРН OBSERVER") # Загружаем лабиринт builder = TextFileMazeBuilder() maze = builder.build_from_file("mazes/small_maze.txt") #создаём наблюдателя view = ConsoleView() #уведомления о событии view.update("maze_loaded", maze) view.update("search_start", None) view.update("path_found", None) print("\nObserver работает!") def test_game_controller(): print("ПАТТЕРН COMMAND (УПРАВЛЕНИЕ ИГРОКОМ)") #pагружаем простой лабиринт builder = TextFileMazeBuilder() maze = builder.build_from_file("mazes/simple_maze.txt") #cоздаём контроллер controller = GameController(maze) print(f"Начальная позиция: ({controller.get_player_position().x}, {controller.get_player_position().y})") #движение вправо controller.move((1, 0)) #Вправо print(f"После движения вправо: ({controller.get_player_position().x}, {controller.get_player_position().y})") controller.move((1, 0)) #Вправо print(f"После движения вправо: ({controller.get_player_position().x}, {controller.get_player_position().y})") #отменяем последние движения controller.undo() print(f"После отмены: ({controller.get_player_position().x}, {controller.get_player_position().y})") controller.undo() print(f"После второй отмены: ({controller.get_player_position().x}, {controller.get_player_position().y})") print("\nCommand работает!") def test_integration(): print("ИНТЕГРАЦИЯ ВСЕХ КОМПОНЕНТОВ") # Загружаем лабиринт builder = TextFileMazeBuilder() maze = builder.build_from_file("mazes/small_maze.txt") # Находим путь bfs = BFSStrategy() path = bfs.find_path(maze, maze.start, maze.exit) # Создаём отображение view = ConsoleView() view.maze = maze view.path = path view.render() print("\nИнтеграция работает!") def run_interactive_game(): print("ИНТЕРАКТИВНАЯ ИГРА") print("Для запуска интерактивной игры используйте:") print("python play_maze.py") if __name__ == "__main__": test_observer() test_game_controller() test_integration() run_interactive_game()