import sys import os # Добавляем текущую директорию в путь поиска sys.path.insert(0, os.path.dirname(__file__)) from models import Cell, Maze from builders import TextFileMazeBuilder def test_builder(): print("ТЕСТИРОВАНИЕ BUILDER") # Создаем строителя builder = TextFileMazeBuilder() # Загружаем простой лабиринт print("\n1. Загрузка простого лабиринта (simple_maze.txt):") try: maze = builder.build_from_file("mazes/simple_maze.txt") print(f" Размер: {maze.width}x{maze.height}") print(f" Старт: {maze.start}") print(f" Выход: {maze.exit}") # Визуализация print("\n Карта лабиринта:") for y in range(maze.height): line = "" for x in range(maze.width): cell = maze.get_cell(x, y) if cell.is_wall: line += "#" elif cell.is_start: line += "S" elif cell.is_exit: line += "E" else: line += " " print(f" {line}") print(" Лабиринт загружен успешно!") except Exception as e: print(f" Ошибка: {e}") # Загружаем сложный лабиринт print("\n2. Загрузка сложного лабиринта (small_maze.txt):") try: maze = builder.build_from_file("mazes/small_maze.txt") print(f" Размер: {maze.width}x{maze.height}") print(f" Старт: {maze.start}") print(f" Выход: {maze.exit}") # Визуализация print("\n Карта лабиринта:") for y in range(maze.height): line = "" for x in range(maze.width): cell = maze.get_cell(x, y) if cell.is_wall: line += "#" elif cell.is_start: line += "S" elif cell.is_exit: line += "E" else: line += " " print(f" {line}") # Проверка соседей print(f"\n Проверка соседей старта:") neighbors = maze.get_neighbors(maze.start) for n in neighbors: print(f" - Сосед: ({n.x}, {n.y})") print(" Сложный лабиринт загружен успешно!") except Exception as e: print(f" Ошибка: {e}") print("ТЕСТИРОВАНИЕ ЗАВЕРШЕНО") if __name__ == "__main__": test_builder()