#include "../card.hpp" #include "../deck.hpp" double getPairPercentage(double minWorth=0) { double count = 0; while(true){ count++; Deck deck; auto card1 = deck.getCard(); auto card2 = deck.getCard(); if(card1.worth == card2.worth && card1.worth >= minWorth) break; } return 1 / count * 100; } double getPairBatchPercentage(double times=10, double minWorth=0) { double total = 0; double count = 0; while(times > count) { count++; total += getPairPercentage(minWorth); } return total / count; } double getPairTurns(double minWorth=0) { double count = 0; while(true){ count++; Deck deck; auto card1 = deck.getCard(); auto card2 = deck.getCard(); if(card1.worth == card2.worth && card1.worth >= minWorth) break; } return count; } double getPairBatchTurns(double minWorth=0) { double times = 1000; double total = 0; double count = 0; while(times > count) { count++; total += getPairTurns(minWorth); } return total / count; } int main() { std::cout << "Receiving pair as first hand statistics." << std::endl; double pairGeneral = getPairBatchPercentage(1000, 0); std::cout << pairGeneral << "% chance of getting a random pair." << std::endl; double pairHigh = getPairBatchPercentage(1000, 0.11); std::cout << pairHigh << "% chance of getting a (J,Q,K,A) pair." << std::endl; std::cout << pairGeneral - pairHigh << "% difference." << std::endl; double pairAce = getPairBatchPercentage(1000, 0.14); std::cout << pairAce << "% chance of getting an Ace pair (or any specific pair)" << std::endl; return 0; }