Загрузка данных


#include <iostream>
#include <string>

// Функция, которая превращает координаты пикселей в имя клетки (например: e4)
std::string getChessCell(int x, int y, int boardSize) {
    int cellSize = boardSize / 8; // Размер одной клетки в пикселях
    
    int col = x / cellSize; // Номер колонки (0..7)
    int row = y / cellSize; // Номер строки (0..7)
    
    // Проверка, что клик вообще внутри доски
    if (col < 0 || col >= 8 || row < 0 || row >= 8) {
        return "Вне доски!";
    }
    
    // Превращаем номер колонки в букву (a-h)
    char file = 'a' + col;
    // Превращаем номер строки в цифру (8-1)
    int rank = 8 - row;
    
    return std::string(1, file) + std::to_string(rank);
}

int main() {
    std::cout << "========================================\n";
    std::cout << "  C++ Chess Vision Engine - Test Run   \n";
    std::cout << "========================================\n\n";

    // Допустим, у нас изображение доски размером 800x800 пикселей
    int boardSize = 800; 

    // Тестовые координаты кадра (x, y)
    int testX = 350; 
    int testY = 450; 

    std::string cell = getChessCell(testX, testY, boardSize);

    std::cout << "Proverka koordinat:\n";
    std::cout << "Pixel X: " << testX << ", Y: " << testY << "\n";
    std::cout << "Opredelennaya kletka: [" << cell << "]\n\n";

    std::cout << "Vse rabotaet otlichno! Nazhmi Enter dlya vyhoda...";
    std::cin.get(); // Ждем нажатия Enter, чтобы консоль сразу не закрылась

    return 0;
}