import os
# Импортируем функцию из файла crop.py
from crop import find_chessboard_strictly_1to1
def save_human_readable_board(board_matrix, output_txt="human.txt"):
"""Записывает текстовую доску 8x8 с символами [X] и [ ] в файл."""
if not board_matrix:
print("[Ошибка] Матрица доски пуста.")
return
with open(output_txt, "w", encoding="utf-8") as f:
for row in board_matrix:
line = "".join(["[X]" if cell else "[ ]" for cell in row])
f.write(line + "\n")
print(f"[OK] Текстовая схема доски сохранена в: {output_txt}")
def process_board_logic(input_image_path="board1.png"):
"""Главная управляющая функция логики."""
if not os.path.exists(input_image_path):
print(f"[Ошибка] Файл {input_image_path} не найден.")
return
# 1. Получаем данные из crop.py (всё в памяти, без сохранения картинок на диск)
board_matrix, cropped_board = find_chessboard_strictly_1to1(input_image_path)
if board_matrix is None:
print("[Ошибка] Не удалось обработать доску.")
return
# 2. Сохраняем текстовый файл human.txt
save_human_readable_board(board_matrix)
# 3. Задел на будущее: картинку cropped_board можно напрямую
# пересылать в analysis.py, когда он будет готов
# Example:
# pieces_data = analysis.detect_pieces(cropped_board)
if __name__ == "__main__":
process_board_logic("board1.png")