2026-rff_mp/test_builder.py

81 lines
2.8 KiB
Python

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()