#include "Chessboard.h"
#include "Chessengine.h"
#include "RealPlayer.h"
#include "AiPlayer.h"
#include "Position.h"
#include "Figure.h"
#include "Pawn.h"
#include "Horse.h"
#include "Bishop.h"
#include "Rook.h"
#include "Queen.h"
#include "King.h"
#include <iostream>
#include <vector>

int main() {
    vector<Figure*> figures;
    // Pawn bp1(Position('A', '7'), 'B');
    // Pawn bp2(Position('B', '7'), 'B');
    // Pawn bp3(Position('C', '7'), 'B');
    // Pawn bp4(Position('D', '7'), 'B');
    // Pawn bp5(Position('E', '7'), 'B');
    // Pawn bp6(Position('F', '7'), 'B');
    // Pawn bp7(Position('G', '7'), 'B');
    // Pawn bp8(Position('H', '7'), 'B');
    // Rook br1(Position('A', '8'), 'B');
    // Rook br2(Position('H', '8'), 'B');
    // Horse bh1(Position('B', '8'), 'B');
    // Horse bh2(Position('G', '8'), 'B');
    // Bishop bb1(Position('C', '8'), 'B');
    // Bishop bb2(Position('F', '8'), 'B');
    // King bk1(Position('E', '8'), 'B');
    // Queen bq1(Position('D', '8'), 'B');

    // figures.push_back(&bp1);
    // figures.push_back(&bp2);
    // figures.push_back(&bp3);
    // figures.push_back(&bp4);
    // figures.push_back(&bp5);
    // figures.push_back(&bp6);
    // figures.push_back(&bp7);
    // figures.push_back(&bp8);
    // figures.push_back(&br1);
    // figures.push_back(&br2);
    // figures.push_back(&bh1);
    // figures.push_back(&bh2);
    // figures.push_back(&bb1);
    // figures.push_back(&bb2);
    // figures.push_back(&bk1);
    // figures.push_back(&bq1);

    // // Создание белых
    // Pawn wp1(Position('A', '2'), 'W');
    // Pawn wp2(Position('B', '2'), 'W');
    // Pawn wp3(Position('C', '2'), 'W');
    // Pawn wp4(Position('D', '2'), 'W');
    // Pawn wp5(Position('E', '2'), 'W');
    // Pawn wp6(Position('F', '2'), 'W');
    // Pawn wp7(Position('G', '2'), 'W');
    // Pawn wp8(Position('H', '2'), 'W');
    // Rook wr1(Position('A', '1'), 'W');
    // Rook wr2(Position('H', '1'), 'W');
    // Horse wh1(Position('B', '1'), 'W');
    // Horse wh2(Position('G', '1'), 'W');
    // Bishop wb1(Position('C', '1'), 'W');
    // Bishop wb2(Position('F', '1'), 'W');
    // King wk1(Position('E', '1'), 'W');
    // Queen wq1(Position('D', '1'), 'W');

    // figures.push_back(&wp1);
    // figures.push_back(&wp2);
    // figures.push_back(&wp3);
    // figures.push_back(&wp4);
    // figures.push_back(&wp5);
    // figures.push_back(&wp6);
    // figures.push_back(&wp7);
    // figures.push_back(&wp8);
    // figures.push_back(&wr1);
    // figures.push_back(&wr2);
    // figures.push_back(&wh1);
    // figures.push_back(&wh2);
    // figures.push_back(&wb1);
    // figures.push_back(&wb2);
    // figures.push_back(&wk1);
    // figures.push_back(&wq1);

    // Pawn bp1(Position('A', '5'), 'B');
    // Pawn bp2(Position('C', '7'), 'B');
    // Pawn bp3(Position('D', '7'), 'B');
    // Pawn bp4(Position('F', '6'), 'B');
    // Bishop bb1(Position('C', '8'), 'B');
    // King bk1(Position('D', '8'), 'B');

    // figures.push_back(&bp1);
    // figures.push_back(&bp2);
    // figures.push_back(&bp3);
    // figures.push_back(&bp4);
    // figures.push_back(&bb1);
    // figures.push_back(&bk1);

    // King wk1(Position('F', '8'), 'W');
    // Horse wh1(Position('C', '4'), 'W');
    // Queen wq1(Position('A', '4'), 'W');

    // figures.push_back(&wk1);
    // figures.push_back(&wh1);
    // figures.push_back(&wq1);

    RealPlayer player1;
    AiPlayer player2;

    Chessengine engine(&player1, &player2);

    // engine.load(figures, 'W');
    engine.load_base();

    engine.start();
    
    return 0;
}