#ifndef _CHESSBOARD_H
#define _CHESSBOARD_H

#include <vector>
#include "Figure.h"
#include "Position.h"
#include "Cell.h"
#include <utility>
#include <iostream>

class Chessboard
{
    private:
    Cell** board;
    vector<std::pair<Position, Position>> moves;

    vector<Position> get_possible_moves(Figure* fig);

    public:
    Chessboard();
    Chessboard(vector<Figure*>);

    void create_move(Position pos1, Position pos2);

    Cell get_cell(Position pos);
    Cell get_icell(int index, int jindex);

    friend std::ostream& operator <<(std::ostream& out, Chessboard& chess);
};

#endif