//Copyright Tord Hjalt // Limitless_1Dlg.cpp : implementation file // #include "stdafx.h" #include "Limitless_1.h" #include "Limitless_1Dlg.h" #include //#include #include #include #include #include //för att blanda vektorer using namespace std; #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CLimitless_1Dlg dialog CLimitless_1Dlg::CLimitless_1Dlg(CWnd* pParent /*=NULL*/) : CDialog(CLimitless_1Dlg::IDD, pParent) { //{{AFX_DATA_INIT(CLimitless_1Dlg) //}}AFX_DATA_INIT // Note that LoadIcon does not require a subsequent DestroyIcon in Win32 m_hIcon = AfxGetApp()->LoadIcon(IDI_ICON1); } void CLimitless_1Dlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CLimitless_1Dlg) DDX_Control(pDX, IDC_EDIT10, m_T_score); DDX_Control(pDX, IDC_EDIT9, m_Tourn_box); DDX_Control(pDX, IDC_EDIT4, m_PST_Situation); DDX_Control(pDX, IDC_EDIT2, m_PST_Score); DDX_Control(pDX, IDC_EDIT13, m_ComboHighscore); DDX_Control(pDX, IDC_EDIT17, m_Patience_Points); DDX_Control(pDX, IDC_EDIT16, m_FoldScorebox); DDX_Control(pDX, IDC_EDIT15, m_Folderpractice); DDX_Control(pDX, IDC_EDIT6, m_RE_SCORE); DDX_Control(pDX, IDC_EDIT5, m_RE_box); DDX_Control(pDX, IDC_EDIT14, m_Tiltomatic_box); DDX_Control(pDX, IDC_EDIT1, m_MRP_score); DDX_Control(pDX, IDC_EDIT3, m_MRP_box); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CLimitless_1Dlg, CDialog) //{{AFX_MSG_MAP(CLimitless_1Dlg) ON_WM_PAINT() ON_WM_QUERYDRAGICON() ON_BN_CLICKED(IDC_BUTTON2, OnManualRangePract_HELP) ON_BN_CLICKED(IDC_BUTTON10, OnRE_Calc_HELP) ON_BN_CLICKED(IDC_BUTTON25, OnICM_HELP) ON_BN_CLICKED(IDC_BUTTON40, OnScore_HELP) ON_BN_CLICKED(IDC_BUTTON4, OnPreflopSitTrain_HELP) ON_BN_CLICKED(IDC_BUTTON15, OnSPR_HELP) ON_BN_CLICKED(IDC_BUTTON1, OnMPR_CorrectNext) ON_BN_CLICKED(IDC_BUTTON3, OnMRP_incorrect) ON_BN_CLICKED(IDC_BUTTON42, OnCombos_HELP) ON_BN_CLICKED(IDC_BUTTON43, OnTilt_HELP) ON_BN_CLICKED(IDC_BUTTON39, OnTilt_o_matic) ON_BN_CLICKED(IDC_BUTTON44, OnTilt_YES) ON_BN_CLICKED(IDC_BUTTON45, OnTilt_NO) ON_BN_CLICKED(IDC_BUTTON46, OnTilt_RESET) ON_BN_CLICKED(IDC_BUTTON13, OnRE_Start) ON_BN_CLICKED(IDC_BUTTON11, OnRE_Fold) ON_BN_CLICKED(IDC_BUTTON12, OnRE_Call) ON_BN_CLICKED(IDC_BUTTON47, OnFOOOLD) ON_BN_CLICKED(IDC_BUTTON50, OnPatience_Help) ON_BN_CLICKED(IDC_BUTTON49, OnPatience_HIT) ON_BN_CLICKED(IDC_BUTTON51, OnRE_reset) ON_BN_CLICKED(IDC_BUTTON41, OnHIGHSCORES) ON_BN_CLICKED(IDC_BUTTON52, OnMRP_Done) ON_BN_CLICKED(IDC_BUTTON53, OnPatience_DONE) ON_BN_CLICKED(IDC_BUTTON54, OnHighscoresRESET) ON_BN_CLICKED(IDC_BUTTON5, OnPST_Strart) ON_BN_CLICKED(IDC_BUTTON6, OnPST_OPEN) ON_BN_CLICKED(IDC_BUTTON7, OnPST_FOLD) ON_BN_CLICKED(IDC_BUTTON8, OnPST_CALL) ON_BN_CLICKED(IDC_BUTTON9, OnPST_3B) ON_BN_CLICKED(IDC_BUTTON16, OnPST_OPEN_CALL_3B) ON_BN_CLICKED(IDC_BUTTON17, OnPST_OPEN_FOLD) ON_BN_CLICKED(IDC_BUTTON18, OnPST_OPEN_4B) ON_BN_CLICKED(IDC_BUTTON55, OnPST_RESET) ON_BN_CLICKED(IDC_BUTTON56, OnFOOLD_Call) ON_BN_CLICKED(IDC_BUTTON24, OnTournaments) ON_BN_CLICKED(IDC_BUTTON26, OnTournPUSH) ON_BN_CLICKED(IDC_BUTTON27, OnTournFOLD) ON_BN_CLICKED(IDC_BUTTON14, OnResetTourn) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CLimitless_1Dlg message handlers BOOL CLimitless_1Dlg::OnInitDialog() { CDialog::OnInitDialog(); // Set the icon for this dialog. The framework does this automatically // when the application's main window is not a dialog SetIcon(m_hIcon, TRUE); // Set big icon SetIcon(m_hIcon, FALSE); // Set small icon // TODO: Add extra initialization here //Licence conditions ///////////////////////////////////////////// int Realyear = 0; int Realmonth = 0; int Realday = 0; int Realhour = 0; int dotW = 0; COleDateTime dtCurrent; dtCurrent = COleDateTime::GetCurrentTime(); //Realyear = (int)dtCurrent.GetYear(); //Realmonth = (int)dtCurrent.GetMonth(); //Realday = (int)dtCurrent.GetDay(); //Realhour = (int)dtCurrent.GetHour(); dotW = (int)dtCurrent.GetDayOfWeek(); //will probably release as freeware //or use only M-F, 17:00-20:00: (or 18:00-19:00?) //ofstream foutDATE("date.txt"); //foutDATE << Realyear << " " << Realmonth << " " << dotW << " " << Realhour << endl; //foutDATE.close(); //Monday = 2 //M-F = 2-6 //Sun-Sat = 1-7 //test: //Realday = 6; //if((dotW > 2) || (dotW < 2))//only Mondays //{ // MessageBox("This trial edition only works on Mondays\n" // "Purchase the full version at blablabla.com", "Cardcharodon", MB_OK); // EndDialog(1); //} //if((Realyear > 2019) || (Realmonth > 4)) //if older than apr or 2019 //{ // MessageBox("This trial edition has expired.\n" // "Purchase the full version at blablabla.com", "Cardcharodon", MB_YESNO); //EndDialog(1); //} //Licence conditions ///////////////////////////////////////////// /////////////////////// Highscore list ///////////////////////// //check if it's there, else create it: ifstream ifHigh("Highscores.txt"); if (!ifHigh) { ofstream ofHigh("Highscores.txt"); for(int k = 0; k < 10; k++) { ofHigh << "0" << " "; } ofHigh.close(); } else ifHigh.close(); /////////////////////// Highscore list ///////////////////////// return TRUE; // return TRUE unless you set the focus to a control } // If you add a minimize button to your dialog, you will need the code below // to draw the icon. For MFC applications using the document/view model, // this is automatically done for you by the framework. void CLimitless_1Dlg::OnPaint() { if (IsIconic()) { CPaintDC dc(this); // device context for painting SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0); // Center icon in client rectangle int cxIcon = GetSystemMetrics(SM_CXICON); int cyIcon = GetSystemMetrics(SM_CYICON); CRect rect; GetClientRect(&rect); int x = (rect.Width() - cxIcon + 1) / 2; int y = (rect.Height() - cyIcon + 1) / 2; // Draw the icon dc.DrawIcon(x, y, m_hIcon); } else { CDialog::OnPaint(); } } // The system calls this to obtain the cursor to display while the user drags // the minimized window. HCURSOR CLimitless_1Dlg::OnQueryDragIcon() { return (HCURSOR) m_hIcon; } ////////////////////////// G L O B A L S HERE: ///////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////// float MRP_Points = 0; CString CUSize = ""; float iRuns = 0; float score = 0.0f; int iQtilt = 0; int iTilt = 225; CString cTAnswer = ""; string sX; int Time1 = 0; int Time2 = 0; int Pot = 0; int iSize = 0; float Bet = 0; int Oppbet = 0; int iOuts = 0; int iStreets = 0; int iAnsw = 0; int Points = 0; int RE = 0; int RE_runs = 0; int iFolds = 0; int ivar = 0; int iPaPoints = 0; int Time3 = 0; int Time4 = 0; float fAccupoint = 0; vectorvHighscores; int iScenario = 0; int iPST_time = 0; int iPST = 0; int iPST_Points = 0; int iNoCheat = 0; int iPST_runs = 0; int iTcheck = 0; int iTscore = 0; int iTour_time = 0; int Time1T = 0; int Time2T = 0; int iNoCheatTurn = 0; int iTurnRuns = 0; int iNoCheatRE = 0; int iNoCheatTilt = 0; // To track first use of buttons /////////// int iPushMRP = 0; //function declarations: CString DaSizer(float); CString RanCards(void); CString pstGenerator(int); ////////////////////////////////////////////////////////////////////////////////////// void CLimitless_1Dlg::OnManualRangePract_HELP() { MessageBox("This is for memorizing standard open charts.\n" "Press Correct/Next to start. Two random cards will show.\n" "Make your decision, and check your own chart if it was correct.\n" "Score your own performance by pressing Correct/next or Incorrect/next.\n" "Points increase with long runs of correct answers, not speed.\n" "Press 'Done' to log result to Highscore list and reset variables.\n", "Cardcharodon", MB_OK); } void CLimitless_1Dlg::OnRE_Calc_HELP() { MessageBox("This will train your ability to estimate odds or % equity.\n" "Press Start. A random situation will show.\n" "Quickly decide if you should fold or call here.\n" "The faster you are correct, the better your score.\n" "Note that in reality you should also consider \n" "open/end-of-action, board, V profile, stacks, position etc. ", "Cardcharodon", MB_OK); } void CLimitless_1Dlg::OnICM_HELP() { MessageBox("Tournament training.\n" "Press Start. A random situation will show.\n" "Quickly decide if you should push or fold here.\n" "Ten situations play each time.\n" "The faster you are correct, the better your score.", "Cardcharodon", MB_OK); } void CLimitless_1Dlg::OnScore_HELP() { MessageBox("Here you can see your current combined highscore.\n" "Fold and Tilt are not included.\n" " \n" "0-79 points = Fish, you need a lot more study.\n" "80-149 points = Reg, you need some more study.\n" "150+ points = Crusher, you only need this for reassurance during a downswing.", "Cardcharodon", MB_OK); } void CLimitless_1Dlg::OnPreflopSitTrain_HELP() { MessageBox("This will train your responses in some common preflop situations.\n" "Press Start. A random situation will show.\n" "Quickly decide what to do, and click a button.\n" "Ten situations play each time.\n" "In reality, type of villains, stack sizes etc may alter these fixed ranges.\n" "The faster you are correct, the better your score.", "Cardcharodon", MB_OK); } void CLimitless_1Dlg::OnSPR_HELP() { MessageBox("This will train Stack-to-Pot-Ratio estimation speed.\n" "Press Start. A random situation will show.\n" "Quickly decide what to do, and click a button.\n" "Ten situations play each time.\n" "The faster you are correct, the better your score.", "Cardcharodon", MB_OK); } void CLimitless_1Dlg::OnCombos_HELP() { MessageBox("Beginners typically overcall.\n" "This trainer will condition you to fold more often.\n" , "Cardcharodon", MB_OK); } void CLimitless_1Dlg::OnTilt_HELP() { MessageBox("Are you mentally fit to play poker right now?\n" "Press the button and answer the eight questions honestly.\n" "A score and a recommendation will show.\n", "Cardcharodon", MB_OK); } void CLimitless_1Dlg::OnPatience_Help() { MessageBox("Push the 'Hit' button SLOW to accumulate points.\n" "If you push 'Hit' repeatedly too fast, the whole program freezes.\n" "As with real Poker, there are sometimes random downswings.\n" "As with real Poker, the accumulation rate increases after a while.\n" "Press 'Done' to log points.\n" , "Cardcharodon", MB_OK); } void CLimitless_1Dlg::OnMPR_CorrectNext() { //start timer: // Time1 = GetTickCount(); float fMRPpoints = 0; CString cMRP = ""; //function call, draw two cards: cMRP = RanCards(); //Display cards: m_MRP_box.SetWindowText(cMRP); if(iPushMRP > 0) {MRP_Points++;} iPushMRP++; iRuns++; score = (MRP_Points/iRuns)*100; //round off to one decimal: //Display current points: //CString cPoints = DaSizer(MRP_Points); //int to CString by txt file if(iPushMRP == 1) iRuns = 0; //avoids divide by zero bug CString cRuns = DaSizer(iRuns); CString cScore = DaSizer(score); //CUSize = "P:" + cPoints + " R:" + cRuns + "S:" + cScore; CUSize = "Runs:" + cRuns + ", " + cScore + " %"; m_MRP_score.SetWindowText(CUSize); }// end Correct MRP void CLimitless_1Dlg::OnMRP_incorrect() { CString cMRP = ""; //function call, draw two cards: cMRP = RanCards(); //Display cards: m_MRP_box.SetWindowText(cMRP); iPushMRP++; iRuns++; score = (MRP_Points/iRuns)*100; //Display current points: //CString cPoints = DaSizer(MRP_Points); //int to CString by txt file if(iPushMRP == 1) iRuns = 0; //avoids divide by zero bug CString cRuns = DaSizer(iRuns); CString cScore = DaSizer(score); //CUSize = "P:" + cPoints + " R:" + cRuns + "S:" + cScore; CUSize = "Runs:" + cRuns + ", " + cScore + " %"; m_MRP_score.SetWindowText(CUSize); }// end Incorrect MRP void CLimitless_1Dlg::OnMRP_Done() { //convert from % to points based on //round and %, at dimension of about 20: int iMRPpoints = (score/10) * (iRuns/20); //log results to highscore list: ifstream inHigh("Highscores.txt"); if(!inHigh) {MessageBox("Highscore list gone?");} else { int inPoints = 0; while(inHigh >> inPoints) vHighscores.push_back(inPoints); inHigh.close(); if(vHighscores[0] < iMRPpoints)//update if points higher than before // 0 = MRP, 1 = RE, 2 = ICM, 3 = Patience, 4 = PST, 5 = SPR, 6 = Betsize { // vHighscores[0] = iMRPpoints; CString cScore = DaSizer(iMRPpoints); CString CHigh = "Highscore! " + cScore; m_MRP_score.SetWindowText(CHigh); ofstream outHigh("Highscores.txt"); for(int i = 0; i < 10; i++) { outHigh << vHighscores[i] << " "; } outHigh.close(); vHighscores.erase(vHighscores.begin(), vHighscores.end()); } }//end else !inhigh //reset: iPushMRP = 0; MRP_Points = 0; iPushMRP = 0; iRuns = 0; score = 0; //m_MRP_score.SetWindowText(""); m_MRP_box.SetWindowText(""); }//end mrp done void CLimitless_1Dlg::OnTilt_o_matic() { iNoCheatTilt = 0; //prevents cheating by multiclicks //add some equivalent questions for each to simulate variation: switch(iQtilt) //user has to click 'next' { case 0: { Sleep(33); srand(GetTickCount()); int iTiltzero = (rand() % 3)+1;//1-3 switch(iTiltzero) { case 1: {m_Tiltomatic_box.SetWindowText("Did you sleep well last night?");}break; case 2: {m_Tiltomatic_box.SetWindowText("Do you feel completely well rested?");}break; case 3: {m_Tiltomatic_box.SetWindowText("Are you full of energy?");}break; default: {m_Tiltomatic_box.SetWindowText("Is it safe?");}break; } } break; case 1: { Sleep(25); srand(GetTickCount()); int iTiltOne = (rand() % 3)+1;//1-3 switch(iTiltOne) { case 1: {m_Tiltomatic_box.SetWindowText("Does your head spin when you close your eyes?");}break; case 2: {m_Tiltomatic_box.SetWindowText("Do you feel dizzy when you sit?"); }break; case 3: {m_Tiltomatic_box.SetWindowText("Do you have problems walking straight?"); }break; default: {m_Tiltomatic_box.SetWindowText("You know me, right?");}break; } }break; case 2: { Sleep(15); srand(GetTickCount()); int iTiltTwo = (rand() % 3)+1;//1-3 switch(iTiltTwo) { case 1: {m_Tiltomatic_box.SetWindowText("Did you lose or win big recently?"); }break; case 2: {m_Tiltomatic_box.SetWindowText("Did you win big recently?"); }break; case 3: {m_Tiltomatic_box.SetWindowText("Did you lose big recently?"); }break; default: {m_Tiltomatic_box.SetWindowText("Did your whole bankroll just vanish?"); }break; } }break; case 3: { Sleep(5); srand(GetTickCount()); int iTiltThree = (rand() % 3)+1;//1-3 switch(iTiltThree) { case 1: {m_Tiltomatic_box.SetWindowText("Did you snap at someone today?"); }break; case 2: {m_Tiltomatic_box.SetWindowText("Did you yell at someone while driving today?"); }break; case 3: {m_Tiltomatic_box.SetWindowText("Have you recently argued with your spouse?"); }break; default: {m_Tiltomatic_box.SetWindowText("How about them Hawkeyes?"); }break; } }break; case 4: { Sleep(51); srand(GetTickCount()); int iTiltFour = (rand() % 3)+1;//1-3 switch(iTiltFour) { case 1: {m_Tiltomatic_box.SetWindowText("Have you been feeling absent-minded today?"); }break; case 2: {m_Tiltomatic_box.SetWindowText("Are you unfocused today?"); }break; case 3: {m_Tiltomatic_box.SetWindowText("Do you have trouble concentrating?"); }break; default: {m_Tiltomatic_box.SetWindowText("Are you serious?"); }break; } }break; case 5: { Sleep(51); srand(GetTickCount()); int iTiltFour = (rand() % 3)+1;//1-3 switch(iTiltFour) { case 1: {m_Tiltomatic_box.SetWindowText("Do you drift away, daydreaming a lot today?"); }break; case 2: {m_Tiltomatic_box.SetWindowText("Does daydreaming interfere with your thoughts?"); }break; case 3: {m_Tiltomatic_box.SetWindowText("Do you vividly imagine exotic other places?"); }break; default: {m_Tiltomatic_box.SetWindowText("Did you do the right thing?"); }break; } }break; case 6: { m_Tiltomatic_box.SetWindowText("Did you meditate today?"); }break; case 7: { m_Tiltomatic_box.SetWindowText("Are you worried about something else?"); }break; case 8: { if(iTilt < 1) { cTAnswer = "No tilt, safe to play."; CString cTilt = DaSizer(iTilt); cTAnswer = cTAnswer + "Level: " + cTilt; m_Tiltomatic_box.SetWindowText(cTAnswer);} if((iTilt > 1)&&(iTilt < 100)) { cTAnswer = "Minor tilt, should be OK."; CString cTilt = DaSizer(iTilt); cTAnswer = cTAnswer + "Level: " + cTilt; m_Tiltomatic_box.SetWindowText(cTAnswer);} if((iTilt > 99)&&(iTilt < 200)) { cTAnswer = "Some tilt, be careful."; CString cTilt = DaSizer(iTilt); cTAnswer = cTAnswer + "Level: " + cTilt; m_Tiltomatic_box.SetWindowText(cTAnswer);} if(iTilt > 200) { cTAnswer = "Serious tilt, don't play."; CString cTilt = DaSizer(iTilt); cTAnswer = cTAnswer + "Level: " + cTilt; m_Tiltomatic_box.SetWindowText(cTAnswer);} }break; default: { m_Tiltomatic_box.SetWindowText("Test over."); // }break; }//end sw iqtilt iQtilt++; //counts up to fwd to next question next time }//end button tilt void CLimitless_1Dlg::OnTilt_YES() { iNoCheatTilt++; //prevents multiclicks if(iNoCheatTilt < 2) { //iQtilt is ahead one step from start/next //so starts here at case 1, not case 0 switch(iQtilt) { case 1: { //Did you sleep well last night? iTilt = iTilt - 45; } break; case 2: { //"Does your head spin when you close your eyes? iTilt = iTilt + 20; }break; case 3: { //Did you lose or win big recently?" iTilt = iTilt + 25; }break; case 4: { //Have you snapped at someone today?"); iTilt = iTilt + 35; }break; case 5: { //Have you been feeling absent-minded today?"); iTilt = iTilt + 20; }break; case 6: { //Do you drift away, daydreaming a lot today?"); iTilt = iTilt + 20; }break; case 7: { //Did you meditate today?"); iTilt = iTilt - 35; }break; case 8: { //Are you worrying about something else?"); iTilt = iTilt + 25; }break; case 9: { //do nothing }break; default: { m_Tiltomatic_box.SetWindowText("test over"); }break; }//end sw iqtilt }//end if no cheat }//end tilt yes void CLimitless_1Dlg::OnTilt_NO() { //iQtilt is ahead one step from start/next //so starts here at case 1, not case 0 iNoCheatTilt++; //prevents multiclicks if(iNoCheatTilt < 2) { switch(iQtilt) { case 1: { //Did you sleep well last night? iTilt = iTilt + 45; } break; case 2: { //"Does your head spin when you close your eyes? iTilt = iTilt - 30; }break; case 3: { //Did you lose or win big recently?" iTilt = iTilt - 30; }break; case 4: { //Have you snapped at someone today?"); iTilt = iTilt - 25; }break; case 5: { //Have you been feeling absent-minded today?"); iTilt = iTilt - 15; }break; case 6: { //Do you drift away, daydreaming a lot today?"); iTilt = iTilt - 20; }break; case 7: { //Did you meditate today?"); iTilt = iTilt + 30; }break; case 8: { //Are you worrying about something else?"); iTilt = iTilt - 25; }break; case 9: { //do nothing }break; default: { m_Tiltomatic_box.SetWindowText("test over"); }break; }//end sw iqtilt }//end no cheat }//end tilt no void CLimitless_1Dlg::OnTilt_RESET() { iTilt = 225; iQtilt = 0; m_Tiltomatic_box.SetWindowText(""); }//end tilt reset void CLimitless_1Dlg::OnRE_Start() { iNoCheatRE = 0; //part of preventing multiclicking call or fold buttons below //count run number: RE_runs++; if(RE_runs > 10) { m_RE_box.SetWindowText("Session over."); //log results to highscore list: ifstream inHighRE("Highscores.txt"); if(!inHighRE) {MessageBox("Highscore list gone?");} else { int inPointsRE = 0; while(inHighRE >> inPointsRE) vHighscores.push_back(inPointsRE); inHighRE.close(); if(vHighscores[1] < Points)//update if points higher than before // 0 = MRP, 1 = RE, 2 = ICM, 3 = Patience, 4 = PST, 5 = SPR, 6 = Betsize { vHighscores[1] = Points; CString cPointsRE = DaSizer(Points); CString CHighRE = "Session over. Highscore! " + cPointsRE; m_RE_box.SetWindowText(CHighRE); m_RE_SCORE.SetWindowText(""); ofstream outHighRE("Highscores.txt"); for(int i = 0; i < 10; i++) { outHighRE << vHighscores[i] << " "; } outHighRE.close(); vHighscores.erase(vHighscores.begin(), vHighscores.end()); }//end if highscores }//end else !inhighRE }//end if Re runs > 10 else { //random numbers selector function declaration: int fRAN(int S); //random bet size function declaration: float fBET(int B); int iInput = 0; //random pot size: Pot = fRAN(1); CString cPot = DaSizer(Pot); //random opponent bet size: iSize = fRAN(2);//1-12 Bet = fBET(iSize);//12 different fractions, 0.10-12.00, as floats Oppbet = Bet * Pot;//as related to pot size CString cOpp = DaSizer(Oppbet); //Hero's outs: iOuts = fRAN(3);//2-23? CString cOut = DaSizer(iOuts); //streets left: iStreets = fRAN(4);//1-2 CString cStreet = DaSizer(iStreets); //start timer: Time1 = GetTickCount(); //present to user, ask for input: CString cRE = "Pot size: " + cPot + ". V bets: " + cOpp + ". Hero outs: " + cOut + ". Streets left: " + cStreet + "."; m_RE_box.SetWindowText(cRE); //now user presses call or fold button }//end else RE runs > 10 }//end RE start void CLimitless_1Dlg::OnRE_Call() { iNoCheatRE++; //prevents multiclicks if(iNoCheatRE < 2) { sX = "c"; iAnsw = 1; CString cRE_CALL = ""; if(RE_runs > 10) { m_RE_box.SetWindowText("Session over."); } else { //solve, put a copy in each of the call/ fold button functions: //can't switch on floats...have to use ifs.. if(Bet == 0.10f) RE = 9; else if(Bet == 0.20f) RE = 14; else if(Bet == 0.25f) RE = 17; else if(Bet == 0.33f) RE = 20; else if(Bet == 0.50f) RE = 25; else if(Bet == 0.75f) RE = 30; else if(Bet == 1.00f) RE = 33; else if(Bet == 0.67f) RE = 29; else if(Bet == 1.50f) RE = 40; else if(Bet == 5.00f) RE = 50; else if(Bet == 1.20f) RE = 40; else if(Bet == 12.00f) RE = 50; int iStreetouts = 0; if(iStreets == 1) iStreetouts = 2; else//iStreets can only be 1 or 2 iStreetouts = 4; int iRE = 0; int iBad = 0; if((((iOuts*iStreetouts)== RE) || ((iOuts*iStreetouts) > RE))) iRE = 1; else // have < RE iRE = 5; //if(((sX == "c") || (sX == "C"))) //now by call button instead //iAnsw = 1; //else // answered 'f/F' //iAnsw = 5; if((iRE == 1) && (iAnsw == 1))//you have RE and answered 'call' {//cout << "correct, call." << endl; cRE_CALL = "correct, call"; m_RE_box.SetWindowText(cRE_CALL); Points++; CString cPoints = DaSizer(Points); m_RE_SCORE.SetWindowText(cPoints); //cout << "Points: " << Points << endl; iBad = 1;} //else if((iRE == 5) && (iAnsw == 5))//you have < RE and answered 'fold' //{cout << "correct, fold." << endl; Points++; //cout << "Points: " << Points << endl; iBad = 1;} //stop timer and evaluate: Time2 = GetTickCount(); int Elapsed = Time2 - Time1; if(Elapsed > 20000)//about > 20 seconds {//Beep(340,400); //cout << "Slow!" << endl; cRE_CALL = cRE_CALL + ", SLOW!"; m_RE_box.SetWindowText(cRE_CALL); Points--;Points--;Points--; } if((Elapsed < 10000)&& (iBad > 0))//correct and answered in about < 10 seconds {//Beep(410,200); Beep(480,300);//cout << "Fast!" << endl; //cRE_CALL = cRE_CALL + ", FAST!"; m_RE_box.SetWindowText(cRE_CALL); Points++; //add more granulated time bonus for more variation of high scores: Points = Points + ( 4000/Elapsed ); } if(iBad < 1) {//cout << "that is incorrect" << endl; cRE_CALL = "That is incorrect."; m_RE_box.SetWindowText(cRE_CALL); Points--;Points--; CString cPoints = DaSizer(Points); m_RE_SCORE.SetWindowText(cPoints); } RE = 0; //reset }//end else re run >10 }//end if inocheatre < 2 }//end re call void CLimitless_1Dlg::OnRE_Fold() { iNoCheatRE++; //prevents multiclicks if(iNoCheatRE < 2) { sX = "f"; iAnsw = 5; CString cRE_FOLD = ""; if(RE_runs > 10) { m_RE_box.SetWindowText("Session over."); } else { //solve, put a copy in each of the call/ fold button functions: //can't switch on floats...have to use ifs.. if(Bet == 0.10f) RE = 9; else if(Bet == 0.20f) RE = 14; else if(Bet == 0.25f) RE = 17; else if(Bet == 0.33f) RE = 20; else if(Bet == 0.50f) RE = 25; else if(Bet == 0.75f) RE = 30; else if(Bet == 1.00f) RE = 33; else if(Bet == 0.67f) RE = 29; else if(Bet == 1.50f) RE = 40; else if(Bet == 5.00f) RE = 50; else if(Bet == 1.20f) RE = 40; else if(Bet == 12.00f) RE = 50; int iStreetouts = 0; if(iStreets == 1) iStreetouts = 2; else//iStreets can only be 1 or 2 iStreetouts = 4; int iRE = 0; int iBad = 0; if((((iOuts*iStreetouts)== RE) || ((iOuts*iStreetouts) > RE))) iRE = 1; else // have < RE iRE = 5; if(iRE == 5)//you have < RE and answered 'fold' {//cout << "correct, fold." << endl; cRE_FOLD = "Correct, fold."; m_RE_box.SetWindowText(cRE_FOLD); Points++; CString cPoints = DaSizer(Points); m_RE_SCORE.SetWindowText(cPoints); //cout << "Points: " << Points << endl; iBad = 1; } //stop timer and evaluate: Time2 = GetTickCount(); int Elapsed = Time2 - Time1; if(Elapsed > 20000)//about > 20 seconds {///Beep(340,400); //cout << "Slow!" << endl; cRE_FOLD = cRE_FOLD + ", SLOW!"; m_RE_box.SetWindowText(cRE_FOLD); Points--;Points--;Points--; } if((Elapsed < 10000)&& (iBad > 0))//correct and answered in about < 10 seconds {//Beep(410,200); Beep(480,300);//cout << "Fast!" << endl; //cRE_FOLD = cRE_FOLD + ", FAST!"; m_RE_box.SetWindowText(cRE_FOLD); Points++; //add more granulated time bonus for more variation of high scores: Points = Points + ( 4000/Elapsed ); } if(iBad < 1) {//cout << "that is incorrect" << endl; cRE_FOLD = "That is incorrect."; m_RE_box.SetWindowText(cRE_FOLD); Points--;Points--; CString cPoints = DaSizer(Points); m_RE_SCORE.SetWindowText(cPoints); } RE = 0; //reset }//end else re runs > 10 }// end if(iNoCheatRE < 2) }//end RE fold void CLimitless_1Dlg::OnRE_reset() { m_RE_box.SetWindowText(""); m_RE_SCORE.SetWindowText(""); Points = 0; RE_runs = 0; } void CLimitless_1Dlg::OnFOOOLD() { m_Folderpractice.SetWindowText(""); vectorcFolders; CString cF1 = "A very tight player,UTG, opens 12x BB. You are UTG +1 with Kh8s."; CString cF2 = "UTG, a nit, opens 3x BB. CO, skilled Reg, calls. You are SB with As2d."; CString cF3 = "BU, Reg, opens 2,5 BB. SB (Reg) 3B to 10 BB. You are BB with 6d6c."; CString cF4 = "Three players plus you call, flop: AdKd9d. They bet/call 50 % pot. You are BU with 7s7c."; CString cF5 = "Four players plus you call, flop: AhKh3h. They bet/call 75 % pot. You are BU with 8d5h."; CString cF6 = "A tight player C-bets flop (10sAcAd), pot-sized. You have Kh5h."; CString cF7 = "You are SB with Ah7d. A strong Reg is in the BB. BU (nit), opens 2x BB."; CString cF8 = "A skilled player limps from BU. Another skilled player is in BB. You: SB with 5h5s."; CString cF9 = "A very tight player,UTG, opens 3x BB. You are CO with JhJs."; CString cF10 = "UTG opens 4x BB. CO and BU call. You are BB with As7d."; CString cF11 = "A player with 250 BB 2,5x opens from BU. You have 75 BB, in BB with 10c10s."; CString cF12 = "The flop comes AhAsKd. You check with 7s8s. Villain C-bets 80 % pot."; CString cF13 = "The flop comes 5s9h5d. You check with 3d3s. Villain C-bets 75 % pot."; CString cF14 = "You have Kh4h, flop: 9sKc4d. You check-raise, villain calls, then raises turn 9d All-in."; CString cF15 = "You min bet with AhAd on the 6h3d4s 5c board. Villain (Nit) raises All-in."; CString cF16 = "You min bet with AhKh on the 10h10sJs Jh board. Villain (Reg) raises All-in."; CString cF17 = "You bet 20 % pot with 5h5s on the 5c9cKc board. Villain (Reg) raises All-in."; CString cF18 = "You open BU with 8s9s. BB (Nit) calls. Flop: JhAdJs. Villain bets pot."; CString cF19 = "You open CO with 8s8h. BB (Reg) calls. Flop: 10hKcQd. Villain check-raises."; CString cF20 = "You open UTG with 3s4h. BU (Reg) calls. Flop: AdAh10c. Villain raises your minbet."; CString cF21 = "You are BU with 7c7s. UTG opens All-in, HJ and CO call."; CString cF22 = "You are BU with 9c10d. UTG opens All-in, HJ, and CO call."; CString cF23 = "You are SB with JsQh. UTG opens All-in, HJ, CO, and BU call."; CString cF24 = "A known overfolder limps from BU. A skilled player is in BB. You: SB with Qd9s."; CString cF25 = "A known overfolder limps from BU. A skilled player is in BB. You: SB with Ks4h."; CString cF26 = "A very tight player,UTG, opens 10x BB. You are UTG +1 with 8s8d."; CString cF27 = "A very tight player,UTG, opens 4x BB. You are HJ with 10h9d."; CString cF28 = "You are UTG (6-max) with 4h4s."; CString cF29 = "You are UTG (6-max) with Qd3h."; CString cF30 = "You are UTG (full ring) with 7s8h."; CString cF31 = "You are UTG (full ring) with 9d9c."; cFolders.push_back(cF1); cFolders.push_back(cF2); cFolders.push_back(cF3); cFolders.push_back(cF4);cFolders.push_back(cF5);cFolders.push_back(cF6); cFolders.push_back(cF7);cFolders.push_back(cF8);cFolders.push_back(cF9); cFolders.push_back(cF10); cFolders.push_back(cF11); cFolders.push_back(cF12); cFolders.push_back(cF13);cFolders.push_back(cF14);cFolders.push_back(cF15); cFolders.push_back(cF16);cFolders.push_back(cF17);cFolders.push_back(cF18); cFolders.push_back(cF19); cFolders.push_back(cF20); cFolders.push_back(cF21); cFolders.push_back(cF22);cFolders.push_back(cF23);cFolders.push_back(cF24); cFolders.push_back(cF25);cFolders.push_back(cF26);cFolders.push_back(cF27); cFolders.push_back(cF28);cFolders.push_back(cF29);cFolders.push_back(cF30); cFolders.push_back(cF31); random_shuffle(cFolders.begin(), cFolders.end()); Sleep(33); srand(GetTickCount()); int iSelFold = (rand() % 4); switch(iSelFold) { case 1: { random_shuffle(cFolders.begin(), cFolders.end()); random_shuffle(cFolders.begin(), cFolders.end()); }break; case 2: { random_shuffle(cFolders.begin(), cFolders.end()); random_shuffle(cFolders.begin(), cFolders.end()); random_shuffle(cFolders.begin(), cFolders.end()); }break; case 3: { random_shuffle(cFolders.begin(), cFolders.end()); random_shuffle(cFolders.begin(), cFolders.end()); random_shuffle(cFolders.begin(), cFolders.end()); random_shuffle(cFolders.begin(), cFolders.end()); random_shuffle(cFolders.begin(), cFolders.end()); random_shuffle(cFolders.begin(), cFolders.end()); }break; case 4: { random_shuffle(cFolders.begin(), cFolders.end()); random_shuffle(cFolders.begin(), cFolders.end()); random_shuffle(cFolders.begin(), cFolders.end()); random_shuffle(cFolders.begin(), cFolders.end()); random_shuffle(cFolders.begin(), cFolders.end()); random_shuffle(cFolders.begin(), cFolders.end()); random_shuffle(cFolders.begin(), cFolders.end()); random_shuffle(cFolders.begin(), cFolders.end()); }break; default: { random_shuffle(cFolders.begin(), cFolders.end()); }break; }//end sw iselfold Sleep(133); srand(GetTickCount()); int iSelFold2 = (rand() % 6); CString cFoldOut = cFolders[iSelFold2]; m_Folderpractice.SetWindowText(cFoldOut); cFolders.erase(cFolders.begin(), cFolders.end()); iFolds++; CString cFoldPoints = DaSizer(iFolds); m_FoldScorebox.SetWindowText(cFoldPoints); }//end on fold void CLimitless_1Dlg::OnFOOLD_Call() { iFolds--;iFolds--;iFolds--;iFolds--; CString cFoldPoints = DaSizer(iFolds); m_FoldScorebox.SetWindowText(cFoldPoints); //Beep(200,20); Beep(300,30); Beep(400,40); Beep(500,50); } //void CLimitless_1Dlg::OnDONATE() //{ // ShellExecute(0,0,"http://www.visipower.com",0,0,SW_SHOW); //} void CLimitless_1Dlg::OnPatience_HIT() { //if(ivar > 0) iPaPoints = iPaPoints + 42; iPaPoints++; Sleep(20); srand(GetTickCount()); int iGrit = (rand() % 15) + 1;//1-15? if(iPaPoints < 50) { fAccupoint = fAccupoint + iGrit/260.335f; } else if((iPaPoints > 50) && (iPaPoints < 200)) { fAccupoint = fAccupoint + iGrit/80.335f; //Beep(200,50); Sleep(35); srand(GetTickCount()); int iDownswing = (rand() % 100) + 1;//1-100? if(iDownswing == 3) { // 1 % risk downswing simulator... fAccupoint = fAccupoint/3; //Beep(500,150); Beep(250,150); } } else if((iPaPoints > 200) && (iPaPoints < 400)) { fAccupoint = fAccupoint + iGrit/34.77f; //Beep(300,150); } else if(iPaPoints > 400) { fAccupoint = fAccupoint + iGrit/4.123f; //Beep(400,150); } CString cPP = DaSizer(fAccupoint); m_Patience_Points.SetWindowText(cPP); Sleep(2000); //else too easy to do frequent clicking... } void CLimitless_1Dlg::OnPatience_DONE() { m_Patience_Points.SetWindowText(""); //log results to highscore list: ifstream inHighP("Highscores.txt"); if(!inHighP) {MessageBox("Highscore list gone?");} else { int inPointsP = 0; while(inHighP >> inPointsP) vHighscores.push_back(inPointsP); inHighP.close(); if(vHighscores[3] < fAccupoint)//update if points higher than before // 0 = MRP, 1 = RE, 2 = ICM, 3 = Patience, 4 = PST, 5 = SPR, 6 = Betsize { vHighscores[3] = fAccupoint; int iAccu = fAccupoint; CString cScoreP = DaSizer(iAccu); CString CHighP = "Highscore! " + cScoreP; m_Patience_Points.SetWindowText(CHighP); ofstream outHighP("Highscores.txt"); for(int i = 0; i < 10; i++) { outHighP << vHighscores[i] << " "; } outHighP.close(); vHighscores.erase(vHighscores.begin(), vHighscores.end()); } }//end else !inhigh //reset: iPaPoints = 0; fAccupoint = 0; }//end patience done //Function to convert int to CString points: CString DaSizer(float iSized) { CString Csize = ""; char ch; vectorvChars; ofstream fout2("studs1.txt"); if(!fout2) { Csize = "Dasizer file problem 1"; return Csize;} fout2 << iSized; fout2.close(); ifstream fin2("studs1.txt"); if(!fin2) { Csize = "Dasizer file problem 2"; return Csize;} while(fin2 >> ch) vChars.push_back(ch); fin2.close(); remove("studs1.txt"); for(int j = 0; j < vChars.size(); j++) { Csize = Csize + vChars[j]; } vChars.erase(vChars.begin(), vChars.end()); return Csize; }//end DaSizer //Function for drawing two random cards: CString RanCards(void) { //load card vectors: //Clubs: CString Ac = "Ac"; CString Kc = "Kc"; CString Qc = "Qc"; CString Jc = "Jc"; CString Tc = "Tc"; CString Nc = "9c"; CString Ec = "8c"; CString Sevc = "7c"; CString Sixc = "6c"; CString Fivc = "5c"; CString Fourc = "4c"; CString Threec = "3c"; CString Twoc = "2c"; vectorvClubs; vClubs.push_back(Ac); vClubs.push_back(Kc); vClubs.push_back(Qc); vClubs.push_back(Jc); vClubs.push_back(Tc); vClubs.push_back(Nc); vClubs.push_back(Ec); vClubs.push_back(Sevc); vClubs.push_back(Sixc); vClubs.push_back(Fivc); vClubs.push_back(Fourc); vClubs.push_back(Threec); vClubs.push_back(Twoc); random_shuffle(vClubs.begin(), vClubs.end()); //Diamonds: CString Ad = "Ad"; CString Kd = "Kd"; CString Qd = "Qd"; CString Jd = "Jd"; CString Td = "Td"; CString Nd = "9d"; CString Ed = "8d"; CString Sevd = "7d"; CString Sixd = "6d"; CString Fivd = "5d"; CString Fourd = "4d"; CString Threed = "3d"; CString Twod = "2d"; vectorvDiamond; vDiamond.push_back(Ad); vDiamond.push_back(Kd); vDiamond.push_back(Qd); vDiamond.push_back(Jd); vDiamond.push_back(Td); vDiamond.push_back(Nd); vDiamond.push_back(Ed); vDiamond.push_back(Sevd); vDiamond.push_back(Sixd); vDiamond.push_back(Fivd); vDiamond.push_back(Fourd); vDiamond.push_back(Threed); vDiamond.push_back(Twod); random_shuffle(vDiamond.begin(), vDiamond.end()); //Hearts: CString Ah = "Ah"; CString Kh = "Kh"; CString Qh = "Qh"; CString Jh = "Jh"; CString Th = "Th"; CString Nh = "9h"; CString Eh = "8h"; CString Sevh = "7h"; CString Sixh = "6h"; CString Fivh = "5h"; CString Fourh = "4h"; CString Threeh = "3h"; CString Twoh = "2h"; vectorvHearts; vHearts.push_back(Ah); vHearts.push_back(Kh); vHearts.push_back(Qh); vHearts.push_back(Jh); vHearts.push_back(Th); vHearts.push_back(Nh); vHearts.push_back(Eh); vHearts.push_back(Sevh); vHearts.push_back(Sixh); vHearts.push_back(Fivh); vHearts.push_back(Fourh); vHearts.push_back(Threeh); vHearts.push_back(Twoh); random_shuffle(vHearts.begin(), vHearts.end()); //Spades: CString As = "As"; CString Ks = "Ks"; CString Qs = "Qs"; CString Js = "Js"; CString Ts = "Ts"; CString Ns = "9s"; CString Es = "8s"; CString Sevs = "7s"; CString Sixs = "6s"; CString Fivs = "5s"; CString Fours = "4s"; CString Tsrees = "3s"; CString Twos = "2s"; vectorvSpades; vSpades.push_back(As); vSpades.push_back(Ks); vSpades.push_back(Qs); vSpades.push_back(Js); vSpades.push_back(Ts); vSpades.push_back(Ns); vSpades.push_back(Es); vSpades.push_back(Sevs); vSpades.push_back(Sixs); vSpades.push_back(Fivs); vSpades.push_back(Fours); vSpades.push_back(Tsrees); vSpades.push_back(Twos); random_shuffle(vSpades.begin(), vSpades.end()); //First card: Sleep(154); srand(GetTickCount()); int rSuit = (rand() % 4) ;//0-3?, for suit choice Sleep(54); srand(GetTickCount()); int rCard = (rand() % 11) ;//0-11?, for card choice CString cCards = ""; switch(rSuit) { case 0: { cCards = vClubs[rCard];}; break; case 1: { cCards = vDiamond[rCard];}; break; case 2: { cCards = vHearts[rCard];}; break; case 3: { cCards = vSpades[rCard];}; break; default: {cCards = "AsAs";} break; }//end sw suit //Second card: Sleep(15); srand(GetTickCount()); int rSuit2 = (rand() % 4) ;//0-3?, for suit choice Sleep(231); srand(GetTickCount()); int rCard2 = (rand() % 11) ;//0-11?, for card choice switch(rSuit2) { case 0: { cCards = cCards+vClubs[rCard2];}; break; case 1: { cCards = cCards+vDiamond[rCard2];}; break; case 2: { cCards = cCards+vHearts[rCard2];}; break; case 3: { cCards = cCards+vSpades[rCard2];}; break; default: {cCards = "AsAs";} break; }//end sw suit return cCards; }//end rancards function CString pstGenerator_1(int); //function to select correct type of random number: int fRAN(int S) { int RON = 0; switch(S) { case 1: { Sleep(155); srand(GetTickCount()); RON = (rand() % 5000) + 10;//10-5000 } break; case 2: { Sleep(13); srand(GetTickCount()); RON = (rand() % 12) + 1;//1-12 } break; case 3: { Sleep(213); srand(GetTickCount()); RON = (rand() % 20) + 2;//2-23? } break; case 4: { Sleep(133); srand(GetTickCount()); RON = (rand() % 2) + 1;//1-2 } break; default: { //cout << "naah, this ain't happening" << endl; } break; }//end switch S return RON; }//end fRAN //function to select random bet size: float fBET(int B) { float heBets = 0.00; switch(B) { case 1: { heBets = 0.10f; } break; case 2: { heBets = 0.20f;} break; case 3: { heBets = 0.25f;} break; case 4: { heBets = 0.33f;} break; case 5: { heBets = 0.50f;} break; case 6: { heBets = 0.75f;} break; case 7: { heBets = 1.00f;} break; case 8: { heBets = 1.20f;} break; case 9: { heBets = 1.50f;} break; case 10: { heBets = 5.00f;} break; case 11: { heBets = 12.00f;} break; case 12: { heBets = 0.67f;} break; default: { //nothing works here??? MessageBox("default sw b fbet???"); } break; }//end switch B return heBets; }//end fBET void CLimitless_1Dlg::OnHIGHSCORES() { //read current highscore list: // 0 = MRP, 1 = RE, 2 = ICM, 3 = Patience, 4 = PST, 5 = SPR, 6 = Betsize // 8 = combo highscore ifstream inHighH("Highscores.txt"); if(!inHighH) {MessageBox("Highscore list gone?");} else { int inPointsH = 0; while(inHighH >> inPointsH) vHighscores.push_back(inPointsH); inHighH.close(); //sum all individual highscores to one int: int iComboHigh = 0; for(int m = 0; m < 10; m++) { iComboHigh = iComboHigh + vHighscores[m]; } //but do not multiply the meta-highscore:! iComboHigh = iComboHigh - vHighscores[8]; //chech if it is a highscore of highscores: if(vHighscores[8] < iComboHigh) { vHighscores[8] = iComboHigh; CString cComboHigh = DaSizer(iComboHigh); cComboHigh = "Highscore! " + cComboHigh; m_ComboHighscore.SetWindowText(cComboHigh); }//end if vhighscore //save new highscore list: ofstream outHighH("Highscores.txt"); if(!outHighH) {MessageBox("Highscore list gone?");} else { for(int n = 0; n < 10; n++) { outHighH << vHighscores[n] << " "; } }//end else if ! outhigh CString cComboHigh = DaSizer(iComboHigh); m_ComboHighscore.SetWindowText(cComboHigh); vHighscores.erase(vHighscores.begin(), vHighscores.end()); iComboHigh = 0; }//end else if ! in }//end highscores void CLimitless_1Dlg::OnHighscoresRESET() { //MessageBox("Are you sure?", "Cardcharodon", MB_YESNO); //if(IDOK == true) //compiles but does not work //{ ofstream foutResetH("Highscores.txt"); if(!foutResetH) {MessageBox("Highscore list gone?");} else { for(int n = 0; n < 10; n++) { foutResetH << 0 << " "; } m_ComboHighscore.SetWindowText("0"); }//end else if ! outhigh //} //else //{ //do nothing //} }//end highscore reset void CLimitless_1Dlg::OnPST_Strart() { //m_PST_Situation iPST_Points iNoCheat = 0; //prevents cheating by multiclicks below iPST_runs++; //runs 10 times, then stops and logs to highscore list: if(iPST_runs < 11) { //start timer: Time1 = GetTickCount(); iPST_time = 0; //randomly select one case type, 1-7 //need more randomness: int iSleeps = iPST_runs * 3 + 1; Sleep(iSleeps); //srand(GetTickCount()); //iScenario = (rand() % 7) + 1;//1-7? //iScenario = 2; //for tests only! srand(GetTickCount()); iScenario = (rand() % 7) + 1;//1-7? CString cPST_display; //Basic scenarios: //UTG open 6-max, UTG open full ring, HJ open //CO open + defend, BU open +defend //BB vs UTG open 6-max, BB vs UTG open 6-max full ringBB vs HJ open, BB vs CO open //BB vs BU 2x open, BB vs 2,5 x open, BB vs BU 3x open //BU vs UTG open 6-max, HJ vs UTG open, 6-max, CO vs UTG open 6-max //SB vs BU open switch(iScenario) { //1 Open, 2 Fold, 3 Call, 4 3b, 5 Open + call 3b, 6 Open + fold to 3b, 7 Open + 4b case 1: {//Open //call function, pass in selector, //switch in function to type 1 scenarios with custom random cards that fit, //from vectors holding two-card CStrings, //will be from several different charts, return CString, display. //call function, pass in selector: cPST_display = pstGenerator(1); //display: m_PST_Situation.SetWindowText(cPST_display); }break; case 2: {//Fold // //call function, pass in selector: cPST_display = pstGenerator(2); //display: m_PST_Situation.SetWindowText(cPST_display); }break; case 3: {//Call // //call function, pass in selector: cPST_display = pstGenerator(3); //display: m_PST_Situation.SetWindowText(cPST_display); }break; case 4: {// 3b // //call function, pass in selector: cPST_display = pstGenerator(4); //display: m_PST_Situation.SetWindowText(cPST_display); }break; case 5: {// Open + call a 3b // //call function, pass in selector: cPST_display = pstGenerator(5); //display: m_PST_Situation.SetWindowText(cPST_display); }break; case 6: {//Open + fold to a 3b // //call function, pass in selector: cPST_display = pstGenerator(6); //display: m_PST_Situation.SetWindowText(cPST_display); }break; case 7: {//Open + 4b // //call function, pass in selector: cPST_display = pstGenerator(7); //display: m_PST_Situation.SetWindowText(cPST_display); }break; default: { // //display: m_PST_Situation.SetWindowText("You take a break."); }break; }//end switch scenario }//end iPST_runs < 11 else { //log results to highscore list: ifstream inHighPST("Highscores.txt"); if(!inHighPST) {MessageBox("Highscore list gone?");} else { int inPointsPST = 0; while(inHighPST >> inPointsPST) vHighscores.push_back(inPointsPST); inHighPST.close(); if(vHighscores[4] < iPST_Points)//update if points higher than before // 0 = MRP, 1 = RE, 2 = ICM, 3 = Patience, 4 = PST, 5 = SPR, 6 = Betsize // 8 = combo highscore { vHighscores[4] = iPST_Points; CString cScore = DaSizer(iPST_Points); CString CHigh = "Session over. Highscore! " + cScore; m_PST_Situation.SetWindowText(CHigh); ofstream outHighPST("Highscores.txt"); for(int i = 0; i < 10; i++) { outHighPST << vHighscores[i] << " "; } outHighPST.close(); vHighscores.erase(vHighscores.begin(), vHighscores.end()); }//end if new highscore else { m_PST_Situation.SetWindowText("Session over"); }//end else, no new highscore }//end else, list exists ok }//end else, run over }//end pst start void CLimitless_1Dlg::OnPST_OPEN() { // m_PST_Score iNoCheat++; //prevents multiclicks if(iNoCheat < 2) { //measure elapsed time: Time2 = GetTickCount(); iPST_time = Time2 - Time1; //mark answer type, matches correct scenario: iPST = 1; if(iScenario == iPST) { iPST_Points++; //ad time bonus: iPST_Points = iPST_Points + (4000/iPST_time); //present current points: CString cPSTP = DaSizer(iPST_Points); m_PST_Score.SetWindowText(cPSTP); //just for testing, remove later:! //Sleep(1000); //then show iPST_time: // CString cPSTPx = DaSizer(iPST_time); //m_PST_Score.SetWindowText(cPSTPx); }//if correct else { iPST_Points--; //present current points: CString cPSTP = DaSizer(iPST_Points); m_PST_Score.SetWindowText(cPSTP); }//ens else, incorrect answer }//no cheat } void CLimitless_1Dlg::OnPST_FOLD() { iNoCheat++; //prevents multiclicks if(iNoCheat < 2) { //mark answer type, matches correct scenario: iPST = 2; //measure elapsed time: Time2 = GetTickCount(); iPST_time = Time2 - Time1; //mark answer type, matches correct scenario: if(iScenario == iPST) { iPST_Points++; //ad time bonus: iPST_Points = iPST_Points + (4000/iPST_time); //present current points: CString cPSTP = DaSizer(iPST_Points); m_PST_Score.SetWindowText(cPSTP); }//if correct else { iPST_Points--; //present current points: CString cPSTP = DaSizer(iPST_Points); m_PST_Score.SetWindowText(cPSTP); }//ens else, incorrect answer }//nocheat } void CLimitless_1Dlg::OnPST_CALL() { iNoCheat++; //prevents multiclicks if(iNoCheat < 2) { //mark answer type, matches correct scenario: iPST = 3; //measure elapsed time: Time2 = GetTickCount(); iPST_time = Time2 - Time1; //mark answer type, matches correct scenario: if(iScenario == iPST) { iPST_Points++; //ad time bonus: iPST_Points = iPST_Points + (4000/iPST_time); //present current points: CString cPSTP = DaSizer(iPST_Points); m_PST_Score.SetWindowText(cPSTP); }//if correct else { iPST_Points--; //present current points: CString cPSTP = DaSizer(iPST_Points); m_PST_Score.SetWindowText(cPSTP); }//ens else, incorrect answer }//nocheat } void CLimitless_1Dlg::OnPST_3B() { iNoCheat++; //prevents multiclicks if(iNoCheat < 2) { //mark answer type, matches correct scenario: iPST = 4; //measure elapsed time: Time2 = GetTickCount(); iPST_time = Time2 - Time1; //mark answer type, matches correct scenario: if(iScenario == iPST) { iPST_Points++; //ad time bonus: iPST_Points = iPST_Points + (4000/iPST_time); //present current points: CString cPSTP = DaSizer(iPST_Points); m_PST_Score.SetWindowText(cPSTP); }//if correct else { iPST_Points--; //present current points: CString cPSTP = DaSizer(iPST_Points); m_PST_Score.SetWindowText(cPSTP); }//ens else, incorrect answer }//nocheat } void CLimitless_1Dlg::OnPST_OPEN_CALL_3B() { iNoCheat++; //prevents multiclicks if(iNoCheat < 2) { //mark answer type, matches correct scenario: iPST = 5; //measure elapsed time: Time2 = GetTickCount(); iPST_time = Time2 - Time1; //mark answer type, matches correct scenario: if(iScenario == iPST) { iPST_Points++; //ad time bonus: iPST_Points = iPST_Points + (4000/iPST_time); //present current points: CString cPSTP = DaSizer(iPST_Points); m_PST_Score.SetWindowText(cPSTP); }//if correct else { iPST_Points--; //present current points: CString cPSTP = DaSizer(iPST_Points); m_PST_Score.SetWindowText(cPSTP); }//ens else, incorrect answer }//nocheat } void CLimitless_1Dlg::OnPST_OPEN_FOLD() { iNoCheat++; //prevents multiclicks if(iNoCheat < 2) { //mark answer type, matches correct scenario: iPST = 6; //measure elapsed time: Time2 = GetTickCount(); iPST_time = Time2 - Time1; //mark answer type, matches correct scenario: if(iScenario == iPST) { iPST_Points++; //ad time bonus: iPST_Points = iPST_Points + (4000/iPST_time); //present current points: CString cPSTP = DaSizer(iPST_Points); m_PST_Score.SetWindowText(cPSTP); }//if correct else { iPST_Points--; //present current points: CString cPSTP = DaSizer(iPST_Points); m_PST_Score.SetWindowText(cPSTP); }//ens else, incorrect answer }//nocheat } void CLimitless_1Dlg::OnPST_OPEN_4B() { iNoCheat++; //prevents multiclicks if(iNoCheat < 2) { //mark answer type, matches correct scenario: iPST = 7; //measure elapsed time: Time2 = GetTickCount(); iPST_time = Time2 - Time1; //mark answer type, matches correct scenario: if(iScenario == iPST) { iPST_Points++; //ad time bonus: iPST_Points = iPST_Points + (4000/iPST_time); //present current points: CString cPSTP = DaSizer(iPST_Points); m_PST_Score.SetWindowText(cPSTP); }//if correct else { iPST_Points--; //present current points: CString cPSTP = DaSizer(iPST_Points); m_PST_Score.SetWindowText(cPSTP); }//ens else, incorrect answer }//nocheat }//end pst open 4b //Function for scenario generation, pst: ////1 Open, 2 Fold, 3 Call, 4 3b, 5 Open + call 3b, 6 Open + fold to 3b, 7 Open + 4b //Basic scenarios: //UTG open 6-max, UTG open full ring, HJ open //CO open + defend, BU open +defend //BB vs UTG open 6-max, BB vs UTG open 6-max full ring, BB vs HJ open, BB vs CO open //BB vs BU 2x open, BB vs 2,5 x open, BB vs BU 3x open //BU vs UTG open 6-max, BB vs UTG open full ring, HJ vs UTG open, 6-max, CO vs UTG open 6-max //SB vs BU open, BB vs SB open CString pstGenerator(int sel) { CString cGen1 = ""; switch(sel) { case 1: {//open //load and mix 3 CString vectors of 3 scenarios, randomly select one: //UTG open 6-max, UTG open full ring, HJ open //load and mix 3 CString vectors of two-card hands, randomly select one, //should match UTG open 6-max, UTG open full ring, HJ open Sleep(25); srand(GetTickCount()); int iGen1 = (rand() % 3) + 1;//1-3? switch(iGen1) { case 1: {//Open UTG 6-max: cGen1 = "You are UTG, 6-max, with "; vectoroGunx; oGunx.push_back("AhAc");oGunx.push_back("AhAs");oGunx.push_back("AhAd"); oGunx.push_back("AcAs");oGunx.push_back("AcAd");oGunx.push_back("AsAd"); oGunx.push_back("KhKc");oGunx.push_back("KhKs");oGunx.push_back("KhKd"); oGunx.push_back("KcKs");oGunx.push_back("KcKd");oGunx.push_back("KsKd"); oGunx.push_back("KhKc");oGunx.push_back("KhKs");oGunx.push_back("KhKd"); oGunx.push_back("KcKs");oGunx.push_back("KcKd");oGunx.push_back("KsKd"); oGunx.push_back("QhQc");oGunx.push_back("QhQs");oGunx.push_back("QhQd"); oGunx.push_back("QcQs");oGunx.push_back("QcQd");oGunx.push_back("QsQd"); oGunx.push_back("JhJc");oGunx.push_back("JhJs");oGunx.push_back("JhJd"); oGunx.push_back("JcJs");oGunx.push_back("JcJd");oGunx.push_back("JsJd"); oGunx.push_back("ThTc");oGunx.push_back("ThTs");oGunx.push_back("ThTd"); oGunx.push_back("TcTs");oGunx.push_back("TcTd");oGunx.push_back("TsTd"); oGunx.push_back("9h9c");oGunx.push_back("9h9s");oGunx.push_back("9h9d"); oGunx.push_back("9c9s");oGunx.push_back("9c9d");oGunx.push_back("9s9d"); oGunx.push_back("8h8c");oGunx.push_back("8h8s");oGunx.push_back("8h8d"); oGunx.push_back("8c8s");oGunx.push_back("8c8d");oGunx.push_back("8s8d"); oGunx.push_back("AcKc");oGunx.push_back("AcQc");oGunx.push_back("AcJc"); oGunx.push_back("AcTc");oGunx.push_back("Ac9c"); oGunx.push_back("AhKh");oGunx.push_back("AhQh");oGunx.push_back("AhJh"); oGunx.push_back("AhTh");oGunx.push_back("Ah9h"); oGunx.push_back("AsKs");oGunx.push_back("AsQs");oGunx.push_back("AsJs"); oGunx.push_back("AsTs");oGunx.push_back("As9s"); oGunx.push_back("AdKd");oGunx.push_back("AdQd");oGunx.push_back("AdJd"); oGunx.push_back("AdTd");oGunx.push_back("Ad9d"); oGunx.push_back("AdKc");oGunx.push_back("AdQc");oGunx.push_back("AdKh"); oGunx.push_back("AdQh");oGunx.push_back("AdKs");oGunx.push_back("AdQs"); oGunx.push_back("AhKc");oGunx.push_back("AhQc"); oGunx.push_back("AhKs");oGunx.push_back("AhQs"); oGunx.push_back("KsQc");oGunx.push_back("KsQh");oGunx.push_back("KsQd"); oGunx.push_back("KdQc");oGunx.push_back("KdQh");oGunx.push_back("KdQs"); random_shuffle(oGunx.begin(), oGunx.end()); srand(GetTickCount()); int iGenSel = (rand() % 15) + 1;//1-15? cGen1 = cGen1 + oGunx[iGenSel]; oGunx.erase(oGunx.begin(), oGunx.end()); }break; case 2: {//UTG open full ring cGen1 = "You are UTG, full ring, with "; vectoroGuny; oGuny.push_back("AhAc");oGuny.push_back("AhAs");oGuny.push_back("AhAd"); oGuny.push_back("AcAs");oGuny.push_back("AcAd");oGuny.push_back("AsAd"); oGuny.push_back("KhKc");oGuny.push_back("KhKs");oGuny.push_back("KhKd"); oGuny.push_back("KcKs");oGuny.push_back("KcKd");oGuny.push_back("KsKd"); oGuny.push_back("KhKc");oGuny.push_back("KhKs");oGuny.push_back("KhKd"); oGuny.push_back("KcKs");oGuny.push_back("KcKd");oGuny.push_back("KsKd"); oGuny.push_back("QhQc");oGuny.push_back("QhQs");oGuny.push_back("QhQd"); oGuny.push_back("QcQs");oGuny.push_back("QcQd");oGuny.push_back("QsQd"); oGuny.push_back("AcKc");oGuny.push_back("AcQc");oGuny.push_back("AcJc"); oGuny.push_back("AhKh");oGuny.push_back("AhQh");oGuny.push_back("AhJh"); oGuny.push_back("AsKs");oGuny.push_back("AsQs");oGuny.push_back("AsJs"); oGuny.push_back("AdKd");oGuny.push_back("AdQd");oGuny.push_back("AdJd"); oGuny.push_back("AdKc");oGuny.push_back("AdKh"); oGuny.push_back("AdKs"); oGuny.push_back("AhKc"); oGuny.push_back("AhKs"); random_shuffle(oGuny.begin(), oGuny.end()); srand(GetTickCount()); int iGenSel = (rand() % 15) + 1;//1-15? cGen1 = cGen1 + oGuny[iGenSel]; oGuny.erase(oGuny.begin(), oGuny.end()); }break; case 3: {//HJ open cGen1 = "You are in the HJ, with "; vectoroGunz; oGunz.push_back("AhAc");oGunz.push_back("AhAs");oGunz.push_back("AhAd"); oGunz.push_back("AcAs");oGunz.push_back("AcAd");oGunz.push_back("AsAd"); oGunz.push_back("KhKc");oGunz.push_back("KhKs");oGunz.push_back("KhKd"); oGunz.push_back("KcKs");oGunz.push_back("KcKd");oGunz.push_back("KsKd"); oGunz.push_back("KhKc");oGunz.push_back("KhKs");oGunz.push_back("KhKd"); oGunz.push_back("KcKs");oGunz.push_back("KcKd");oGunz.push_back("KsKd"); oGunz.push_back("QhQc");oGunz.push_back("QhQs");oGunz.push_back("QhQd"); oGunz.push_back("QcQs");oGunz.push_back("QcQd");oGunz.push_back("QsQd"); oGunz.push_back("JhJc");oGunz.push_back("JhJs");oGunz.push_back("JhJd"); oGunz.push_back("JcJs");oGunz.push_back("JcJd");oGunz.push_back("JsJd"); oGunz.push_back("ThTc");oGunz.push_back("ThTs");oGunz.push_back("ThTd"); oGunz.push_back("TcTs");oGunz.push_back("TcTd");oGunz.push_back("TsTd"); oGunz.push_back("9h9c");oGunz.push_back("9h9s");oGunz.push_back("9h9d"); oGunz.push_back("9c9s");oGunz.push_back("9c9d");oGunz.push_back("9s9d"); oGunz.push_back("8h8c");oGunz.push_back("8h8s");oGunz.push_back("8h8d"); oGunz.push_back("8c8s");oGunz.push_back("8c8d");oGunz.push_back("8s8d"); oGunz.push_back("7h7c");oGunz.push_back("7h7s");oGunz.push_back("7h7d"); oGunz.push_back("7c7s");oGunz.push_back("7c7d");oGunz.push_back("7s7d"); oGunz.push_back("6h6c");oGunz.push_back("6h6s");oGunz.push_back("6h6d"); oGunz.push_back("6c6s");oGunz.push_back("6c6d");oGunz.push_back("6s6d"); oGunz.push_back("AcKc");oGunz.push_back("AcQc");oGunz.push_back("AcJc"); oGunz.push_back("AcTc");oGunz.push_back("Ac9c");oGunz.push_back("Ac8c"); oGunz.push_back("Ac7c");oGunz.push_back("Ac6c");oGunz.push_back("Ac5c"); oGunz.push_back("Ac4c");oGunz.push_back("Ac3c");oGunz.push_back("Ac2c"); oGunz.push_back("AhKh");oGunz.push_back("AhQh");oGunz.push_back("AhJh"); oGunz.push_back("AhTh");oGunz.push_back("Ah9h");oGunz.push_back("Ah8h"); oGunz.push_back("Ah7h");oGunz.push_back("Ah6h");oGunz.push_back("Ah5h"); oGunz.push_back("Ah4h");oGunz.push_back("Ah3h");oGunz.push_back("Ah2h"); oGunz.push_back("AsKs");oGunz.push_back("AsQs");oGunz.push_back("AsJs"); oGunz.push_back("AsTs");oGunz.push_back("As9s");oGunz.push_back("As8s"); oGunz.push_back("As7s");oGunz.push_back("As6s");oGunz.push_back("As5s"); oGunz.push_back("As4s");oGunz.push_back("As3s");oGunz.push_back("As2s"); oGunz.push_back("AdKd");oGunz.push_back("AdQd");oGunz.push_back("AdJd"); oGunz.push_back("AdTd");oGunz.push_back("Ad9d");oGunz.push_back("Ad8d"); oGunz.push_back("Ad7d");oGunz.push_back("Ad6d");oGunz.push_back("Ad5d"); oGunz.push_back("Ad4d");oGunz.push_back("Ad3d");oGunz.push_back("Ad2d"); oGunz.push_back("AdKc");oGunz.push_back("AdQc");oGunz.push_back("AdKh"); oGunz.push_back("AdQh");oGunz.push_back("AdKs");oGunz.push_back("AdQs"); oGunz.push_back("AhKc");oGunz.push_back("AhQc"); oGunz.push_back("AhKs");oGunz.push_back("AhQs"); oGunz.push_back("KsQc");oGunz.push_back("KsQh");oGunz.push_back("KsQd"); oGunz.push_back("KdQc");oGunz.push_back("KdQh");oGunz.push_back("KdQs"); oGunz.push_back("QcJc");oGunz.push_back("QdJd");oGunz.push_back("QhJh"); oGunz.push_back("QsJs");oGunz.push_back("Th9h");oGunz.push_back("Ts9s"); oGunz.push_back("Td9d");oGunz.push_back("Tc9c"); random_shuffle(oGunz.begin(), oGunz.end()); srand(GetTickCount()); int iGenSel = (rand() % 15) + 1;//1-15? cGen1 = cGen1 + oGunz[iGenSel]; oGunz.erase(oGunz.begin(), oGunz.end()); }break; default: { cGen1 = "default sw iGen1"; }break; }//end sw iGen1 }break; case 2: {//fold / //Basic scenarios: //UTG open 6-max, UTG open full ring, HJ open //CO open + defend, BU open +defend //BB vs UTG open 6-max, BB vs UTG open 6-max full ring, BB vs HJ open, BB vs CO open //BB vs BU 2x open, BB vs 2,5 x open, BB vs BU 3x open //BU vs UTG open 6-max, BB vs UTG open full ring, HJ vs UTG open, 6-max, CO vs UTG open 6-max //SB vs BU open, BB vs SB open //divide into subclasses, random select scenario within each subclass, //and then random select from pre-determined card ranges: //group 1 (wide ranges, few folds): //BB vs BU 2x open, SB vs BU open, BB vs SB open, BU open +defend //group 2 (narrow ranges, lots of folds): //BB vs UTG open full ring, HJ vs UTG open, 6-max, CO vs UTG open 6-max, //UTG open 6-max, UTG open full ring //group 3 (custom spec individual cases): //some of the rest/all of the scenarios, write scenarios with fixed card selection. //generate three CString scenario vectors: vectorvFoldgroup1; vectorvFoldgroup2; vectorvFoldgroup3; vFoldgroup1.push_back("You are in BB facing BU 2x open, with "); vFoldgroup1.push_back("You are in SB facing BU 3x open, with "); vFoldgroup1.push_back("You are in BB facing SB 2x open, with "); vFoldgroup1.push_back("You are on BU, open/defend? with "); random_shuffle(vFoldgroup1.begin(), vFoldgroup1.end()); vFoldgroup2.push_back("You are in BB (6-max) facing UTG open, with "); vFoldgroup2.push_back("You are in BB (full ring) facing UTG open, with "); vFoldgroup2.push_back("You are in HJ (6-max) facing UTG open, with "); vFoldgroup2.push_back("You are in CO (6-max) facing UTG open, with "); vFoldgroup2.push_back("You are UTG (6-max), with "); vFoldgroup2.push_back("You are UTG (full ring), with "); random_shuffle(vFoldgroup2.begin(), vFoldgroup2.end()); //HJ open //CO open + defend, // BB vs HJ open, BB vs CO open //BB vs BU 2,5 x open, BB vs BU 3x open vFoldgroup3.push_back("You are in HJ with Ah6s."); vFoldgroup3.push_back("You are in HJ with 3dQc."); vFoldgroup3.push_back("You are in HJ with Kc7h."); vFoldgroup3.push_back("You are in HJ with 3h2s."); vFoldgroup3.push_back("You are in HJ with 7h8h."); vFoldgroup3.push_back("You are in HJ with Kh9c."); vFoldgroup3.push_back("You are in HJ with As8h."); vFoldgroup3.push_back("You are in HJ with 2c2h."); vFoldgroup3.push_back("You are in HJ with 3c3s."); vFoldgroup3.push_back("You are in HJ with 4h4c."); vFoldgroup3.push_back("You are in HJ with 4c4s."); vFoldgroup3.push_back("You are in HJ with 2d2c."); vFoldgroup3.push_back("You are in HJ with Jh8h."); vFoldgroup3.push_back("You are in HJ with 6sTs."); vFoldgroup3.push_back("You are in HJ with 7hJh."); vFoldgroup3.push_back("You are in CO, open/defend? with Kc7h."); vFoldgroup3.push_back("You are in CO, open/defend? with As6h."); vFoldgroup3.push_back("You are in CO, open/defend? with Td5c."); vFoldgroup3.push_back("You are in CO, open/defend? with Ah5s."); vFoldgroup3.push_back("You are in CO, open/defend? with 7hAs."); vFoldgroup3.push_back("You are in CO, open/defend? with 2h8h."); vFoldgroup3.push_back("You are in CO, open/defend? with 9s3s."); vFoldgroup3.push_back("You are in CO, open/defend? with Qd5s."); vFoldgroup3.push_back("You are in CO, open/defend? with Ks8c."); vFoldgroup3.push_back("You are in BB facing HJ open, with Qc3c."); vFoldgroup3.push_back("You are in BB facing HJ open, with Jd8s."); vFoldgroup3.push_back("You are in BB facing HJ open, with 8hQs."); vFoldgroup3.push_back("You are in BB facing CO open, with 2sAh."); vFoldgroup3.push_back("You are in BB facing CO open, with Ts4s."); vFoldgroup3.push_back("You are in BB facing CO open, with 3d3s."); vFoldgroup3.push_back("You are in BB facing CO open, with Ah3h."); vFoldgroup3.push_back("You are in BB facing CO open, with 5sAs."); vFoldgroup3.push_back("You are in BB facing CO open, with Ad7s."); vFoldgroup3.push_back("You are in BB facing CO open, with 2s2d."); vFoldgroup3.push_back("You are in BB facing BU 2,5x open, with Kh7d."); vFoldgroup3.push_back("You are in BB facing BU 2,5x open, with Ad4c."); vFoldgroup3.push_back("You are in BB facing BU 2,5x open, with Qh5c."); vFoldgroup3.push_back("You are in BB facing BU 2,5x open, with As6d."); vFoldgroup3.push_back("You are in BB facing BU 2,5x open, with 2hAc."); vFoldgroup3.push_back("You are in BB facing BU 2,5x open, with Ks4s."); vFoldgroup3.push_back("You are in BB facing BU 2,5x open, with Kd3d."); vFoldgroup3.push_back("You are in BB facing BU 2,5x open, with 6hQs."); vFoldgroup3.push_back("You are in BB facing BU 3x open, with Th8d."); vFoldgroup3.push_back("You are in BB facing BU 3x open, with 4sAs."); vFoldgroup3.push_back("You are in BB facing BU 3x open, with Ah4d."); vFoldgroup3.push_back("You are in BB facing BU 3x open, with Qs5d."); vFoldgroup3.push_back("You are in BB facing BU 3x open, with Ks5s"); vFoldgroup3.push_back("You are in BB facing BU 3x open, with Qd3d."); random_shuffle(vFoldgroup3.begin(), vFoldgroup3.end()); //random selection of one vector, then one scenario: //generate 2 card groups, // and merge scenario with cards (no cards needed for group 3!): srand(GetTickCount()); int iGenSel = (rand() % 3) + 1;//1-3? //int iGenSel = 1; //just for testing! switch(iGenSel) { case 1: {//group 1 folds: Sleep(75); srand(GetTickCount()); int selOne = (rand() % 3) + 1;//1-3? cGen1 = vFoldgroup1[selOne]; //generate corresponding cards: //group 1 (wide ranges, few folds): //BB vs BU 2x open, SB vs BU open, BB vs SB open, BU open +defend vectorvOneFewFolds; vOneFewFolds.push_back("5h9s");vOneFewFolds.push_back("8d4c");vOneFewFolds.push_back("Kh3s"); vOneFewFolds.push_back("7h9s");vOneFewFolds.push_back("Ts2c");vOneFewFolds.push_back("3c9h"); vOneFewFolds.push_back("Qd2c");vOneFewFolds.push_back("3cQs");vOneFewFolds.push_back("4s6h"); vOneFewFolds.push_back("Kd4h");vOneFewFolds.push_back("Qc5s");vOneFewFolds.push_back("Jc5d"); vOneFewFolds.push_back("Ts3h");vOneFewFolds.push_back("9h3d");vOneFewFolds.push_back("Kh3s"); vOneFewFolds.push_back("7s3d");vOneFewFolds.push_back("2s7h");vOneFewFolds.push_back("Js4d"); vOneFewFolds.push_back("6sJh");vOneFewFolds.push_back("Js3h");vOneFewFolds.push_back("Tc3h"); vOneFewFolds.push_back("2hTd");vOneFewFolds.push_back("5sQh");vOneFewFolds.push_back("Qs2d"); vOneFewFolds.push_back("8s5h");vOneFewFolds.push_back("9d3s");vOneFewFolds.push_back("Jc2s"); vOneFewFolds.push_back("2sKc");vOneFewFolds.push_back("2cTh");vOneFewFolds.push_back("Jh2s"); vOneFewFolds.push_back("Kh2s");vOneFewFolds.push_back("Ks3d");vOneFewFolds.push_back("Qd5s"); vOneFewFolds.push_back("Ts4h");vOneFewFolds.push_back("8h4s");vOneFewFolds.push_back("7c3h"); vOneFewFolds.push_back("2h3s");vOneFewFolds.push_back("2s9h");vOneFewFolds.push_back("3s8c"); vOneFewFolds.push_back("4h3d");vOneFewFolds.push_back("7c2h");vOneFewFolds.push_back("2h7s"); vOneFewFolds.push_back("2s7h");vOneFewFolds.push_back("3c7d");vOneFewFolds.push_back("7d3s"); vOneFewFolds.push_back("7s2c");vOneFewFolds.push_back("8h3c");vOneFewFolds.push_back("7h5d"); vOneFewFolds.push_back("Th2d");vOneFewFolds.push_back("4s8h");vOneFewFolds.push_back("2s5h"); //select one hand, add to scenario: Sleep(11); srand(GetTickCount()); int OneHand = (rand() % 10) + 1;//1-10? cGen1 = cGen1 + vOneFewFolds[OneHand]; vOneFewFolds.erase(vOneFewFolds.begin(), vOneFewFolds.end()); }break; case 2: {//group 2 folds: //group 2 (narrow ranges, lots of folds): //BB vs UTG open full ring, HJ vs UTG open, 6-max, CO vs UTG open 6-max, //UTG open 6-max, UTG open full ring Sleep(90); srand(GetTickCount()); int selTwo = (rand() % 5) + 1;//1-5? cGen1 = vFoldgroup2[selTwo]; //generate corresponding cards: //group 2 (narrow ranges, lots of folds): //BB vs UTG open full ring, HJ vs UTG open, 6-max, CO vs UTG open 6-max, //UTG open 6-max, UTG open full ring vectorvTwoLotsFolds; vTwoLotsFolds.push_back("5h9s");vTwoLotsFolds.push_back("8d4c");vTwoLotsFolds.push_back("Kh3s"); vTwoLotsFolds.push_back("7h9s");vTwoLotsFolds.push_back("Ts2c");vTwoLotsFolds.push_back("3c9h"); vTwoLotsFolds.push_back("Qd2c");vTwoLotsFolds.push_back("3cQs");vTwoLotsFolds.push_back("4s6h"); vTwoLotsFolds.push_back("Kd4h");vTwoLotsFolds.push_back("Qc5s");vTwoLotsFolds.push_back("Jc5d"); vTwoLotsFolds.push_back("Ts3h");vTwoLotsFolds.push_back("9h3d");vTwoLotsFolds.push_back("Kh3s"); vTwoLotsFolds.push_back("7s3d");vTwoLotsFolds.push_back("2s7h");vTwoLotsFolds.push_back("Js4d"); vTwoLotsFolds.push_back("6sJh");vTwoLotsFolds.push_back("Js3h");vTwoLotsFolds.push_back("Tc3h"); vTwoLotsFolds.push_back("2hTd");vTwoLotsFolds.push_back("5sQh");vTwoLotsFolds.push_back("Qs2d"); vTwoLotsFolds.push_back("8s5h");vTwoLotsFolds.push_back("9d3s");vTwoLotsFolds.push_back("Jc2s"); vTwoLotsFolds.push_back("2sKc");vTwoLotsFolds.push_back("2cTh");vTwoLotsFolds.push_back("Jh2s"); vTwoLotsFolds.push_back("Kh2s");vTwoLotsFolds.push_back("Ks3d");vTwoLotsFolds.push_back("Qd5s"); vTwoLotsFolds.push_back("Ts4h");vTwoLotsFolds.push_back("8h4s");vTwoLotsFolds.push_back("7c3h"); vTwoLotsFolds.push_back("2h3s");vTwoLotsFolds.push_back("2s9h");vTwoLotsFolds.push_back("3s8c"); vTwoLotsFolds.push_back("4h3d");vTwoLotsFolds.push_back("7c2h");vTwoLotsFolds.push_back("2h7s"); vTwoLotsFolds.push_back("2s7h");vTwoLotsFolds.push_back("3c7d");vTwoLotsFolds.push_back("7d3s"); vTwoLotsFolds.push_back("7s2c");vTwoLotsFolds.push_back("8h3c");vTwoLotsFolds.push_back("7h5d"); vTwoLotsFolds.push_back("Th2d");vTwoLotsFolds.push_back("4s8h");vTwoLotsFolds.push_back("2s5h"); vTwoLotsFolds.push_back("Ah4h");vTwoLotsFolds.push_back("As5s");vTwoLotsFolds.push_back("Ad7d"); vTwoLotsFolds.push_back("As2s");vTwoLotsFolds.push_back("2dAd");vTwoLotsFolds.push_back("4hAh"); vTwoLotsFolds.push_back("Ks7s");vTwoLotsFolds.push_back("6dKd");vTwoLotsFolds.push_back("Kc5c"); vTwoLotsFolds.push_back("KsTd");vTwoLotsFolds.push_back("Kd7h");vTwoLotsFolds.push_back("KcJs"); vTwoLotsFolds.push_back("KsJh");vTwoLotsFolds.push_back("JsQh");vTwoLotsFolds.push_back("QsJd"); vTwoLotsFolds.push_back("3s3d");vTwoLotsFolds.push_back("2h2s");vTwoLotsFolds.push_back("5d5h"); vTwoLotsFolds.push_back("5h5s");vTwoLotsFolds.push_back("Ah8s");vTwoLotsFolds.push_back("Ad7h"); vTwoLotsFolds.push_back("Ah9d");vTwoLotsFolds.push_back("As8c");vTwoLotsFolds.push_back("Ad7s"); vTwoLotsFolds.push_back("6hAd");vTwoLotsFolds.push_back("8dAh");vTwoLotsFolds.push_back("9sAh"); vTwoLotsFolds.push_back("ThKd");vTwoLotsFolds.push_back("QsTh");vTwoLotsFolds.push_back("JsQh"); vTwoLotsFolds.push_back("8h9s");vTwoLotsFolds.push_back("TcJs");vTwoLotsFolds.push_back("JhKs"); vTwoLotsFolds.push_back("Ah9h");vTwoLotsFolds.push_back("As8s");vTwoLotsFolds.push_back("Ad7d"); vTwoLotsFolds.push_back("Ad2d");vTwoLotsFolds.push_back("7dKs");vTwoLotsFolds.push_back("8h9h"); vTwoLotsFolds.push_back("2d2s");vTwoLotsFolds.push_back("2h2d");vTwoLotsFolds.push_back("2h2s"); vTwoLotsFolds.push_back("3d3s");vTwoLotsFolds.push_back("3h3d");vTwoLotsFolds.push_back("3h3s"); vTwoLotsFolds.push_back("4s4d");vTwoLotsFolds.push_back("4d4h");vTwoLotsFolds.push_back("4s4h"); vTwoLotsFolds.push_back("5s5d");vTwoLotsFolds.push_back("5d5h");vTwoLotsFolds.push_back("5s5h"); vTwoLotsFolds.push_back("Td5s");vTwoLotsFolds.push_back("5sTh");vTwoLotsFolds.push_back("Ts5h"); vTwoLotsFolds.push_back("7d8d");vTwoLotsFolds.push_back("8s7s");vTwoLotsFolds.push_back("7h8h"); vTwoLotsFolds.push_back("8h9h");vTwoLotsFolds.push_back("8s9s");vTwoLotsFolds.push_back("8c9c"); vTwoLotsFolds.push_back("5s6s");vTwoLotsFolds.push_back("5h6h");vTwoLotsFolds.push_back("6c5c"); //select one hand, add to scenario: Sleep(21); srand(GetTickCount()); int TwoHand = (rand() % 10) + 1;//1-10? cGen1 = cGen1 + vTwoLotsFolds[TwoHand]; vTwoLotsFolds.erase(vTwoLotsFolds.begin(), vTwoLotsFolds.end()); }break; case 3: {//group 3 folds: Sleep(12); srand(GetTickCount()); int selOne = (rand() % 10) + 1;//1-10? cGen1 = vFoldgroup3[selOne];//runtime bug here? //Yes selected group 1 that was erased.. //no need to generate cards }break; default: {//folds: cGen1 = "default iGenSel"; }break; }//end sw iGensel, case 2: fold }break; case 3: {//Call //Basic scenarios that apply to Call case, prolly need one section for each: //BB vs CO open //BB vs BU 2x open //BB vs 2,5 x open //BB vs BU 3x open //BU vs UTG open 6-max //BB vs UTG open full ring //HJ vs UTG open, 6-max, //HJ vs UTG open, full ring, //CO vs UTG open 6-max //SB vs BU open, //BB vs SB open. //CO vs UTG open full ring //random pick of call scenario: Sleep(35); srand(GetTickCount()); int iSelKeoLL = (rand() % 12) + 1;//1-12? switch(iSelKeoLL) { case 1: {//BB vs CO open //scenario: cGen1 = "CO opens 3x BB, folds to you in BB with: "; //cards: vectorvKeoLL_1; //high Axo vKeoLL_1.push_back("AsTh");vKeoLL_1.push_back("AdTh");vKeoLL_1.push_back("AsTh"); vKeoLL_1.push_back("TsAh");vKeoLL_1.push_back("TdAs");vKeoLL_1.push_back("AcTh"); vKeoLL_1.push_back("AsJh");vKeoLL_1.push_back("AcJh");vKeoLL_1.push_back("JhAd"); vKeoLL_1.push_back("AcQh");vKeoLL_1.push_back("AdQs");vKeoLL_1.push_back("QhAs"); vKeoLL_1.push_back("QcAh");vKeoLL_1.push_back("AdQh");vKeoLL_1.push_back("QsAc"); //66-JJ vKeoLL_1.push_back("6s6h");vKeoLL_1.push_back("6s6d");vKeoLL_1.push_back("6s6c"); vKeoLL_1.push_back("6h6c");vKeoLL_1.push_back("6d6c");vKeoLL_1.push_back("6h6d"); vKeoLL_1.push_back("7s7h");vKeoLL_1.push_back("7s7d");vKeoLL_1.push_back("7s7c"); vKeoLL_1.push_back("7h7c");vKeoLL_1.push_back("7d7c");vKeoLL_1.push_back("7h7d"); vKeoLL_1.push_back("8s8h");vKeoLL_1.push_back("8s8d");vKeoLL_1.push_back("8s8c"); vKeoLL_1.push_back("8h8c");vKeoLL_1.push_back("8d8c");vKeoLL_1.push_back("8h8d"); vKeoLL_1.push_back("9s9h");vKeoLL_1.push_back("9s9d");vKeoLL_1.push_back("9s9c"); vKeoLL_1.push_back("9h9c");vKeoLL_1.push_back("9d9c");vKeoLL_1.push_back("9h9d"); vKeoLL_1.push_back("TsTh");vKeoLL_1.push_back("TsTd");vKeoLL_1.push_back("TsTc"); vKeoLL_1.push_back("ThTc");vKeoLL_1.push_back("TdTc");vKeoLL_1.push_back("ThTd"); vKeoLL_1.push_back("JsJh");vKeoLL_1.push_back("JsJd");vKeoLL_1.push_back("JsJc"); vKeoLL_1.push_back("JhJc");vKeoLL_1.push_back("JdJc");vKeoLL_1.push_back("JhJd"); //med-high sc: vKeoLL_1.push_back("TsJs");vKeoLL_1.push_back("TdJd");vKeoLL_1.push_back("TcJc"); vKeoLL_1.push_back("JhTh"); vKeoLL_1.push_back("QsJs");vKeoLL_1.push_back("QdJd");vKeoLL_1.push_back("QcJc"); vKeoLL_1.push_back("JhQh"); vKeoLL_1.push_back("QsKs");vKeoLL_1.push_back("QdKd");vKeoLL_1.push_back("QcKc"); vKeoLL_1.push_back("KhQh"); vKeoLL_1.push_back("Ts9s");vKeoLL_1.push_back("Td9d");vKeoLL_1.push_back("Tc9c"); vKeoLL_1.push_back("9hTh"); //roy-Ts vKeoLL_1.push_back("TsQs");vKeoLL_1.push_back("QdTd");vKeoLL_1.push_back("TcQc"); vKeoLL_1.push_back("QhTh"); vKeoLL_1.push_back("KsTs");vKeoLL_1.push_back("TdKd");vKeoLL_1.push_back("TcKc"); vKeoLL_1.push_back("KhTh"); random_shuffle(vKeoLL_1.begin(), vKeoLL_1.end()); //select one hand, add to scenario: Sleep(26); srand(GetTickCount()); int iKeoLL = (rand() % 10) + 1;//1-10? cGen1 = cGen1 + vKeoLL_1[iKeoLL]; vKeoLL_1.erase(vKeoLL_1.begin(), vKeoLL_1.end()); }break; //end case 1 iSelKeoLL case 2: {//BB vs BU 2x open //scenario: cGen1 = "BU opens 2x BB, folds to you in BB with: "; //cards; same as CO vs BB, plus all A, all Ks, all-7s/7o, all pairs: vectorvKeoLL_2; //high Axo vKeoLL_2.push_back("AsTh");vKeoLL_2.push_back("AdTh");vKeoLL_2.push_back("AsTh"); vKeoLL_2.push_back("TsAh");vKeoLL_2.push_back("TdAs");vKeoLL_2.push_back("AcTh"); vKeoLL_2.push_back("AsJh");vKeoLL_2.push_back("AcJh");vKeoLL_2.push_back("JhAd"); vKeoLL_2.push_back("AcQh");vKeoLL_2.push_back("AdQs");vKeoLL_2.push_back("QhAs"); vKeoLL_2.push_back("QcAh");vKeoLL_2.push_back("AdQh");vKeoLL_2.push_back("QsAc"); //rest of Axo vKeoLL_2.push_back("As9d");vKeoLL_2.push_back("As9h");vKeoLL_2.push_back("As9c"); vKeoLL_2.push_back("Ad9h");vKeoLL_2.push_back("Ad9c");vKeoLL_2.push_back("Ad9s"); vKeoLL_2.push_back("Ah9d");vKeoLL_2.push_back("Ah9s");vKeoLL_2.push_back("Ac9s"); vKeoLL_2.push_back("Ah9c");vKeoLL_2.push_back("Ac9h");vKeoLL_2.push_back("Ac9d"); vKeoLL_2.push_back("As8d");vKeoLL_2.push_back("As8h");vKeoLL_2.push_back("As8c"); vKeoLL_2.push_back("Ad8h");vKeoLL_2.push_back("Ad8c");vKeoLL_2.push_back("Ad8s"); vKeoLL_2.push_back("Ah8d");vKeoLL_2.push_back("Ah8s");vKeoLL_2.push_back("Ac8s"); vKeoLL_2.push_back("Ah8c");vKeoLL_2.push_back("Ac8h");vKeoLL_2.push_back("Ac8d"); vKeoLL_2.push_back("As7d");vKeoLL_2.push_back("As7h");vKeoLL_2.push_back("As7c"); vKeoLL_2.push_back("Ad7h");vKeoLL_2.push_back("Ad7c");vKeoLL_2.push_back("Ad7s"); vKeoLL_2.push_back("Ah7d");vKeoLL_2.push_back("Ah7s");vKeoLL_2.push_back("Ac7s"); vKeoLL_2.push_back("Ah7c");vKeoLL_2.push_back("Ac7h");vKeoLL_2.push_back("Ac7d"); vKeoLL_2.push_back("As6d");vKeoLL_2.push_back("As6h");vKeoLL_2.push_back("As6c"); vKeoLL_2.push_back("Ad6h");vKeoLL_2.push_back("Ad6c");vKeoLL_2.push_back("Ad6s"); vKeoLL_2.push_back("Ah6d");vKeoLL_2.push_back("Ah6s");vKeoLL_2.push_back("Ac6s"); vKeoLL_2.push_back("Ah6c");vKeoLL_2.push_back("Ac6h");vKeoLL_2.push_back("Ac6d"); vKeoLL_2.push_back("As5d");vKeoLL_2.push_back("As5h");vKeoLL_2.push_back("As5c"); vKeoLL_2.push_back("Ad5h");vKeoLL_2.push_back("Ad5c");vKeoLL_2.push_back("Ad5s"); vKeoLL_2.push_back("Ah5d");vKeoLL_2.push_back("Ah5s");vKeoLL_2.push_back("Ac5s"); vKeoLL_2.push_back("Ah5c");vKeoLL_2.push_back("Ac5h");vKeoLL_2.push_back("Ac5d"); vKeoLL_2.push_back("As4d");vKeoLL_2.push_back("As4h");vKeoLL_2.push_back("As4c"); vKeoLL_2.push_back("Ad4h");vKeoLL_2.push_back("Ad4c");vKeoLL_2.push_back("Ad4s"); vKeoLL_2.push_back("Ah4d");vKeoLL_2.push_back("Ah4s");vKeoLL_2.push_back("Ac4s"); vKeoLL_2.push_back("Ah4c");vKeoLL_2.push_back("Ac4h");vKeoLL_2.push_back("Ac4d"); vKeoLL_2.push_back("As3d");vKeoLL_2.push_back("As3h");vKeoLL_2.push_back("As3c"); vKeoLL_2.push_back("Ad3h");vKeoLL_2.push_back("Ad3c");vKeoLL_2.push_back("Ad3s"); vKeoLL_2.push_back("Ah3d");vKeoLL_2.push_back("Ah3s");vKeoLL_2.push_back("Ac3s"); vKeoLL_2.push_back("Ah3c");vKeoLL_2.push_back("Ac3h");vKeoLL_2.push_back("Ac3d"); vKeoLL_2.push_back("As2d");vKeoLL_2.push_back("As2h");vKeoLL_2.push_back("As2c"); vKeoLL_2.push_back("Ad2h");vKeoLL_2.push_back("Ad2c");vKeoLL_2.push_back("Ad2s"); vKeoLL_2.push_back("Ah2d");vKeoLL_2.push_back("Ah2s");vKeoLL_2.push_back("Ac2s"); vKeoLL_2.push_back("Ah2c");vKeoLL_2.push_back("Ac2h");vKeoLL_2.push_back("Ac2d"); //Ks vKeoLL_2.push_back("KcQc");vKeoLL_2.push_back("KcJc"); vKeoLL_2.push_back("KcTc");vKeoLL_2.push_back("Kc9c");vKeoLL_2.push_back("Kc8c"); vKeoLL_2.push_back("Kc7c");vKeoLL_2.push_back("Kc6c");vKeoLL_2.push_back("Kc5c"); vKeoLL_2.push_back("Kc4c");vKeoLL_2.push_back("Kc3c");vKeoLL_2.push_back("Kc2c"); vKeoLL_2.push_back("KhQh");vKeoLL_2.push_back("KhJh"); vKeoLL_2.push_back("KhTh");vKeoLL_2.push_back("Kh9h");vKeoLL_2.push_back("Kh8h"); vKeoLL_2.push_back("Kh7h");vKeoLL_2.push_back("Kh6h");vKeoLL_2.push_back("Kh5h"); vKeoLL_2.push_back("Kh4h");vKeoLL_2.push_back("Kh3h");vKeoLL_2.push_back("Kh2h"); vKeoLL_2.push_back("KdQd");vKeoLL_2.push_back("KdJd"); vKeoLL_2.push_back("KdTd");vKeoLL_2.push_back("Kd9d");vKeoLL_2.push_back("Kd8d"); vKeoLL_2.push_back("Kd7d");vKeoLL_2.push_back("Kd6d");vKeoLL_2.push_back("Kd5d"); vKeoLL_2.push_back("Kd4d");vKeoLL_2.push_back("Kd3d");vKeoLL_2.push_back("Kd2d"); vKeoLL_2.push_back("KsQs");vKeoLL_2.push_back("KsJs"); vKeoLL_2.push_back("KsTs");vKeoLL_2.push_back("Ks9s");vKeoLL_2.push_back("Ks8s"); vKeoLL_2.push_back("Ks7s");vKeoLL_2.push_back("Ks6s");vKeoLL_2.push_back("Ks5s"); vKeoLL_2.push_back("Ks4s");vKeoLL_2.push_back("Ks3s");vKeoLL_2.push_back("Ks2s"); //X7s, X7o, and up vKeoLL_2.push_back("Qs9d");vKeoLL_2.push_back("Qs9h");vKeoLL_2.push_back("Qs9c"); vKeoLL_2.push_back("Qd9h");vKeoLL_2.push_back("Qd9c");vKeoLL_2.push_back("Qd9s"); vKeoLL_2.push_back("Qh9d");vKeoLL_2.push_back("Qh9s");vKeoLL_2.push_back("Qc9s"); vKeoLL_2.push_back("Qh9c");vKeoLL_2.push_back("Qc9h");vKeoLL_2.push_back("Qc9d"); vKeoLL_2.push_back("Qs8d");vKeoLL_2.push_back("Qs8h");vKeoLL_2.push_back("Qs8c"); vKeoLL_2.push_back("Qd8h");vKeoLL_2.push_back("Qd8c");vKeoLL_2.push_back("Qd8s"); vKeoLL_2.push_back("Qh8d");vKeoLL_2.push_back("Qh8s");vKeoLL_2.push_back("Qc8s"); vKeoLL_2.push_back("Qh8c");vKeoLL_2.push_back("Qc8h");vKeoLL_2.push_back("Qc8d"); vKeoLL_2.push_back("Qs7d");vKeoLL_2.push_back("Qs7h");vKeoLL_2.push_back("Qs7c"); vKeoLL_2.push_back("Qd7h");vKeoLL_2.push_back("Qd7c");vKeoLL_2.push_back("Qd7s"); vKeoLL_2.push_back("Qh7d");vKeoLL_2.push_back("Qh7s");vKeoLL_2.push_back("Qc7s"); vKeoLL_2.push_back("Qh7c");vKeoLL_2.push_back("Qc7h");vKeoLL_2.push_back("Qc7d"); vKeoLL_2.push_back("Js9d");vKeoLL_2.push_back("Js9h");vKeoLL_2.push_back("Js9c"); vKeoLL_2.push_back("Jd9h");vKeoLL_2.push_back("Jd9c");vKeoLL_2.push_back("Jd9s"); vKeoLL_2.push_back("Jh9d");vKeoLL_2.push_back("Jh9s");vKeoLL_2.push_back("Jc9s"); vKeoLL_2.push_back("Jh9c");vKeoLL_2.push_back("Jc9h");vKeoLL_2.push_back("Jc9d"); vKeoLL_2.push_back("Js8d");vKeoLL_2.push_back("Js8h");vKeoLL_2.push_back("Js8c"); vKeoLL_2.push_back("Jd8h");vKeoLL_2.push_back("Jd8c");vKeoLL_2.push_back("Jd8s"); vKeoLL_2.push_back("Jh8d");vKeoLL_2.push_back("Jh8s");vKeoLL_2.push_back("Jc8s"); vKeoLL_2.push_back("Jh8c");vKeoLL_2.push_back("Jc8h");vKeoLL_2.push_back("Jc8d"); vKeoLL_2.push_back("Js7d");vKeoLL_2.push_back("Js7h");vKeoLL_2.push_back("Js7c"); vKeoLL_2.push_back("Jd7h");vKeoLL_2.push_back("Jd7c");vKeoLL_2.push_back("Jd7s"); vKeoLL_2.push_back("Jh7d");vKeoLL_2.push_back("Jh7s");vKeoLL_2.push_back("Jc7s"); vKeoLL_2.push_back("Jh7c");vKeoLL_2.push_back("Jc7h");vKeoLL_2.push_back("Jc7d"); vKeoLL_2.push_back("Ts9d");vKeoLL_2.push_back("Ts9h");vKeoLL_2.push_back("Ts9c"); vKeoLL_2.push_back("Td9h");vKeoLL_2.push_back("Td9c");vKeoLL_2.push_back("Td9s"); vKeoLL_2.push_back("Th9d");vKeoLL_2.push_back("Th9s");vKeoLL_2.push_back("Tc9s"); vKeoLL_2.push_back("Th9c");vKeoLL_2.push_back("Tc9h");vKeoLL_2.push_back("Tc9d"); vKeoLL_2.push_back("Ts8d");vKeoLL_2.push_back("Ts8h");vKeoLL_2.push_back("Ts8c"); vKeoLL_2.push_back("Td8h");vKeoLL_2.push_back("Td8c");vKeoLL_2.push_back("Td8s"); vKeoLL_2.push_back("Th8d");vKeoLL_2.push_back("Th8s");vKeoLL_2.push_back("Tc8s"); vKeoLL_2.push_back("Th8c");vKeoLL_2.push_back("Tc8h");vKeoLL_2.push_back("Tc8d"); vKeoLL_2.push_back("Ts7d");vKeoLL_2.push_back("Ts7h");vKeoLL_2.push_back("Ts7c"); vKeoLL_2.push_back("Td7h");vKeoLL_2.push_back("Td7c");vKeoLL_2.push_back("Td7s"); vKeoLL_2.push_back("Th7d");vKeoLL_2.push_back("Th7s");vKeoLL_2.push_back("Tc7s"); vKeoLL_2.push_back("Th7c");vKeoLL_2.push_back("Tc7h");vKeoLL_2.push_back("Tc7d"); vKeoLL_2.push_back("Ks9d");vKeoLL_2.push_back("Ks9h");vKeoLL_2.push_back("Ks9c"); vKeoLL_2.push_back("Kd9h");vKeoLL_2.push_back("Kd9c");vKeoLL_2.push_back("Kd9s"); vKeoLL_2.push_back("Kh9d");vKeoLL_2.push_back("Kh9s");vKeoLL_2.push_back("Kc9s"); vKeoLL_2.push_back("Kh9c");vKeoLL_2.push_back("Kc9h");vKeoLL_2.push_back("Kc9d"); vKeoLL_2.push_back("Ks8d");vKeoLL_2.push_back("Ks8h");vKeoLL_2.push_back("Ks8c"); vKeoLL_2.push_back("Kd8h");vKeoLL_2.push_back("Kd8c");vKeoLL_2.push_back("Kd8s"); vKeoLL_2.push_back("Kh8d");vKeoLL_2.push_back("Kh8s");vKeoLL_2.push_back("Kc8s"); vKeoLL_2.push_back("Kh8c");vKeoLL_2.push_back("Kc8h");vKeoLL_2.push_back("Kc8d"); vKeoLL_2.push_back("Ks7d");vKeoLL_2.push_back("Ks7h");vKeoLL_2.push_back("Ks7c"); vKeoLL_2.push_back("Kd7h");vKeoLL_2.push_back("Kd7c");vKeoLL_2.push_back("Kd7s"); vKeoLL_2.push_back("Kh7d");vKeoLL_2.push_back("Kh7s");vKeoLL_2.push_back("Kc7s"); vKeoLL_2.push_back("Kh7c");vKeoLL_2.push_back("Kc7h");vKeoLL_2.push_back("Kc7d"); //22-JJ vKeoLL_2.push_back("2s2h");vKeoLL_2.push_back("2s2d");vKeoLL_2.push_back("2s2c"); vKeoLL_2.push_back("2h2c");vKeoLL_2.push_back("2d2c");vKeoLL_2.push_back("2h2d"); vKeoLL_2.push_back("3s3h");vKeoLL_2.push_back("3s3d");vKeoLL_2.push_back("3s3c"); vKeoLL_2.push_back("3h3c");vKeoLL_2.push_back("3d3c");vKeoLL_2.push_back("3h3d"); vKeoLL_2.push_back("4s4h");vKeoLL_2.push_back("4s4d");vKeoLL_2.push_back("4s4c"); vKeoLL_2.push_back("4h4c");vKeoLL_2.push_back("4d4c");vKeoLL_2.push_back("4h4d"); vKeoLL_2.push_back("5s5h");vKeoLL_2.push_back("5s5d");vKeoLL_2.push_back("5s5c"); vKeoLL_2.push_back("5h5c");vKeoLL_2.push_back("5d5c");vKeoLL_2.push_back("5h5d"); vKeoLL_2.push_back("6s6h");vKeoLL_2.push_back("6s6d");vKeoLL_2.push_back("6s6c"); vKeoLL_2.push_back("6h6c");vKeoLL_2.push_back("6d6c");vKeoLL_2.push_back("6h6d"); vKeoLL_2.push_back("7s7h");vKeoLL_2.push_back("7s7d");vKeoLL_2.push_back("7s7c"); vKeoLL_2.push_back("7h7c");vKeoLL_2.push_back("7d7c");vKeoLL_2.push_back("7h7d"); vKeoLL_2.push_back("8s8h");vKeoLL_2.push_back("8s8d");vKeoLL_2.push_back("8s8c"); vKeoLL_2.push_back("8h8c");vKeoLL_2.push_back("8d8c");vKeoLL_2.push_back("8h8d"); vKeoLL_2.push_back("9s9h");vKeoLL_2.push_back("9s9d");vKeoLL_2.push_back("9s9c"); vKeoLL_2.push_back("9h9c");vKeoLL_2.push_back("9d9c");vKeoLL_2.push_back("9h9d"); vKeoLL_2.push_back("TsTh");vKeoLL_2.push_back("TsTd");vKeoLL_2.push_back("TsTc"); vKeoLL_2.push_back("ThTc");vKeoLL_2.push_back("TdTc");vKeoLL_2.push_back("ThTd"); vKeoLL_2.push_back("JsJh");vKeoLL_2.push_back("JsJd");vKeoLL_2.push_back("JsJc"); vKeoLL_2.push_back("JhJc");vKeoLL_2.push_back("JdJc");vKeoLL_2.push_back("JhJd"); //med-high sc: vKeoLL_2.push_back("TsJs");vKeoLL_2.push_back("TdJd");vKeoLL_2.push_back("TcJc"); vKeoLL_2.push_back("JhTh"); vKeoLL_2.push_back("QsJs");vKeoLL_2.push_back("QdJd");vKeoLL_2.push_back("QcJc"); vKeoLL_2.push_back("JhQh"); vKeoLL_2.push_back("QsKs");vKeoLL_2.push_back("QdKd");vKeoLL_2.push_back("QcKc"); vKeoLL_2.push_back("KhQh"); vKeoLL_2.push_back("Ts9s");vKeoLL_2.push_back("Td9d");vKeoLL_2.push_back("Tc9c"); vKeoLL_2.push_back("9hTh"); //roy-Ts vKeoLL_2.push_back("TsQs");vKeoLL_2.push_back("QdTd");vKeoLL_2.push_back("TcQc"); vKeoLL_2.push_back("QhTh"); vKeoLL_2.push_back("KsTs");vKeoLL_2.push_back("TdKd");vKeoLL_2.push_back("TcKc"); vKeoLL_2.push_back("KhTh"); random_shuffle(vKeoLL_2.begin(), vKeoLL_2.end()); //select one hand, add to scenario: Sleep(35); srand(GetTickCount()); int iKeoLL2 = (rand() % 10) + 1;//1-10? cGen1 = cGen1 + vKeoLL_2[iKeoLL2]; vKeoLL_2.erase(vKeoLL_2.begin(), vKeoLL_2.end()); }break; //end case 2 iSelKeoLL case 3: {//BB vs 2,5 x open //scenario: cGen1 = "BU opens 2,5x BB, folds to you in BB with: "; //cards; >=A8o, Roy8s, Roy9o, all pairs: vectorvKeoLL_3; //>=A8o vKeoLL_3.push_back("AsTh");vKeoLL_3.push_back("AdTh");vKeoLL_3.push_back("AsTh"); vKeoLL_3.push_back("TsAh");vKeoLL_3.push_back("TdAs");vKeoLL_3.push_back("AcTh"); vKeoLL_3.push_back("AsJh");vKeoLL_3.push_back("AcJh");vKeoLL_3.push_back("JhAd"); vKeoLL_3.push_back("AcQh");vKeoLL_3.push_back("AdQs");vKeoLL_3.push_back("QhAs"); vKeoLL_3.push_back("QcAh");vKeoLL_3.push_back("AdQh");vKeoLL_3.push_back("QsAc"); vKeoLL_3.push_back("As9d");vKeoLL_3.push_back("As9h");vKeoLL_3.push_back("As9c"); vKeoLL_3.push_back("Ad9h");vKeoLL_3.push_back("Ad9c");vKeoLL_3.push_back("Ad9s"); vKeoLL_3.push_back("Ah9d");vKeoLL_3.push_back("Ah9s");vKeoLL_3.push_back("Ac9s"); vKeoLL_3.push_back("Ah9c");vKeoLL_3.push_back("Ac9h"); vKeoLL_3.push_back("Ad8h");vKeoLL_3.push_back("Ad8c");vKeoLL_3.push_back("Ad8s"); vKeoLL_3.push_back("Ah8d");vKeoLL_3.push_back("Ah8s");vKeoLL_3.push_back("Ac8s"); vKeoLL_3.push_back("Ah8c");vKeoLL_3.push_back("Ac8h");vKeoLL_3.push_back("Ac8d"); vKeoLL_3.push_back("QsKd");vKeoLL_3.push_back("QsKh");vKeoLL_3.push_back("QsKc"); vKeoLL_3.push_back("QdKh");vKeoLL_3.push_back("QdKc");vKeoLL_3.push_back("QdKs"); vKeoLL_3.push_back("QhKd");vKeoLL_3.push_back("QhKs");vKeoLL_3.push_back("QcKs"); vKeoLL_3.push_back("QhKc");vKeoLL_3.push_back("QcKh");vKeoLL_3.push_back("QcKd"); //22-JJ vKeoLL_3.push_back("2s2h");vKeoLL_3.push_back("2s2d");vKeoLL_3.push_back("2s2c"); vKeoLL_3.push_back("2h2c");vKeoLL_3.push_back("2d2c");vKeoLL_3.push_back("2h2d"); vKeoLL_3.push_back("3s3h");vKeoLL_3.push_back("3s3d");vKeoLL_3.push_back("3s3c"); vKeoLL_3.push_back("3h3c");vKeoLL_3.push_back("3d3c");vKeoLL_3.push_back("3h3d"); vKeoLL_3.push_back("4s4h");vKeoLL_3.push_back("4s4d");vKeoLL_3.push_back("4s4c"); vKeoLL_3.push_back("4h4c");vKeoLL_3.push_back("4d4c");vKeoLL_3.push_back("4h4d"); vKeoLL_3.push_back("5s5h");vKeoLL_3.push_back("5s5d");vKeoLL_3.push_back("5s5c"); vKeoLL_3.push_back("5h5c");vKeoLL_3.push_back("5d5c");vKeoLL_3.push_back("5h5d"); vKeoLL_3.push_back("6s6h");vKeoLL_3.push_back("6s6d");vKeoLL_3.push_back("6s6c"); vKeoLL_3.push_back("6h6c");vKeoLL_3.push_back("6d6c");vKeoLL_3.push_back("6h6d"); vKeoLL_3.push_back("7s7h");vKeoLL_3.push_back("7s7d");vKeoLL_3.push_back("7s7c"); vKeoLL_3.push_back("7h7c"); vKeoLL_3.push_back("9s9h");vKeoLL_3.push_back("9s9d");vKeoLL_3.push_back("9s9c"); vKeoLL_3.push_back("9h9c");vKeoLL_3.push_back("9d9c");vKeoLL_3.push_back("9h9d"); vKeoLL_3.push_back("TsTh");vKeoLL_3.push_back("TsTd");vKeoLL_3.push_back("TsTc"); vKeoLL_3.push_back("ThTc");vKeoLL_3.push_back("TdTc");vKeoLL_3.push_back("ThTd"); vKeoLL_3.push_back("JsJh");vKeoLL_3.push_back("JsJd");vKeoLL_3.push_back("JsJc"); vKeoLL_3.push_back("JhJc");vKeoLL_3.push_back("JdJc");vKeoLL_3.push_back("JhJd"); //med-high sc: vKeoLL_3.push_back("TsJs");vKeoLL_3.push_back("TdJd");vKeoLL_3.push_back("TcJc"); vKeoLL_3.push_back("JhTh"); vKeoLL_3.push_back("QsJs");vKeoLL_3.push_back("QdJd");vKeoLL_3.push_back("QcJc"); vKeoLL_3.push_back("JhQh"); vKeoLL_3.push_back("QsKs");vKeoLL_3.push_back("QdKd");vKeoLL_3.push_back("QcKc"); vKeoLL_3.push_back("KhQh"); vKeoLL_3.push_back("Ts9s");vKeoLL_3.push_back("Td9d");vKeoLL_3.push_back("Tc9c"); vKeoLL_3.push_back("9hTh"); //>=roy-8s vKeoLL_3.push_back("TsQs");vKeoLL_3.push_back("QdTd");vKeoLL_3.push_back("TcQc"); vKeoLL_3.push_back("QhTh"); vKeoLL_3.push_back("KsTs");vKeoLL_3.push_back("TdKd");vKeoLL_3.push_back("TcKc"); vKeoLL_3.push_back("KhTh"); vKeoLL_3.push_back("9sQs");vKeoLL_3.push_back("Qd9d");vKeoLL_3.push_back("9cQc"); vKeoLL_3.push_back("Qh9h"); vKeoLL_3.push_back("Ks9s");vKeoLL_3.push_back("9dKd");vKeoLL_3.push_back("9cKc"); vKeoLL_3.push_back("Kh9h"); vKeoLL_3.push_back("8sQs");vKeoLL_3.push_back("Qd8d");vKeoLL_3.push_back("8cQc"); vKeoLL_3.push_back("Qh8h"); vKeoLL_3.push_back("Ks8s");vKeoLL_3.push_back("8dKd");vKeoLL_3.push_back("8cKc"); vKeoLL_3.push_back("Kh8h"); //>=roy-9o vKeoLL_3.push_back("Qs9d");vKeoLL_3.push_back("Qs9h");vKeoLL_3.push_back("Qs9c"); vKeoLL_3.push_back("Qd9h");vKeoLL_3.push_back("Qd9c");vKeoLL_3.push_back("Qd9s"); vKeoLL_3.push_back("Qh9d"); vKeoLL_3.push_back("Js9d");vKeoLL_3.push_back("Js9h");vKeoLL_3.push_back("Js9c"); vKeoLL_3.push_back("Jd9h");vKeoLL_3.push_back("Jd9c");vKeoLL_3.push_back("Jd9s"); vKeoLL_3.push_back("Jh9d");vKeoLL_3.push_back("Jh9s");vKeoLL_3.push_back("Jc9s"); vKeoLL_3.push_back("Jh9c");vKeoLL_3.push_back("Jc9h");vKeoLL_3.push_back("Jc9d"); vKeoLL_3.push_back("Ts9d");vKeoLL_3.push_back("Ts9h");vKeoLL_3.push_back("Ts9c"); vKeoLL_3.push_back("Td9h");vKeoLL_3.push_back("Td9c");vKeoLL_3.push_back("Td9s"); vKeoLL_3.push_back("Th9d"); vKeoLL_3.push_back("Ks9d");vKeoLL_3.push_back("Ks9h");vKeoLL_3.push_back("Ks9c"); vKeoLL_3.push_back("Kd9h");vKeoLL_3.push_back("Kd9c");vKeoLL_3.push_back("Kd9s"); vKeoLL_3.push_back("Kh9d");vKeoLL_3.push_back("Kh9s");vKeoLL_3.push_back("Kc9s"); vKeoLL_3.push_back("Kh9c");vKeoLL_3.push_back("Kc9h");vKeoLL_3.push_back("Kc9d"); random_shuffle(vKeoLL_3.begin(), vKeoLL_3.end()); //select one hand, add to scenario: Sleep(52); srand(GetTickCount()); int iKeoLL3 = (rand() % 10) + 1;//1-10? cGen1 = cGen1 + vKeoLL_3[iKeoLL3]; vKeoLL_3.erase(vKeoLL_3.begin(), vKeoLL_3.end()); }break; //end case 3 iSelKeoLL case 4: {//BB vs BU 3x open cGen1 = "BU opens 3x BB, folds to you in BB with: "; //cards; A8s, A10o, royJ0, roy9s, 66+: vectorvKeoLL_4; //>=A10o vKeoLL_4.push_back("AsTh");vKeoLL_4.push_back("AdTh");vKeoLL_4.push_back("AsTh"); vKeoLL_4.push_back("TsAh");vKeoLL_4.push_back("TdAs");vKeoLL_4.push_back("AcTh"); vKeoLL_4.push_back("AsJh");vKeoLL_4.push_back("AcJh");vKeoLL_4.push_back("JhAd"); vKeoLL_4.push_back("AcQh");vKeoLL_4.push_back("AdQs");vKeoLL_4.push_back("QhAs"); vKeoLL_4.push_back("QcAh");vKeoLL_4.push_back("AdQh");vKeoLL_4.push_back("QsAc"); vKeoLL_4.push_back("QsKd");vKeoLL_4.push_back("QsKh");vKeoLL_4.push_back("QsKc"); vKeoLL_4.push_back("QdKh");vKeoLL_4.push_back("QdKc");vKeoLL_4.push_back("QdKs"); vKeoLL_4.push_back("QhKd");vKeoLL_4.push_back("QhKs");vKeoLL_4.push_back("QcKs"); vKeoLL_4.push_back("QhKc");vKeoLL_4.push_back("QcKh");vKeoLL_4.push_back("QcKd"); //66-JJ vKeoLL_4.push_back("6s6h");vKeoLL_4.push_back("6s6d");vKeoLL_4.push_back("6s6c"); vKeoLL_4.push_back("6h6c");vKeoLL_4.push_back("6d6c");vKeoLL_4.push_back("6h6d"); vKeoLL_4.push_back("7s7h");vKeoLL_4.push_back("7s7d");vKeoLL_4.push_back("7s7c"); vKeoLL_4.push_back("7h7c");vKeoLL_4.push_back("7d7c");vKeoLL_4.push_back("7h7d"); vKeoLL_4.push_back("8s8h");vKeoLL_4.push_back("8s8d");vKeoLL_4.push_back("8s8c"); vKeoLL_4.push_back("8h8c");vKeoLL_4.push_back("8d8c");vKeoLL_4.push_back("8h8d"); vKeoLL_4.push_back("9s9h");vKeoLL_4.push_back("9s9d");vKeoLL_4.push_back("9s9c"); vKeoLL_4.push_back("9h9c");vKeoLL_4.push_back("9d9c");vKeoLL_4.push_back("9h9d"); vKeoLL_4.push_back("TsTh");vKeoLL_4.push_back("TsTd");vKeoLL_4.push_back("TsTc"); vKeoLL_4.push_back("ThTc");vKeoLL_4.push_back("TdTc");vKeoLL_4.push_back("ThTd"); vKeoLL_4.push_back("JsJh");vKeoLL_4.push_back("JsJd");vKeoLL_4.push_back("JsJc"); vKeoLL_4.push_back("JhJc");vKeoLL_4.push_back("JdJc");vKeoLL_4.push_back("JhJd"); //med-high sc: vKeoLL_4.push_back("TsJs");vKeoLL_4.push_back("TdJd");vKeoLL_4.push_back("TcJc"); vKeoLL_4.push_back("JhTh"); vKeoLL_4.push_back("QsJs");vKeoLL_4.push_back("QdJd");vKeoLL_4.push_back("QcJc"); vKeoLL_4.push_back("JhQh"); vKeoLL_4.push_back("QsKs");vKeoLL_4.push_back("QdKd");vKeoLL_4.push_back("QcKc"); vKeoLL_4.push_back("KhQh"); vKeoLL_4.push_back("Ts9s");vKeoLL_4.push_back("Td9d");vKeoLL_4.push_back("Tc9c"); vKeoLL_4.push_back("9hTh"); //>=roy-9s vKeoLL_4.push_back("TsQs");vKeoLL_4.push_back("QdTd");vKeoLL_4.push_back("TcQc"); vKeoLL_4.push_back("QhTh"); vKeoLL_4.push_back("KsTs");vKeoLL_4.push_back("TdKd");vKeoLL_4.push_back("TcKc"); vKeoLL_4.push_back("KhTh"); vKeoLL_4.push_back("9sQs");vKeoLL_4.push_back("Qd9d");vKeoLL_4.push_back("9cQc"); vKeoLL_4.push_back("Qh9h"); vKeoLL_4.push_back("Ks9s");vKeoLL_4.push_back("9dKd");vKeoLL_4.push_back("9cKc"); vKeoLL_4.push_back("Kh9h"); //>=roy-To vKeoLL_4.push_back("QsTd");vKeoLL_4.push_back("QsTh");vKeoLL_4.push_back("QsTc"); vKeoLL_4.push_back("QdTh");vKeoLL_4.push_back("QdTc");vKeoLL_4.push_back("QdTs"); vKeoLL_4.push_back("QhTd");vKeoLL_4.push_back("QhTs");vKeoLL_4.push_back("QcTs"); vKeoLL_4.push_back("QhTc");vKeoLL_4.push_back("QcTh");vKeoLL_4.push_back("QcTd"); vKeoLL_4.push_back("JsTd");vKeoLL_4.push_back("JsTh");vKeoLL_4.push_back("JsTc"); vKeoLL_4.push_back("JdTh");vKeoLL_4.push_back("JdTc");vKeoLL_4.push_back("JdTs"); vKeoLL_4.push_back("JhTd");vKeoLL_4.push_back("JhTs");vKeoLL_4.push_back("JcTs"); vKeoLL_4.push_back("JhTc");vKeoLL_4.push_back("JcTh");vKeoLL_4.push_back("JcTd"); vKeoLL_4.push_back("KsTd");vKeoLL_4.push_back("KsTh");vKeoLL_4.push_back("KsTc"); vKeoLL_4.push_back("KdTh");vKeoLL_4.push_back("KdTc");vKeoLL_4.push_back("KdTs"); vKeoLL_4.push_back("KhTd");vKeoLL_4.push_back("KhTs");vKeoLL_4.push_back("KcTs"); vKeoLL_4.push_back("KhTc");vKeoLL_4.push_back("KcTh");vKeoLL_4.push_back("KcTd"); vKeoLL_4.push_back("QsJd");vKeoLL_4.push_back("QsJh");vKeoLL_4.push_back("QsJc"); vKeoLL_4.push_back("QdJh");vKeoLL_4.push_back("QdJc");vKeoLL_4.push_back("QdJs"); vKeoLL_4.push_back("QhJd");vKeoLL_4.push_back("QhJs");vKeoLL_4.push_back("QcJs"); vKeoLL_4.push_back("QhJc");vKeoLL_4.push_back("QcJh");vKeoLL_4.push_back("QcJd"); vKeoLL_4.push_back("KsJd");vKeoLL_4.push_back("KsJh");vKeoLL_4.push_back("KsJc"); vKeoLL_4.push_back("KdJh");vKeoLL_4.push_back("KdJc");vKeoLL_4.push_back("KdJs"); vKeoLL_4.push_back("KhJd");vKeoLL_4.push_back("KhJs");vKeoLL_4.push_back("KcJs"); vKeoLL_4.push_back("KhJc");vKeoLL_4.push_back("KcJh");vKeoLL_4.push_back("KcJd"); random_shuffle(vKeoLL_4.begin(), vKeoLL_4.end()); //select one hand, add to scenario: Sleep(24); srand(GetTickCount()); int iKeoLL4 = (rand() % 10) + 1;//1-10? cGen1 = cGen1 + vKeoLL_4[iKeoLL4]; vKeoLL_4.erase(vKeoLL_4.begin(), vKeoLL_4.end()); }break; //end case 4 iSelKeoLL case 5: {//BU vs UTG open 6-max cGen1 = "UTG opens 3x BB (6-max), folds to you on BU with: "; //cards; A10s, AQo, royJs, all pairs: vectorvKeoLL_5; //>=AQo vKeoLL_5.push_back("AcQh");vKeoLL_5.push_back("AdQs");vKeoLL_5.push_back("QhAs"); vKeoLL_5.push_back("QcAh");vKeoLL_5.push_back("AdQh");vKeoLL_5.push_back("QsAc"); vKeoLL_5.push_back("QsKd");vKeoLL_5.push_back("QsKh");vKeoLL_5.push_back("QsKc"); vKeoLL_5.push_back("QdKh");vKeoLL_5.push_back("QdKc");vKeoLL_5.push_back("QdKs"); vKeoLL_5.push_back("QhKd");vKeoLL_5.push_back("QhKs");vKeoLL_5.push_back("QcKs"); vKeoLL_5.push_back("QhKc");vKeoLL_5.push_back("QcKh");vKeoLL_5.push_back("QcKd"); //22-JJ vKeoLL_5.push_back("2s2h");vKeoLL_5.push_back("2s2d");vKeoLL_5.push_back("2s2c"); vKeoLL_5.push_back("2h2c");vKeoLL_5.push_back("2d2c");vKeoLL_5.push_back("2h2d"); vKeoLL_5.push_back("3s3h");vKeoLL_5.push_back("3s3d");vKeoLL_5.push_back("3s3c"); vKeoLL_5.push_back("3h3c");vKeoLL_5.push_back("3d3c");vKeoLL_5.push_back("3h3d"); vKeoLL_5.push_back("4s4h");vKeoLL_5.push_back("4s4d");vKeoLL_5.push_back("4s4c"); vKeoLL_5.push_back("4h4c");vKeoLL_5.push_back("4d4c");vKeoLL_5.push_back("4h4d"); vKeoLL_5.push_back("5s5h");vKeoLL_5.push_back("5s5d");vKeoLL_5.push_back("5s5c"); vKeoLL_5.push_back("5h5c");vKeoLL_5.push_back("5d5c");vKeoLL_5.push_back("5h5d"); vKeoLL_5.push_back("6s6h");vKeoLL_5.push_back("6s6d");vKeoLL_5.push_back("6s6c"); vKeoLL_5.push_back("6h6c");vKeoLL_5.push_back("6d6c");vKeoLL_5.push_back("6h6d"); vKeoLL_5.push_back("7s7h");vKeoLL_5.push_back("7s7d");vKeoLL_5.push_back("7s7c"); vKeoLL_5.push_back("7h7c");vKeoLL_5.push_back("7d7c");vKeoLL_5.push_back("7h7d"); vKeoLL_5.push_back("8s8h");vKeoLL_5.push_back("8s8d");vKeoLL_5.push_back("8s8c"); vKeoLL_5.push_back("8h8c");vKeoLL_5.push_back("8d8c");vKeoLL_5.push_back("8h8d"); vKeoLL_5.push_back("9s9h");vKeoLL_5.push_back("9s9d");vKeoLL_5.push_back("9s9c"); vKeoLL_5.push_back("9h9c");vKeoLL_5.push_back("9d9c");vKeoLL_5.push_back("9h9d"); vKeoLL_5.push_back("TsTh");vKeoLL_5.push_back("TsTd");vKeoLL_5.push_back("TsTc"); vKeoLL_5.push_back("ThTc");vKeoLL_5.push_back("TdTc");vKeoLL_5.push_back("ThTd"); vKeoLL_5.push_back("JsJh");vKeoLL_5.push_back("JsJd");vKeoLL_5.push_back("JsJc"); vKeoLL_5.push_back("JhJc");vKeoLL_5.push_back("JdJc");vKeoLL_5.push_back("JhJd"); //med-high sc: vKeoLL_5.push_back("TsJs");vKeoLL_5.push_back("TdJd");vKeoLL_5.push_back("TcJc"); vKeoLL_5.push_back("JhTh"); vKeoLL_5.push_back("QsJs");vKeoLL_5.push_back("QdJd");vKeoLL_5.push_back("QcJc"); vKeoLL_5.push_back("JhQh"); vKeoLL_5.push_back("QsKs");vKeoLL_5.push_back("QdKd");vKeoLL_5.push_back("QcKc"); vKeoLL_5.push_back("KhQh"); vKeoLL_5.push_back("Ts9s");vKeoLL_5.push_back("Td9d");vKeoLL_5.push_back("Tc9c"); vKeoLL_5.push_back("9hTh"); //>=roy-Js vKeoLL_5.push_back("JsQs");vKeoLL_5.push_back("QdJd");vKeoLL_5.push_back("JcQc"); vKeoLL_5.push_back("QhJh"); vKeoLL_5.push_back("KsJs");vKeoLL_5.push_back("JdKd");vKeoLL_5.push_back("JcKc"); vKeoLL_5.push_back("KhJh"); random_shuffle(vKeoLL_5.begin(), vKeoLL_5.end()); //select one hand, add to scenario: Sleep(65); srand(GetTickCount()); int iKeoLL5 = (rand() % 10) + 1;//1-10? cGen1 = cGen1 + vKeoLL_5[iKeoLL5]; vKeoLL_5.erase(vKeoLL_5.begin(), vKeoLL_5.end()); }break; //end case 5 iSelKeoLL case 6: {//BU vs UTG open full ring cGen1 = "UTG opens 3x BB (full ring), folds to you on BU with: "; //cards; AKs, AQo, TT-QQ: vectorvKeoLL_6; //AQo vKeoLL_6.push_back("AcQh");vKeoLL_6.push_back("AdQs");vKeoLL_6.push_back("QhAs"); vKeoLL_6.push_back("QcAh");vKeoLL_6.push_back("AdQh");vKeoLL_6.push_back("QsAc"); //TT-QQ vKeoLL_6.push_back("TsTh");vKeoLL_6.push_back("TsTd");vKeoLL_6.push_back("TsTc"); vKeoLL_6.push_back("ThTc");vKeoLL_6.push_back("TdTc");vKeoLL_6.push_back("ThTd"); vKeoLL_6.push_back("JsJh");vKeoLL_6.push_back("JsJd");vKeoLL_6.push_back("JsJc"); vKeoLL_6.push_back("JhJc");vKeoLL_6.push_back("JdJc");vKeoLL_6.push_back("JhJd"); vKeoLL_6.push_back("QsQh");vKeoLL_6.push_back("QsQd");vKeoLL_6.push_back("QsQc"); vKeoLL_6.push_back("QhQc");vKeoLL_6.push_back("QdQc");vKeoLL_6.push_back("QhQd"); random_shuffle(vKeoLL_6.begin(), vKeoLL_6.end()); //select one hand, add to scenario: Sleep(65); srand(GetTickCount()); int iKeoLL6 = (rand() % 10) + 1;//1-10? cGen1 = cGen1 + vKeoLL_6[iKeoLL6]; vKeoLL_6.erase(vKeoLL_6.begin(), vKeoLL_6.end()); }break; //end case 6 iSelKeoLL case 7: {//HJ vs UTG open, 6-max, 66-QQ, AQo, AQs, AJs, ATs cGen1 = "UTG opens 3x BB (6-max), folds to you in HJ with: "; //cards; 66-QQ, AQo, AQs, AJs, ATs vectorvKeoLL_7; //AQo vKeoLL_7.push_back("AcQh");vKeoLL_7.push_back("AdQs");vKeoLL_7.push_back("QhAs"); vKeoLL_7.push_back("QcAh");vKeoLL_7.push_back("AdQh");vKeoLL_7.push_back("QsAc"); //66-QQ vKeoLL_7.push_back("6s6h");vKeoLL_7.push_back("6s6d");vKeoLL_7.push_back("6s6c"); vKeoLL_7.push_back("6h6c");vKeoLL_7.push_back("6d6c");vKeoLL_7.push_back("6h6d"); vKeoLL_7.push_back("7s7h");vKeoLL_7.push_back("7s7d");vKeoLL_7.push_back("7s7c"); vKeoLL_7.push_back("7h7c");vKeoLL_7.push_back("7d7c");vKeoLL_7.push_back("7h7d"); vKeoLL_7.push_back("8s8h");vKeoLL_7.push_back("8s8d");vKeoLL_7.push_back("8s8c"); vKeoLL_7.push_back("8h8c");vKeoLL_7.push_back("8d8c");vKeoLL_7.push_back("8h8d"); vKeoLL_7.push_back("9s9h");vKeoLL_7.push_back("9s9d");vKeoLL_7.push_back("9s9c"); vKeoLL_7.push_back("9h9c");vKeoLL_7.push_back("9d9c");vKeoLL_7.push_back("9h9d"); vKeoLL_7.push_back("TsTh");vKeoLL_7.push_back("TsTd");vKeoLL_7.push_back("TsTc"); vKeoLL_7.push_back("ThTc");vKeoLL_7.push_back("TdTc");vKeoLL_7.push_back("ThTd"); vKeoLL_7.push_back("JsJh");vKeoLL_7.push_back("JsJd");vKeoLL_7.push_back("JsJc"); vKeoLL_7.push_back("JhJc");vKeoLL_7.push_back("JdJc");vKeoLL_7.push_back("JhJd"); vKeoLL_7.push_back("QsQh");vKeoLL_7.push_back("QsQd");vKeoLL_7.push_back("QsQc"); vKeoLL_7.push_back("QhQc");vKeoLL_7.push_back("QdQc");vKeoLL_7.push_back("QhQd"); //AQs, AJs, ATs vKeoLL_7.push_back("AcQc");vKeoLL_7.push_back("AcJc"); vKeoLL_7.push_back("AcTc"); vKeoLL_7.push_back("AhQh");vKeoLL_7.push_back("AhJh"); vKeoLL_7.push_back("AhTh"); vKeoLL_7.push_back("AsQs");vKeoLL_7.push_back("AsJs"); vKeoLL_7.push_back("AsTs"); vKeoLL_7.push_back("AdQd");vKeoLL_7.push_back("AdJd"); vKeoLL_7.push_back("AdTd"); random_shuffle(vKeoLL_7.begin(), vKeoLL_7.end()); //select one hand, add to scenario: Sleep(65); srand(GetTickCount()); int iKeoLL7 = (rand() % 10) + 1;//1-10? cGen1 = cGen1 + vKeoLL_7[iKeoLL7]; vKeoLL_7.erase(vKeoLL_7.begin(), vKeoLL_7.end()); }break; //end case 7 iSelKeoLL case 8: {//HJ vs UTG open, full ring, TT-QQ, AQs, AJs, cGen1 = "UTG opens 3x BB (full ring), folds to you in HJ with: "; //cards; TT-QQ, AQs, AJs, vectorvKeoLL_8; //TT-QQ vKeoLL_8.push_back("TsTh");vKeoLL_8.push_back("TsTd");vKeoLL_8.push_back("TsTc"); vKeoLL_8.push_back("ThTc");vKeoLL_8.push_back("TdTc");vKeoLL_8.push_back("ThTd"); vKeoLL_8.push_back("JsJh");vKeoLL_8.push_back("JsJd");vKeoLL_8.push_back("JsJc"); vKeoLL_8.push_back("JhJc");vKeoLL_8.push_back("JdJc");vKeoLL_8.push_back("JhJd"); vKeoLL_8.push_back("QsQh");vKeoLL_8.push_back("QsQd");vKeoLL_8.push_back("QsQc"); vKeoLL_8.push_back("QhQc");vKeoLL_8.push_back("QdQc");vKeoLL_8.push_back("QhQd"); //AQs, AJs vKeoLL_8.push_back("AcQc");vKeoLL_8.push_back("AcJc"); vKeoLL_8.push_back("AhQh");vKeoLL_8.push_back("AhJh"); vKeoLL_8.push_back("AsQs");vKeoLL_8.push_back("AsJs"); vKeoLL_8.push_back("AdQd");vKeoLL_8.push_back("AdJd"); random_shuffle(vKeoLL_8.begin(), vKeoLL_8.end()); //select one hand, add to scenario: Sleep(65); srand(GetTickCount()); int iKeoLL8 = (rand() % 10) + 1;//1-10? cGen1 = cGen1 + vKeoLL_8[iKeoLL8]; vKeoLL_8.erase(vKeoLL_8.begin(), vKeoLL_8.end()); }break; //end case 8 iSelKeoLL case 9: {//CO vs UTG open 6-max, 66-QQ, AQo, AQs, AJs, ATs, KQs, JTs cGen1 = "UTG opens 3x BB (6-max), folds to you in CO with: "; //cards; 66-QQ, AQo, AQs, AJs, ATs, KQs, JQs vectorvKeoLL_9; //66-QQ vKeoLL_9.push_back("6s6h");vKeoLL_9.push_back("6s6d");vKeoLL_9.push_back("6s6c"); vKeoLL_9.push_back("6h6c");vKeoLL_9.push_back("6d6c");vKeoLL_9.push_back("6h6d"); vKeoLL_9.push_back("7s7h");vKeoLL_9.push_back("7s7d");vKeoLL_9.push_back("7s7c"); vKeoLL_9.push_back("7h7c");vKeoLL_9.push_back("7d7c");vKeoLL_9.push_back("7h7d"); vKeoLL_9.push_back("8s8h");vKeoLL_9.push_back("8s8d");vKeoLL_9.push_back("8s8c"); vKeoLL_9.push_back("8h8c");vKeoLL_9.push_back("8d8c");vKeoLL_9.push_back("8h8d"); vKeoLL_9.push_back("9s9h");vKeoLL_9.push_back("9s9d");vKeoLL_9.push_back("9s9c"); vKeoLL_9.push_back("9h9c");vKeoLL_9.push_back("9d9c");vKeoLL_9.push_back("9h9d"); vKeoLL_9.push_back("TsTh");vKeoLL_9.push_back("TsTd");vKeoLL_9.push_back("TsTc"); vKeoLL_9.push_back("ThTc");vKeoLL_9.push_back("TdTc");vKeoLL_9.push_back("ThTd"); vKeoLL_9.push_back("JsJh");vKeoLL_9.push_back("JsJd");vKeoLL_9.push_back("JsJc"); vKeoLL_9.push_back("JhJc");vKeoLL_9.push_back("JdJc");vKeoLL_9.push_back("JhJd"); vKeoLL_9.push_back("QsQh");vKeoLL_9.push_back("QsQd");vKeoLL_9.push_back("QsQc"); vKeoLL_9.push_back("QhQc");vKeoLL_9.push_back("QdQc");vKeoLL_9.push_back("QhQd"); //AQs, AJs, ATs vKeoLL_9.push_back("AcQc");vKeoLL_9.push_back("AcJc"); vKeoLL_9.push_back("AhQh");vKeoLL_9.push_back("AhJh"); vKeoLL_9.push_back("AsQs");vKeoLL_9.push_back("AsJs"); vKeoLL_9.push_back("AdQd");vKeoLL_9.push_back("AdJd"); vKeoLL_9.push_back("AsTs");vKeoLL_9.push_back("AsTs"); vKeoLL_9.push_back("AdTd");vKeoLL_9.push_back("AdTd"); //KQs, JQs vKeoLL_9.push_back("QsJs");vKeoLL_9.push_back("QdJd");vKeoLL_9.push_back("QcJc"); vKeoLL_9.push_back("JhQh"); vKeoLL_9.push_back("QsKs");vKeoLL_9.push_back("QdKd");vKeoLL_9.push_back("QcKc"); vKeoLL_9.push_back("KhQh"); random_shuffle(vKeoLL_9.begin(), vKeoLL_9.end()); //select one hand, add to scenario: Sleep(65); srand(GetTickCount()); int iKeoLL9 = (rand() % 10) + 1;//1-10? cGen1 = cGen1 + vKeoLL_9[iKeoLL9]; vKeoLL_9.erase(vKeoLL_9.begin(), vKeoLL_9.end()); }break; //end case 9 iSelKeoLL case 10: {//SB vs BU open, very narrow cGen1 = "BU opens 3x BB, you are in SB with: "; //cards; vectorvKeoLL_10; //TT-QQ vKeoLL_10.push_back("TsTh");vKeoLL_10.push_back("TsTd");vKeoLL_10.push_back("TsTc"); vKeoLL_10.push_back("ThTc");vKeoLL_10.push_back("TdTc");vKeoLL_10.push_back("ThTd"); vKeoLL_10.push_back("JsJh");vKeoLL_10.push_back("JsJd");vKeoLL_10.push_back("JsJc"); vKeoLL_10.push_back("JhJc");vKeoLL_10.push_back("JdJc");vKeoLL_10.push_back("JhJd"); vKeoLL_10.push_back("QsQh");vKeoLL_10.push_back("QsQd");vKeoLL_10.push_back("QsQc"); vKeoLL_10.push_back("QhQc");vKeoLL_10.push_back("QdQc");vKeoLL_10.push_back("QhQd"); //KQs vKeoLL_10.push_back("QsKs");vKeoLL_10.push_back("QdKd");vKeoLL_10.push_back("QcKc"); vKeoLL_10.push_back("KhQh"); random_shuffle(vKeoLL_10.begin(), vKeoLL_10.end()); //select one hand, add to scenario: Sleep(65); srand(GetTickCount()); int iKeoLL10 = (rand() % 10) + 1;//1-10? cGen1 = cGen1 + vKeoLL_10[iKeoLL10]; vKeoLL_10.erase(vKeoLL_10.begin(), vKeoLL_10.end()); }break; //end case 10 iSelKeoLL case 11: {//BB vs SB open, very wide, //but simplified here, 'too many exception handles states' error //scenario: cGen1 = "BU opens 2x BB, folds to you in BB with: "; //cards; vectorvKeoLL_11; //high Axo vKeoLL_11.push_back("AsTh");vKeoLL_11.push_back("AdTh");vKeoLL_11.push_back("AsTh"); vKeoLL_11.push_back("TsAh"); vKeoLL_11.push_back("AcQh"); //rest of Axo vKeoLL_11.push_back("As9d");vKeoLL_11.push_back("As9h");vKeoLL_11.push_back("As9c"); vKeoLL_11.push_back("Ad9h");vKeoLL_11.push_back("Ad9c");vKeoLL_11.push_back("Ad9s"); vKeoLL_11.push_back("Ah9d");vKeoLL_11.push_back("Ah9s");vKeoLL_11.push_back("Ac9s"); vKeoLL_11.push_back("Ah9c");vKeoLL_11.push_back("Ac9h");vKeoLL_11.push_back("Ac9d"); vKeoLL_11.push_back("Ad4h");vKeoLL_11.push_back("Ad4c");vKeoLL_11.push_back("Ad4s"); vKeoLL_11.push_back("Ah4d");vKeoLL_11.push_back("Ah4s");vKeoLL_11.push_back("Ac4s"); vKeoLL_11.push_back("Ah4c");vKeoLL_11.push_back("Ac4h");vKeoLL_11.push_back("Ac4d"); vKeoLL_11.push_back("As3d");vKeoLL_11.push_back("As3h");vKeoLL_11.push_back("As3c"); vKeoLL_11.push_back("Ad3h");vKeoLL_11.push_back("Ad3c");vKeoLL_11.push_back("Ad3s"); vKeoLL_11.push_back("Ah3d");vKeoLL_11.push_back("Ah3s");vKeoLL_11.push_back("Ac3s"); //Ks vKeoLL_11.push_back("KcQc");vKeoLL_11.push_back("KcJc"); vKeoLL_11.push_back("Kc4c");vKeoLL_11.push_back("Kc3c");vKeoLL_11.push_back("Kc2c"); vKeoLL_11.push_back("KhQh");vKeoLL_11.push_back("KhJh"); vKeoLL_11.push_back("KhTh");vKeoLL_11.push_back("Kh9h");vKeoLL_11.push_back("Kh8h"); vKeoLL_11.push_back("KdQd");vKeoLL_11.push_back("KdJd"); vKeoLL_11.push_back("KdTd");vKeoLL_11.push_back("Kd9d");vKeoLL_11.push_back("Kd8d"); vKeoLL_11.push_back("Kd7d");vKeoLL_11.push_back("Kd6d");vKeoLL_11.push_back("Kd5d"); vKeoLL_11.push_back("KsTs");vKeoLL_11.push_back("Ks9s");vKeoLL_11.push_back("Ks8s"); vKeoLL_11.push_back("Ks7s");vKeoLL_11.push_back("Ks6s");vKeoLL_11.push_back("Ks5s"); //X7s, X7o, and up vKeoLL_11.push_back("Qs9d");vKeoLL_11.push_back("Qs9h");vKeoLL_11.push_back("Qs9c"); vKeoLL_11.push_back("Qd9h");vKeoLL_11.push_back("Qd9c");vKeoLL_11.push_back("Qd9s"); vKeoLL_11.push_back("Qh9d");vKeoLL_11.push_back("Qh9s");vKeoLL_11.push_back("Qc9s"); vKeoLL_11.push_back("Qd7h");vKeoLL_11.push_back("Qd7c"); vKeoLL_11.push_back("Qh7c");vKeoLL_11.push_back("Qc7h");vKeoLL_11.push_back("Qc7d"); vKeoLL_11.push_back("Js9d");vKeoLL_11.push_back("Js9h");vKeoLL_11.push_back("Js9c"); vKeoLL_11.push_back("Jd9h");vKeoLL_11.push_back("Jd9c");vKeoLL_11.push_back("Jd9s"); vKeoLL_11.push_back("Jh8d");vKeoLL_11.push_back("Jh8s");vKeoLL_11.push_back("Jc8s"); vKeoLL_11.push_back("Jh8c");vKeoLL_11.push_back("Jc8h");vKeoLL_11.push_back("Jc8d"); vKeoLL_11.push_back("Js7d");vKeoLL_11.push_back("Js7h");vKeoLL_11.push_back("Js7c"); vKeoLL_11.push_back("Jd7h");vKeoLL_11.push_back("Jd7c"); vKeoLL_11.push_back("Jh7c");vKeoLL_11.push_back("Jc7h");vKeoLL_11.push_back("Jc7d"); vKeoLL_11.push_back("Th8d");vKeoLL_11.push_back("Th8s");vKeoLL_11.push_back("Tc8s"); vKeoLL_11.push_back("Th8c");vKeoLL_11.push_back("Tc8h");vKeoLL_11.push_back("Tc8d"); vKeoLL_11.push_back("Ts7d");vKeoLL_11.push_back("Ts7h");vKeoLL_11.push_back("Ts7c"); vKeoLL_11.push_back("Td7h");vKeoLL_11.push_back("Td7c");vKeoLL_11.push_back("Td7s"); vKeoLL_11.push_back("Th7d");vKeoLL_11.push_back("Th7s");vKeoLL_11.push_back("Tc7s"); vKeoLL_11.push_back("Th7c");vKeoLL_11.push_back("Tc7h"); //'too many exception handler states in function pstGenerator, simplify function' ??? //does not help: : disabled exception handling in project, settings, c++ //22-JJ vKeoLL_11.push_back("2s2h");vKeoLL_11.push_back("2s2d");vKeoLL_11.push_back("2s2c"); vKeoLL_11.push_back("JsJh");vKeoLL_11.push_back("JsJd");vKeoLL_11.push_back("JsJc"); vKeoLL_11.push_back("JhJc");vKeoLL_11.push_back("JdJc");vKeoLL_11.push_back("JhJd"); //med-high sc: vKeoLL_11.push_back("TsJs");vKeoLL_11.push_back("TdJd");vKeoLL_11.push_back("TcJc"); vKeoLL_11.push_back("JhTh"); vKeoLL_11.push_back("QsJs"); vKeoLL_11.push_back("QsKs");vKeoLL_11.push_back("QdKd"); vKeoLL_11.push_back("KhQh"); //roy-Ts vKeoLL_11.push_back("TsQs");vKeoLL_11.push_back("QdTd");vKeoLL_11.push_back("TcQc"); vKeoLL_11.push_back("QhTh"); vKeoLL_11.push_back("KsTs"); random_shuffle(vKeoLL_11.begin(), vKeoLL_11.end()); //select one hand, add to scenario: Sleep(35); srand(GetTickCount()); int iKeoLL11 = (rand() % 10) + 1;//1-10? cGen1 = cGen1 + vKeoLL_11[iKeoLL11]; vKeoLL_11.erase(vKeoLL_11.begin(), vKeoLL_11.end()); }break; //end case 11 iSelKeoLL case 12: {//CO vs UTG open full ring, 99-QQ, AQo, AQs, AJs, ATs, KQs, JTs, 9Ts cGen1 = "UTG opens 3x BB (full ring), folds to you in CO with: "; //cards; 99-QQ, AQo, AQs, AJs, ATs, KQs, JQs, JTs vectorvKeoLL_12; //99-QQ vKeoLL_12.push_back("9s9h");vKeoLL_12.push_back("9s9d");vKeoLL_12.push_back("9s9c"); vKeoLL_12.push_back("9h9c");vKeoLL_12.push_back("9d9c");vKeoLL_12.push_back("9h9d"); vKeoLL_12.push_back("TsTh");vKeoLL_12.push_back("TsTd");vKeoLL_12.push_back("TsTc"); vKeoLL_12.push_back("ThTc"); vKeoLL_12.push_back("JsJh");vKeoLL_12.push_back("JsJd");vKeoLL_12.push_back("JsJc"); vKeoLL_12.push_back("JhJc");vKeoLL_12.push_back("JdJc");vKeoLL_12.push_back("JhJd"); vKeoLL_12.push_back("QsQh");vKeoLL_12.push_back("QsQd");vKeoLL_12.push_back("QsQc"); vKeoLL_12.push_back("QhQc"); //AQs, AJs, ATs vKeoLL_12.push_back("AcQc");vKeoLL_12.push_back("AcJc"); vKeoLL_12.push_back("AhQh");vKeoLL_12.push_back("AhJh"); vKeoLL_12.push_back("AsQs");vKeoLL_12.push_back("AsJs"); vKeoLL_12.push_back("AdQd");vKeoLL_12.push_back("AdJd"); vKeoLL_12.push_back("AsTs");vKeoLL_12.push_back("AsTs"); //AQo vKeoLL_12.push_back("AcQh");vKeoLL_12.push_back("AdQs");vKeoLL_12.push_back("QhAs"); vKeoLL_12.push_back("QcAh");vKeoLL_12.push_back("AdQh");vKeoLL_12.push_back("QsAc"); //KQs, JQs, TJs vKeoLL_12.push_back("QsJs");vKeoLL_12.push_back("QdJd");vKeoLL_12.push_back("QcJc"); vKeoLL_12.push_back("JhQh"); vKeoLL_12.push_back("QsKs");vKeoLL_12.push_back("QdKd");vKeoLL_12.push_back("QcKc"); vKeoLL_12.push_back("KhQh"); vKeoLL_12.push_back("JsTs");vKeoLL_12.push_back("JdTd");vKeoLL_12.push_back("JcTc"); random_shuffle(vKeoLL_12.begin(), vKeoLL_12.end()); //select one hand, add to scenario: Sleep(65); srand(GetTickCount()); int iKeoLL12 = (rand() % 10) + 1;//1-10? cGen1 = cGen1 + vKeoLL_12[iKeoLL12]; vKeoLL_12.erase(vKeoLL_12.begin(), vKeoLL_12.end()); }break; //end case 12 iSelKeoLL default: {//default }break; //end default iSelKeoLL }//end switch(iSelKeoLL) }break;//end case 3, sw iGensel: Call case 4: {//3b //likely a small range that apply to all: //QQ-AA, AKs, AKo, Axs //scenarios: vectorv3b; v3b.push_back("HJ opens 3x BB. You are in CO with: "); v3b.push_back("HJ opens 3x BB, folds to you on BU with: "); v3b.push_back("HJ opens 3x BB, folds to you in SB with: "); v3b.push_back("HJ opens 3x BB, folds to you in BB with: "); v3b.push_back("CO opens 3x BB, folds to you in BB with: "); v3b.push_back("CO opens 3x BB, folds to you in SB with: "); v3b.push_back("CO opens 3x BB. You are on BU with: "); v3b.push_back("BU opens 3x BB. You are in SB with: "); v3b.push_back("BU opens 3x BB. You are in BB with: "); v3b.push_back("HJ opens 2x BB. You are in CO with: "); v3b.push_back("HJ opens 2x BB, folds to you on BU with: "); v3b.push_back("HJ opens 2x BB, folds to you in SB with: "); v3b.push_back("HJ opens 2x BB, folds to you in BB with: "); v3b.push_back("CO opens 2x BB, folds to you in BB with: "); v3b.push_back("CO opens 2x BB, folds to you in SB with: "); v3b.push_back("CO opens 2x BB. You are on BU with: "); v3b.push_back("BU opens 2x BB. You are in SB with: "); v3b.push_back("BU opens 2x BB. You are in BB with: "); v3b.push_back("UTG opens 3x BB. You are UTG+1 with: "); v3b.push_back("UTG opens 3x BB. You are UTG+2 with: "); v3b.push_back("UTG opens 2x BB. You are UTG+1 with: "); v3b.push_back("UTG opens 2x BB. You are UTG+2 with: "); random_shuffle(v3b.begin(), v3b.end()); //select scenario: Sleep(26); srand(GetTickCount()); int iScen3b = (rand() % 10) + 1;//1-10? cGen1 = v3b[iScen3b]; //cards: //QQ-AA, [AKs], AKo, Axs //had to simplify, 'too many exception handler states' vectorv3B_Cards; v3B_Cards.push_back("AsKs");v3B_Cards.push_back("AsQs");v3B_Cards.push_back("AsJs"); v3B_Cards.push_back("AsTs");v3B_Cards.push_back("As9s"); v3B_Cards.push_back("AdKd");v3B_Cards.push_back("AdQd");v3B_Cards.push_back("AdJd"); v3B_Cards.push_back("AdTd");v3B_Cards.push_back("Ad9d"); v3B_Cards.push_back("AhKh"); v3B_Cards.push_back("AhTh");v3B_Cards.push_back("Ah9h"); v3B_Cards.push_back("Ah7h"); v3B_Cards.push_back("AcKc");v3B_Cards.push_back("AcQc"); v3B_Cards.push_back("AcTc");v3B_Cards.push_back("Ac9c");v3B_Cards.push_back("Ac8c"); v3B_Cards.push_back("Ac7c"); v3B_Cards.push_back("AsAh");v3B_Cards.push_back("AsAd"); v3B_Cards.push_back("AhAc");v3B_Cards.push_back("AdAc");v3B_Cards.push_back("AhAd"); v3B_Cards.push_back("KsKh");v3B_Cards.push_back("KsKd"); v3B_Cards.push_back("KhKc");v3B_Cards.push_back("KdKc");v3B_Cards.push_back("KhKd"); v3B_Cards.push_back("QsQh");v3B_Cards.push_back("QsQd");v3B_Cards.push_back("QsQc"); v3B_Cards.push_back("QhQc"); v3B_Cards.push_back("AsKd");v3B_Cards.push_back("AsKh"); v3B_Cards.push_back("AhKd");v3B_Cards.push_back("AhKs");v3B_Cards.push_back("AcKs"); v3B_Cards.push_back("AhKc"); random_shuffle(v3B_Cards.begin(), v3B_Cards.end()); //select one hand, add to scenario: Sleep(16); srand(GetTickCount()); int OneHand3b = (rand() % 10) + 1;//1-10? cGen1 = cGen1 + v3B_Cards[OneHand3b]; v3B_Cards.erase(v3B_Cards.begin(), v3B_Cards.end()); }break; case 5: {//Open + call 3b //scenarios: vectorvoppkLL3bScen; voppkLL3bScen.push_back("You are in CO, open/defend? with: "); voppkLL3bScen.push_back("You are on BU, open/defend? with: "); voppkLL3bScen.push_back("You in SB, open/defend? with: "); random_shuffle(voppkLL3bScen.begin(), voppkLL3bScen.end()); //select scenario: Sleep(26); srand(GetTickCount()); int iSOKL3b = (rand() % 2) + 1;//1-2? cGen1 = voppkLL3bScen[iSOKL3b]; //cards: //99-JJ, eh should perhaps stratify cards for BU/SB/CO different? //have to use small set because of error with exception handling limit vectorvOpkeuLL3b; vOpkeuLL3b.push_back("9h9d");vOpkeuLL3b.push_back("TcTs");vOpkeuLL3b.push_back("9s9c"); vOpkeuLL3b.push_back("JhJs");vOpkeuLL3b.push_back("JdJh");vOpkeuLL3b.push_back("JcJh"); vOpkeuLL3b.push_back("AhQc");vOpkeuLL3b.push_back("QsAd");vOpkeuLL3b.push_back("AsQc"); vOpkeuLL3b.push_back("ThJh");vOpkeuLL3b.push_back("KcQh");vOpkeuLL3b.push_back("QcKs"); random_shuffle(vOpkeuLL3b.begin(), vOpkeuLL3b.end()); //select one hand, add to scenario: Sleep(36); srand(GetTickCount()); int iOKL3b = (rand() % 10) + 1;//1-10? cGen1 = cGen1 + vOpkeuLL3b[iOKL3b]; vOpkeuLL3b.erase(vOpkeuLL3b.begin(), vOpkeuLL3b.end()); }break; case 6: {//Open + fold to 3b //'too many exception handler states', keep it very brief here: //but need some variation vectorvOF3b; vOF3b.push_back("You are in BU, open/defend? with: 3h3s"); vOF3b.push_back("You are in CO, open/defend? with: 4h4c"); vOF3b.push_back("You are in BU, open/defend? with: 2c2h"); vOF3b.push_back("You are in CO, open/defend? with: 6s6d"); random_shuffle(vOF3b.begin(), vOF3b.end()); //select scenario: Sleep(16); srand(GetTickCount()); int iOF3b = (rand() % 2) + 1;//1-2? cGen1 = vOF3b[iOF3b]; }break; case 7: {//Open + 4b //likely a small range that apply to all: //KK-AA, AKs, AKo, A5s //scenarios: vectorvop4b; vop4b.push_back("You are in CO, open/defend? with: "); vop4b.push_back("You are in HJ, open/defend? with: "); vop4b.push_back("You are on BU, open/defend? with: "); //vop4b.push_back("You are UTG, open/defend? with: "); vop4b.push_back("You are in SB, open/defend? with: "); random_shuffle(vop4b.begin(), vop4b.end()); //select scenario: Sleep(20); srand(GetTickCount()); int iSceno4b = (rand() % 3) + 1;//1-3? cGen1 = vop4b[iSceno4b]; //cards: //KK-AA, AKs, AKo, A5s //had to make cuts, 'too many exception handler states' vectorvop4b_mano; vop4b_mano.push_back("AsKs"); vop4b_mano.push_back("AdKd"); vop4b_mano.push_back("AhKh"); vop4b_mano.push_back("Ac5c"); vop4b_mano.push_back("AsAh");vop4b_mano.push_back("AsAd"); vop4b_mano.push_back("AhAc");vop4b_mano.push_back("AdAc");vop4b_mano.push_back("AhAd"); vop4b_mano.push_back("KsKh");vop4b_mano.push_back("KsKd");vop4b_mano.push_back("KsKc"); vop4b_mano.push_back("KhKc");vop4b_mano.push_back("KdKc");vop4b_mano.push_back("KhKd"); vop4b_mano.push_back("AsKd");vop4b_mano.push_back("AsKh");vop4b_mano.push_back("AsKc"); vop4b_mano.push_back("AdKh");vop4b_mano.push_back("AdKc");vop4b_mano.push_back("AdKs"); vop4b_mano.push_back("AhKd");vop4b_mano.push_back("AhKs");vop4b_mano.push_back("AcKs"); vop4b_mano.push_back("AhKc");vop4b_mano.push_back("AcKh");vop4b_mano.push_back("AcKd"); random_shuffle(vop4b_mano.begin(), vop4b_mano.end()); //select one hand, add to scenario: Sleep(11); srand(GetTickCount()); int OneHando4b = (rand() % 10) + 1;//1-10? cGen1 = cGen1 + vop4b_mano[OneHando4b]; vop4b_mano.erase(vop4b_mano.begin(), vop4b_mano.end()); }break; default: { cGen1 = "default sw sel"; }break; }//end sw sel return cGen1; }//end pstgen void CLimitless_1Dlg::OnPST_RESET() { iPST_runs = 0; iPST_Points = 0; m_PST_Score.SetWindowText(""); m_PST_Situation.SetWindowText(""); } void CLimitless_1Dlg::OnTournaments() { // m_Tourn_box.SetWindowText(" "); //switch different push and fold scenarios, //with separate own sets of random cards that fit //short, always: ATC is push; medium, always: only premium is push; //deep: push premium if far from bubble, else only AA. // case 1:// short, ATC is always push // case 2:// medium, push premiums only // case 3://deep, far from bubble, push premium // case 4: //deep, close to bubble, push only AA // case 5://deep, close to bubble, fold all except AA // case 6://medium, fold all except premium // case 7://deep, far from bubble, fold all except premium //start timer: Time1T = GetTickCount(); iNoCheatTurn = 0; //to prevent multiclicking answers below iTurnRuns++; //runs 10 times, the log highscores if(iTurnRuns < 11) { CString cTournScen = ""; Sleep(126); srand(GetTickCount()); int iTour = (rand() % 7) + 1;//1-7? switch(iTour) //maybe not need 10 if they all contain multiples? { case 1:// short, ATC is always push { vectorvShortScen; vShortScen.push_back("Blinds 2000/4000, you have 15700, 50 p from bubble, with: "); vShortScen.push_back("Blinds 3000/3000, you have 11230, 40 p from bubble, with: "); vShortScen.push_back("Blinds 4000/8000, you have 15000, 30 p from bubble, with: "); vShortScen.push_back("Blinds 1000/2000, you have 4200, 20 p from bubble, with: "); vShortScen.push_back("Blinds 5000/10000, you have 52300, 2 p from bubble, with: "); vShortScen.push_back("Blinds 200/400, you have 1650, 500 p from bubble, with: "); vShortScen.push_back("Blinds 200/400, you have 930, 15 p from bubble, with: "); vShortScen.push_back("Blinds 400/800, you have 2580, 12 p from bubble, with: "); vShortScen.push_back("Blinds 20/40, you have 140, 1054 p from bubble, with: "); vShortScen.push_back("Blinds 250/500, you have 5345, 250 p from bubble, with: "); vShortScen.push_back("Blinds 250/500, you have 6812, 189 p from bubble, with: "); vShortScen.push_back("Blinds 5000/10000, you have 127800, 5 p from bubble, with: "); vShortScen.push_back("Blinds 2000/4000, you have 8250, 365 p from bubble, with: "); random_shuffle(vShortScen.begin(), vShortScen.end()); Sleep(26); srand(GetTickCount()); int iTourOne = (rand() % 10) + 1;//1-10? cTournScen = vShortScen[iTourOne]; //add cards: vectorvShortCards; vShortCards.push_back("Ah7d");vShortCards.push_back("Ah3h");vShortCards.push_back("AhTc"); vShortCards.push_back("Kd7d");vShortCards.push_back("QsKs");vShortCards.push_back("Ah5d"); vShortCards.push_back("3s3d");vShortCards.push_back("5s5h");vShortCards.push_back("9d9s"); vShortCards.push_back("QhTs");vShortCards.push_back("2d2c");vShortCards.push_back("2sAh"); vShortCards.push_back("TcKs");vShortCards.push_back("3dTd");vShortCards.push_back("5h6s"); vShortCards.push_back("8c9d");vShortCards.push_back("7h5c");vShortCards.push_back("Qc5s"); vShortCards.push_back("Kd7s");vShortCards.push_back("8hJc");vShortCards.push_back("Js9h"); vShortCards.push_back("3h8d");vShortCards.push_back("Tc5s");vShortCards.push_back("3hQc"); vShortCards.push_back("9h8s");vShortCards.push_back("Ks2c");vShortCards.push_back("3h4h"); vShortCards.push_back("8sJs");vShortCards.push_back("2cTd");vShortCards.push_back("JdJs"); vShortCards.push_back("Jh3c");vShortCards.push_back("2s2h");vShortCards.push_back("5d7h"); vShortCards.push_back("4cQs");vShortCards.push_back("3sJc");vShortCards.push_back("Th7s"); random_shuffle(vShortCards.begin(), vShortCards.end()); Sleep(16); srand(GetTickCount()); int iTourOneb = (rand() % 10) + 1;//1-10? cTournScen = cTournScen + vShortCards[iTourOneb]; //display: m_Tourn_box.SetWindowText(cTournScen); //set indicator: iTcheck = iTour; }break; case 2:// medium, push premiums only { vectorvMedPush; vMedPush.push_back("Blinds 2000/4000, you have 75700, 50 p from bubble, with: "); vMedPush.push_back("Blinds 3000/3000, you have 91230, 40 p from bubble, with: "); vMedPush.push_back("Blinds 4000/8000, you have 445000, 30 p from bubble, with: "); vMedPush.push_back("Blinds 1000/2000, you have 104200, 20 p from bubble, with: "); vMedPush.push_back("Blinds 5000/10000, you have 502300, 2 p from bubble, with: "); vMedPush.push_back("Blinds 200/400, you have 26500, 500 p from bubble, with: "); vMedPush.push_back("Blinds 200/400, you have 33000, 15 p from bubble, with: "); vMedPush.push_back("Blinds 400/800, you have 45800, 12 p from bubble, with: "); vMedPush.push_back("Blinds 20/40, you have 2140, 1054 p from bubble, with: "); vMedPush.push_back("Blinds 250/500, you have 25345, 250 p from bubble, with: "); vMedPush.push_back("Blinds 250/500, you have 36812, 189 p from bubble, with: "); vMedPush.push_back("Blinds 5000/10000, you have 627800, 5 p from bubble, with: "); vMedPush.push_back("Blinds 2000/4000, you have 308250, 365 p from bubble, with: "); random_shuffle(vMedPush.begin(), vMedPush.end()); Sleep(26); srand(GetTickCount()); int iTourTwo = (rand() % 10) + 1;//1-10? cTournScen = vMedPush[iTourTwo]; //add cards: vectorvMePuCards; vMePuCards.push_back("AcKc");vMePuCards.push_back("AhKh");vMePuCards.push_back("AhAd"); vMePuCards.push_back("KdKc");vMePuCards.push_back("QsQc");vMePuCards.push_back("AcAd"); vMePuCards.push_back("AsAd");vMePuCards.push_back("KsKh");vMePuCards.push_back("AdAs"); vMePuCards.push_back("QhQs");vMePuCards.push_back("AdAc");vMePuCards.push_back("KsAs"); vMePuCards.push_back("KcKs");vMePuCards.push_back("AdKd"); random_shuffle(vMePuCards.begin(), vMePuCards.end()); Sleep(16); srand(GetTickCount()); int iTourTwob = (rand() % 10) + 1;//1-10? cTournScen = cTournScen + vMePuCards[iTourTwob]; //display: m_Tourn_box.SetWindowText(cTournScen); //set indicator: iTcheck = iTour; }break; case 3://deep, far from bubble, push premium { vectorvDeepPush; vDeepPush.push_back("Blinds 2000/4000, you have 878000, 5340 p from bubble, with: "); vDeepPush.push_back("Blinds 3000/3000, you have 691230, 4560 p from bubble, with: "); vDeepPush.push_back("Blinds 4000/8000, you have 1545000, 330 p from bubble, with: "); vDeepPush.push_back("Blinds 1000/2000, you have 404200, 270 p from bubble, with: "); vDeepPush.push_back("Blinds 5000/10000, you have 5002300, 289 p from bubble, with: "); vDeepPush.push_back("Blinds 200/400, you have 96500, 590 p from bubble, with: "); vDeepPush.push_back("Blinds 200/400, you have 133000, 185 p from bubble, with: "); vDeepPush.push_back("Blinds 400/800, you have 175800, 162 p from bubble, with: "); vDeepPush.push_back("Blinds 20/40, you have 9140, 1054 p from bubble, with: "); vDeepPush.push_back("Blinds 250/500, you have 125345, 2150 p from bubble, with: "); vDeepPush.push_back("Blinds 250/500, you have 236812, 1189 p from bubble, with: "); vDeepPush.push_back("Blinds 5000/10000, you have 6276800, 585 p from bubble, with: "); vDeepPush.push_back("Blinds 2000/4000, you have 908250, 1365 p from bubble, with: "); random_shuffle(vDeepPush.begin(), vDeepPush.end()); Sleep(26); srand(GetTickCount()); int iTourThree = (rand() % 10) + 1;//1-10? cTournScen = vDeepPush[iTourThree]; //add cards: vectorvDePuCards; vDePuCards.push_back("AcKc");vDePuCards.push_back("AhKh");vDePuCards.push_back("AhAd"); vDePuCards.push_back("KdKc");vDePuCards.push_back("QsQc");vDePuCards.push_back("AcAd"); vDePuCards.push_back("AsAd");vDePuCards.push_back("KsKh");vDePuCards.push_back("AdAs"); vDePuCards.push_back("QhQs");vDePuCards.push_back("AdAc");vDePuCards.push_back("KsAs"); vDePuCards.push_back("KcKs");vDePuCards.push_back("AdKd"); random_shuffle(vDePuCards.begin(), vDePuCards.end()); Sleep(16); srand(GetTickCount()); int iTourThreeb = (rand() % 10) + 1;//1-10? cTournScen = cTournScen + vDePuCards[iTourThreeb]; //display: m_Tourn_box.SetWindowText(cTournScen); //set indicator: iTcheck = iTour; }break; case 4: //deep, close to bubble, push only AA { vectorvDeepPushClose; vDeepPushClose.push_back("Blinds 2000/4000, you have 978500, 5 p from bubble, with: "); vDeepPushClose.push_back("Blinds 3000/3000, you have 791230, 4 p from bubble, with: "); vDeepPushClose.push_back("Blinds 4000/8000, you have 1945000, 3 p from bubble, with: "); vDeepPushClose.push_back("Blinds 1000/2000, you have 424260, 12 p from bubble, with: "); vDeepPushClose.push_back("Blinds 5000/10000, you have 6032300, 21 p from bubble, with: "); vDeepPushClose.push_back("Blinds 200/400, you have 97570, 14 p from bubble, with: "); vDeepPushClose.push_back("Blinds 200/400, you have 234600, 16 p from bubble, with: "); vDeepPushClose.push_back("Blinds 400/800, you have 185890, 15 p from bubble, with: "); vDeepPushClose.push_back("Blinds 20/40, you have 9940, 1 p from bubble, with: "); vDeepPushClose.push_back("Blinds 250/500, you have 134395, 9 p from bubble, with: "); vDeepPushClose.push_back("Blinds 250/500, you have 268882, 7 p from bubble, with: "); vDeepPushClose.push_back("Blinds 5000/10000, you have 8676800, 6 p from bubble, with: "); vDeepPushClose.push_back("Blinds 2000/4000, you have 931250, 8 p from bubble, with: "); random_shuffle(vDeepPushClose.begin(), vDeepPushClose.end()); Sleep(26); srand(GetTickCount()); int iTourFour = (rand() % 10) + 1;//1-10? cTournScen = vDeepPushClose[iTourFour]; //add cards: vectorvDePuCloseCards; vDePuCloseCards.push_back("AhAd");vDePuCloseCards.push_back("AcAd"); vDePuCloseCards.push_back("AsAd");vDePuCloseCards.push_back("AdAs"); vDePuCloseCards.push_back("AsAc");vDePuCloseCards.push_back("AsAh"); random_shuffle(vDePuCloseCards.begin(), vDePuCloseCards.end()); Sleep(16); srand(GetTickCount()); int iTourFourb = (rand() % 4) + 1;//1-4? cTournScen = cTournScen + vDePuCloseCards[iTourFourb]; //display: m_Tourn_box.SetWindowText(cTournScen); //set indicator: iTcheck = iTour; }break; case 5://deep, close to bubble, fold all except AA { vectorvDeepFoldClose; vDeepFoldClose.push_back("Blinds 2000/4000, you have 978500, 15 p from bubble, with: "); vDeepFoldClose.push_back("Blinds 3000/3000, you have 791230, 14 p from bubble, with: "); vDeepFoldClose.push_back("Blinds 4000/8000, you have 1945000, 5 p from bubble, with: "); vDeepFoldClose.push_back("Blinds 1000/2000, you have 424260, 11 p from bubble, with: "); vDeepFoldClose.push_back("Blinds 5000/10000, you have 6032300, 1 p from bubble, with: "); vDeepFoldClose.push_back("Blinds 200/400, you have 97570, 12 p from bubble, with: "); vDeepFoldClose.push_back("Blinds 200/400, you have 234600, 13 p from bubble, with: "); vDeepFoldClose.push_back("Blinds 400/800, you have 185890, 7 p from bubble, with: "); vDeepFoldClose.push_back("Blinds 20/40, you have 9940, 8 p from bubble, with: "); vDeepFoldClose.push_back("Blinds 250/500, you have 134395, 9 p from bubble, with: "); vDeepFoldClose.push_back("Blinds 250/500, you have 268882, 7 p from bubble, with: "); vDeepFoldClose.push_back("Blinds 5000/10000, you have 8676800, 6 p from bubble, with: "); vDeepFoldClose.push_back("Blinds 2000/4000, you have 931250, 8 p from bubble, with: "); random_shuffle(vDeepFoldClose.begin(), vDeepFoldClose.end()); Sleep(26); srand(GetTickCount()); int iTourFive = (rand() % 10) + 1;//1-10? cTournScen = vDeepFoldClose[iTourFive]; //add cards: vectorvDeFoCloseCards; vDeFoCloseCards.push_back("7h7c");vDeFoCloseCards.push_back("QhKh");vDeFoCloseCards.push_back("AhQd"); vDeFoCloseCards.push_back("Kc8c");vDeFoCloseCards.push_back("QsKs");vDeFoCloseCards.push_back("ThTd"); vDeFoCloseCards.push_back("3d3h");vDeFoCloseCards.push_back("5s5h");vDeFoCloseCards.push_back("9h9c"); vDeFoCloseCards.push_back("QhTs");vDeFoCloseCards.push_back("2d2c");vDeFoCloseCards.push_back("2sAh"); vDeFoCloseCards.push_back("TcKs");vDeFoCloseCards.push_back("3dTd");vDeFoCloseCards.push_back("5s6s"); vDeFoCloseCards.push_back("Td9d");vDeFoCloseCards.push_back("ThTc");vDeFoCloseCards.push_back("Qc5s"); vDeFoCloseCards.push_back("Kd7s");vDeFoCloseCards.push_back("8hJc");vDeFoCloseCards.push_back("Js9h"); vDeFoCloseCards.push_back("3h8d");vDeFoCloseCards.push_back("Tc5h");vDeFoCloseCards.push_back("3cQc"); vDeFoCloseCards.push_back("9h8s");vDeFoCloseCards.push_back("Ks2c");vDeFoCloseCards.push_back("3h4h"); vDeFoCloseCards.push_back("8sJs");vDeFoCloseCards.push_back("2dTc");vDeFoCloseCards.push_back("JcJh"); vDeFoCloseCards.push_back("Jh3c");vDeFoCloseCards.push_back("2s2h");vDeFoCloseCards.push_back("5d7d"); vDeFoCloseCards.push_back("4cQs");vDeFoCloseCards.push_back("3sJs");vDeFoCloseCards.push_back("Th7s"); vDeFoCloseCards.push_back("QcQs");vDeFoCloseCards.push_back("JhJs");vDeFoCloseCards.push_back("ThTs"); vDeFoCloseCards.push_back("KsQs");vDeFoCloseCards.push_back("AsJs");vDeFoCloseCards.push_back("ThKs"); vDeFoCloseCards.push_back("AcQs");vDeFoCloseCards.push_back("AsTh");vDeFoCloseCards.push_back("ThAc"); vDeFoCloseCards.push_back("Ah5h");vDeFoCloseCards.push_back("As3s");vDeFoCloseCards.push_back("TcAc"); vDeFoCloseCards.push_back("8c8s");vDeFoCloseCards.push_back("8s8h");vDeFoCloseCards.push_back("ThTc"); vDeFoCloseCards.push_back("TsQs");vDeFoCloseCards.push_back("ThJh");vDeFoCloseCards.push_back("JcQs"); random_shuffle(vDeFoCloseCards.begin(), vDeFoCloseCards.end()); Sleep(16); srand(GetTickCount()); int iTourFiveb = (rand() % 4) + 1;//1-4? cTournScen = cTournScen + vDeFoCloseCards[iTourFiveb]; //display: m_Tourn_box.SetWindowText(cTournScen); //set indicator: iTcheck = iTour; }break; case 6://medium, fold all except premium { vectorvMedFold; vMedFold.push_back("Blinds 2000/4000, you have 75800, 50 p from bubble, with: "); vMedFold.push_back("Blinds 3000/3000, you have 97230, 40 p from bubble, with: "); vMedFold.push_back("Blinds 4000/8000, you have 443400, 30 p from bubble, with: "); vMedFold.push_back("Blinds 1000/2000, you have 105600, 20 p from bubble, with: "); vMedFold.push_back("Blinds 5000/10000, you have 512300, 2 p from bubble, with: "); vMedFold.push_back("Blinds 200/400, you have 29500, 500 p from bubble, with: "); vMedFold.push_back("Blinds 200/400, you have 34500, 15 p from bubble, with: "); vMedFold.push_back("Blinds 400/800, you have 46700, 12 p from bubble, with: "); vMedFold.push_back("Blinds 20/40, you have 2350, 1054 p from bubble, with: "); vMedFold.push_back("Blinds 250/500, you have 37345, 250 p from bubble, with: "); vMedFold.push_back("Blinds 250/500, you have 37852, 189 p from bubble, with: "); vMedFold.push_back("Blinds 5000/10000, you have 636800, 5 p from bubble, with: "); vMedFold.push_back("Blinds 2000/4000, you have 312350, 365 p from bubble, with: "); random_shuffle(vMedFold.begin(), vMedFold.end()); Sleep(26); srand(GetTickCount()); int iTourSix = (rand() % 10) + 1;//1-10? cTournScen = vMedFold[iTourSix]; //add cards: vectorvMeFoCards; vMeFoCards.push_back("3h3d");vMeFoCards.push_back("5s5h");vMeFoCards.push_back("9d9s"); vMeFoCards.push_back("JhTs");vMeFoCards.push_back("2d2c");vMeFoCards.push_back("2sAs"); vMeFoCards.push_back("TcKs");vMeFoCards.push_back("3dTd");vMeFoCards.push_back("5h6s"); vMeFoCards.push_back("8c9d");vMeFoCards.push_back("7h5c");vMeFoCards.push_back("Qc5s"); vMeFoCards.push_back("Jd7s");vMeFoCards.push_back("8hJc");vMeFoCards.push_back("Js9h"); vMeFoCards.push_back("3h8d");vMeFoCards.push_back("Tc5s");vMeFoCards.push_back("3hQc"); vMeFoCards.push_back("8h8s");vMeFoCards.push_back("Ks2c");vMeFoCards.push_back("3h4h"); vMeFoCards.push_back("8sJs");vMeFoCards.push_back("2cTc");vMeFoCards.push_back("JcJh"); vMeFoCards.push_back("Jh3c");vMeFoCards.push_back("2s2d");vMeFoCards.push_back("5d7h"); vMeFoCards.push_back("4cQh");vMeFoCards.push_back("3dJc");vMeFoCards.push_back("Th7s"); vMeFoCards.push_back("AcQh");vMeFoCards.push_back("KdJc");vMeFoCards.push_back("ThTs"); vMeFoCards.push_back("JcJs");vMeFoCards.push_back("TcTs");vMeFoCards.push_back("8h8c"); vMeFoCards.push_back("4cQc");vMeFoCards.push_back("3dJd");vMeFoCards.push_back("Th7h"); vMeFoCards.push_back("AcQh");vMeFoCards.push_back("AdJc");vMeFoCards.push_back("AhTs"); random_shuffle(vMeFoCards.begin(), vMeFoCards.end()); Sleep(16); srand(GetTickCount()); int iTourSixb = (rand() % 10) + 1;//1-10? cTournScen = cTournScen + vMeFoCards[iTourSixb]; //display: m_Tourn_box.SetWindowText(cTournScen); //set indicator: iTcheck = iTour; }break; case 7:// case 7://deep, far from bubble, fold all except premium { vectorvDeepFarFold; vDeepFarFold.push_back("Blinds 2000/4000, you have 978000, 4540 p from bubble, with: "); vDeepFarFold.push_back("Blinds 3000/3000, you have 791230, 8760 p from bubble, with: "); vDeepFarFold.push_back("Blinds 4000/8000, you have 2545000, 830 p from bubble, with: "); vDeepFarFold.push_back("Blinds 1000/2000, you have 504200, 970 p from bubble, with: "); vDeepFarFold.push_back("Blinds 5000/10000, you have 6002300, 789 p from bubble, with: "); vDeepFarFold.push_back("Blinds 200/400, you have 98500, 690 p from bubble, with: "); vDeepFarFold.push_back("Blinds 200/400, you have 183000, 385 p from bubble, with: "); vDeepFarFold.push_back("Blinds 400/800, you have 175800, 462 p from bubble, with: "); vDeepFarFold.push_back("Blinds 20/40, you have 9640, 1154 p from bubble, with: "); vDeepFarFold.push_back("Blinds 250/500, you have 135345, 2450 p from bubble, with: "); vDeepFarFold.push_back("Blinds 250/500, you have 247812, 1389 p from bubble, with: "); vDeepFarFold.push_back("Blinds 5000/10000, you have 7276800, 785 p from bubble, with: "); vDeepFarFold.push_back("Blinds 2000/4000, you have 968250, 1465 p from bubble, with: "); random_shuffle(vDeepFarFold.begin(), vDeepFarFold.end()); Sleep(36); srand(GetTickCount()); int iTourSeven = (rand() % 10) + 1;//1-10? cTournScen = vDeepFarFold[iTourSeven]; //add cards: vectorvDeFaFo; vDeFaFo.push_back("4h4d");vDeFaFo.push_back("5s5h");vDeFaFo.push_back("9d9s"); vDeFaFo.push_back("ThJs");vDeFaFo.push_back("2d2c");vDeFaFo.push_back("8sAs"); vDeFaFo.push_back("TcKs");vDeFaFo.push_back("3dTd");vDeFaFo.push_back("5h6h"); vDeFaFo.push_back("8c8d");vDeFaFo.push_back("7h5c");vDeFaFo.push_back("Qc5s"); vDeFaFo.push_back("JdJs");vDeFaFo.push_back("8hJc");vDeFaFo.push_back("Js9h"); vDeFaFo.push_back("3h8d");vDeFaFo.push_back("Tc5s");vDeFaFo.push_back("3hQc"); vDeFaFo.push_back("8h8s");vDeFaFo.push_back("Ks2c");vDeFaFo.push_back("3h4h"); vDeFaFo.push_back("8s9s");vDeFaFo.push_back("2cTc");vDeFaFo.push_back("JcJh"); vDeFaFo.push_back("Jh3h");vDeFaFo.push_back("2s2d");vDeFaFo.push_back("5d7h"); vDeFaFo.push_back("4cQh");vDeFaFo.push_back("3dJc");vDeFaFo.push_back("Th7s"); vDeFaFo.push_back("AcQh");vDeFaFo.push_back("KdJc");vDeFaFo.push_back("ThTs"); vDeFaFo.push_back("JcJs");vDeFaFo.push_back("TcTs");vDeFaFo.push_back("8h8c"); vDeFaFo.push_back("4cQc");vDeFaFo.push_back("3dJd");vDeFaFo.push_back("Th7h"); vDeFaFo.push_back("AcQh");vDeFaFo.push_back("AdJc");vDeFaFo.push_back("AhTs"); random_shuffle(vDeFaFo.begin(), vDeFaFo.end()); Sleep(16); srand(GetTickCount()); int iTourSevenb = (rand() % 10) + 1;//1-10? cTournScen = cTournScen + vDeFaFo[iTourSevenb]; //display: m_Tourn_box.SetWindowText(cTournScen); //set indicator: iTcheck = iTour; }break; default: m_Tourn_box.SetWindowText("This should never happen."); }//end sw itour }//end < 11 runs else { //log results to highscore list: ifstream inHighT("Highscores.txt"); if(!inHighT) {MessageBox("Highscore list gone?");} else { int inPointsTour = 0; while(inHighT >> inPointsTour) vHighscores.push_back(inPointsTour); inHighT.close(); if(vHighscores[5] < iTscore)//update if points higher than before // 0 = MRP, 1 = RE, 2 = ICM, 3 = Patience, 4 = PST, 5 = Tournaments // 8 = combo highscore { vHighscores[5] = iTscore; CString cScoreT = DaSizer(iTscore); CString CHighT = "Session over. Highscore! " + cScoreT; m_Tourn_box.SetWindowText(CHighT); ofstream outHighT("Highscores.txt"); for(int i = 0; i < 10; i++) { outHighT << vHighscores[i] << " "; } outHighT.close(); vHighscores.erase(vHighscores.begin(), vHighscores.end()); }//end if new highscore else { m_Tourn_box.SetWindowText("Session over"); }//end else, no new highscore }//end else if ! file }//end else < 11 runs }//end on tournaments void CLimitless_1Dlg::OnTournPUSH() { // if match specific push scenarios, score //m_T_score iNoCheatTurn++; if(iNoCheatTurn < 2) { int iCorr = 0; if((iTcheck > 0) && (iTcheck < 5))//1-4 = push {iTscore++; iCorr = 1;} else iTscore--; //measure elapsed time: Time2T = GetTickCount(); iTour_time = Time2T - Time1T; //add time bonus: if(iCorr > 0)//if answered correct iTscore = iTscore + (4000/iTour_time); //log to highscores in OnTournaments function //convert to cstring: CString cTPoints = DaSizer(iTscore); //display points: m_T_score.SetWindowText(cTPoints); }//end no cheatT < 2 }//end push T void CLimitless_1Dlg::OnTournFOLD() { iNoCheatTurn++; if(iNoCheatTurn < 2) { int iCorr = 0; // if match specific fold scenarios, score if((iTcheck == 5) || (iTcheck == 6) || (iTcheck == 7))//5+6+7 = fold {iTscore++; iCorr = 1;} else iTscore--; //measure elapsed time: Time2T = GetTickCount(); iTour_time = Time2T - Time1T; //add time bonus: if(iCorr > 0)//if answered correct iTscore = iTscore + (4000/iTour_time); //log to highscores in OnTournaments function //convert to cstring: CString cTPoints = DaSizer(iTscore); //display points: m_T_score.SetWindowText(cTPoints); }//end no cheat T < 2 } //end fold T void CLimitless_1Dlg::OnResetTourn() { iTurnRuns = 0; iTscore = 0; m_T_score.SetWindowText(""); m_Tourn_box.SetWindowText(""); }