forked from UNN/2026-rff_mp
81 lines
2.8 KiB
Python
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() |