#pragma once
#include "deck.hpp"
#include "game.hpp"
#include <iostream>
#include <chrono>
#include "card.hpp"
double simulate(std::string cardString = "", int times = 1000, int playerCount = 3, bool silent = true)
{
auto t1 = std::chrono::high_resolution_clock::now();
Game game = Game(playerCount);
for (int i = 0; i < times; i++)
{
game.playTheFlop(cardString);
}
if(!silent)
for (auto &player : game.players)
std::cout << player.winRate << "% " << player.cards[0].key << " " << player.cards[1].key << std::endl;
auto t2 = std::chrono::high_resolution_clock::now();
auto ms_int = std::chrono::duration_cast<std::chrono::milliseconds>(t2 - t1);
auto ms = ms_int.count();
if(!silent)
std::cout << "Executed " << times << " simulations in " << ms << "Ms" << std::endl;
return game.players[0].winRate;
}