#ifndef BOARD_H
#define BOARD_H
#include <iostream>
#include <cstdint>
#include <utility>
#include <algorithm>
#include <vector>
#include <string>
struct Board {
    std::uint64_t black;
    std::uint64_t white;
};
struct Move { int x; int y; };
inline bool hasPiece(std::uint64_t board, int x, int y)
{
    std::uint64_t mask = 1ULL << (y * 8 + x);
    return board & mask;
}


inline int index(int x, int y) {
    return y * 8 + x;
}

inline std::uint64_t mask(int x, int y) {
    return 1ULL << index(x, y);
}
std::vector<Move> getLegalMoves(const Board& board, bool isBlack);
void playMove(Board& board, bool isBlack, int x, int y);
#endif