void CalcPlayerProjections(vector<mlbPlayer> x, vector<BallPark> y){ // pitcher ERA vs team if era > 3 +1 if era less than 3 -1 ect.. // Team add points up and see what team is most +/- // odds if dog -1 if favorite +1 if o/u > 8 +1 else - 1 // series score // road trip length // night/day vector<PlayerInfo> playerLU = LineUpData("DKroster703"); // LINE UP FILE vector<Catcher> CatcherMLB = CatcherStats(); vector<Pitcher> PitcherMLB = PitcherStats(); vector<Pitcher> isPitching; vector<mlbPlayer> playerHands = BatterHand(); vector<mlbPlayer> mlbRoster = MLBPlayerRoster(); vector<mlbPlayer> TeamFix = MLBPlayerRosterTT(); vector<gameOdds> OddsIN = LoadGameOdds(); vector<mlbPlayer> PlayersIN = x; //BvpInfo vector<mlbPlayer> probablePitcher; vector<Pitcher> CloserPitcher; vector<BallPark> ParkIN = y; ofstream myFile; vector<mlbPlayer> Starters = StartingPlayer(); bool compFlag = false; bool pitcherInFlag = false; myFile.open("C:\\progData\\Projection2",std::ofstream::out ); /*//testing vector cout << "Testing Vector info..." << endl; for(std::vector<mlbPlayer>::iterator LU = playerHands.begin(); LU != playerHands.end(); LU++){ cout << LU->getName() << " " << LU->getBatLRS() << endl; } */ //Sets all Players to not starting. for(std::vector<mlbPlayer>::iterator LU = mlbRoster.begin(); LU != mlbRoster.end(); LU++){ LU->setStarter(0); for(std::vector<mlbPlayer>::iterator hands = playerHands.begin(); hands != playerHands.end(); hands++){ if(LU->getName().compare(hands->getName())==0){ LU->setBatLRS(hands->getBatLRS()); } } } for(std::vector<mlbPlayer>::iterator LU = mlbRoster.begin(); LU != mlbRoster.end(); LU++){ for(std::vector<mlbPlayer>::iterator str = Starters.begin(); str != Starters.end(); str++){ if(LU->getLastName().compare(str->getLastName())==0 && LU->getTeam().compare(str->getTeam())==0){ LU->setStarter(1); } } } //gets probable pitchers from bvp and puts them into its own vector called probable pitchers for(std::vector<mlbPlayer>::iterator ptc = PlayersIN.begin(); ptc != PlayersIN.end(); ptc++){ for(std::vector<mlbPlayer>::iterator ttt = probablePitcher.begin(); ttt != probablePitcher.end(); ttt++){ if(ptc->getStartingPitcher().compare(ttt->getStartingPitcher())==0){ pitcherInFlag = true; } } if(pitcherInFlag == false){ probablePitcher.push_back(*ptc); } pitcherInFlag = false; } //////testing pitcher and attaching to probable pitchers cout << "displaying pitcher stats" <<endl; for(std::vector<Pitcher>::iterator ptc = PitcherMLB.begin(); ptc != PitcherMLB.end(); ptc++){ for(std::vector<mlbPlayer>::iterator ttt = probablePitcher.begin(); ttt != probablePitcher.end(); ttt++){ if(ptc->getName().compare(ttt->getStartingPitcher())==0){ ptc->setPitchingHand(ttt->getPitcherHand()); isPitching.push_back(*ptc); } } if(ptc->getSaves() > 0 || ptc->getGamesPlayed() > ptc->getGamesStarted()){ CloserPitcher.push_back(*ptc); } } myFile << "----------------------------Batters STARTING-------------------------------------------------------------------" << endl; /////DK points from last 3 games ----> looking for hot streaks int zz = 1; ///display odds to make sure they are right for(std::vector<gameOdds>::iterator odds = OddsIN.begin(); odds != OddsIN.end(); odds++){ odds->setAwayTeam(changeTeam(odds->getAwayTeam())); odds->setHomeTeam(changeTeam(odds->getHomeTeam())); cout << odds->getAwayTeam() << " @ " << odds->getHomeTeam() << " O/U: "<< odds->getOverUnder() <<" ML: " <<odds->getMoneyLine() << endl; } //increment based on date takes 4 games //// Difference should always be 3 <--- ex 425 428 || 428 431 for(int x = 573; x<=576;x++){ vector<mlbPlayer> tempMLB = parseData(x); for(std::vector<mlbPlayer>::iterator LU = PlayersIN.begin(); LU != PlayersIN.end(); LU++){ for(std::vector<mlbPlayer>::iterator TLU = tempMLB.begin(); TLU != tempMLB.end(); TLU++){ if(LU->getName().compare(TLU->getName())==0){ if(zz==1){ LU->setGame1Pts(TLU->getDkpts()); } else if(zz == 2){ if(TLU->getBatOrder() > 0){ LU->setBatOrder(TLU->getBatOrder()); } LU->setGame2Pts(TLU->getDkpts()); } else if(zz == 3){ if(TLU->getBatOrder() > 0){ LU->setBatOrder(TLU->getBatOrder()); } LU->setGame3Pts(TLU->getDkpts()); } else if(zz == 4){ if(TLU->getBatOrder() > 0){ LU->setBatOrder(TLU->getBatOrder()); } LU->setGame4Pts(TLU->getDkpts()); } else{ cout << "Error @ zz assign dk points"; } } } } zz++; } cout << "roster->>>geting HS" <<endl; zz = 1; for(int x = 573; x<=576;x++){ vector<mlbPlayer> tempMLB = parseData(x); for(std::vector<mlbPlayer>::iterator LU = mlbRoster.begin(); LU != mlbRoster.end(); LU++){ for(std::vector<mlbPlayer>::iterator TLU = tempMLB.begin(); TLU != tempMLB.end(); TLU++){ if(LU->getName().compare(TLU->getName())==0){ if(zz==1){ LU->setGame1Pts(TLU->getDkpts()); } else if(zz == 2){ LU->setGame2Pts(TLU->getDkpts()); } else if(zz == 3){ LU->setGame3Pts(TLU->getDkpts()); } else if(zz == 4){ LU->setGame4Pts(TLU->getDkpts()); } else if(zz==5){ LU->setFinalPts(TLU->getDkpts()); cout << TLU->getDkpts() <<endl; } else{ cout << "Error @ zz assign dk points"; } } } } zz++; } //////////////////////////////////////Creating Player Roster/////////////////////////////////////////////////////////////////// for(std::vector<mlbPlayer>::iterator LU = mlbRoster.begin(); LU != mlbRoster.end(); LU++){ for(std::vector<mlbPlayer>::iterator BvP = PlayersIN.begin(); BvP != PlayersIN.end(); BvP++){ if(LU->getName().compare(BvP->getName())==0){ LU->setAtBats(BvP->getAtBats()); LU->setAVG(BvP->getAVG()); if(LU->getBatLRS().compare("")==0) LU->setBatLRS(BvP->getBatLRS()); LU->setBatOrder(BvP->getBatOrder()); LU->setBB(BvP->getBB()); LU->setBvP(BvP->getBvP()); LU->setCS(BvP->getCS()); LU->setDate(BvP->getDate()); LU->setDkPosn(BvP->getDkPosn()); LU->setDkpts(BvP->getDkpts()); LU->setDoubles(BvP->getDoubles()); LU->setGame1Pts(BvP->getGame1Pts()); LU->setGame2Pts(BvP->getGame2Pts()); LU->setGame3Pts(BvP->getGame3Pts()); LU->setGame4Pts(BvP->getGame4Pts()); LU->setGID(BvP->getGID()); LU->setHits(BvP->getHits()); LU->setHomeAway(BvP->getHomeAway()); LU->setHomeRuns(BvP->getHomeRuns()); LU->setOBP(BvP->getOBP()); LU->setOppt(BvP->getOppt()); LU->setOpptRuns(BvP->getOpptRuns()); LU->setOPS(BvP->getOPS()); LU->setSLG(BvP->getSLG()); LU->setSO(BvP->getSO()); LU->setTeam(BvP->getTeam()); LU->setTeamRuns(BvP->getTeamRuns()); LU->setTriples(BvP->getTriples()); //LU->setPitcherHand(BvP->getPitcherHand()); //LU->setStartingPitcher(BvP->getStartingPitcher()); } } } /////////////////////////////ReAttach Team Data.../////////////////////////////////////////// cout << "ReAttach Team Data...." << endl; for(std::vector<mlbPlayer>::iterator LU = mlbRoster.begin(); LU != mlbRoster.end(); LU++){ for(std::vector<mlbPlayer>::iterator TF = TeamFix.begin(); TF != TeamFix.end(); TF++){ if(LU->getName().compare(TF->getName())==0){ LU->setTeam(TF->getTeam()); } } } ////////////////Attach Salary from Line up export file taken from DraftKings ///////////////// cout << "Getting and Attaching Player Salary/Positions..." <<endl; for(std::vector<mlbPlayer>::iterator LU = mlbRoster.begin(); LU != mlbRoster.end(); LU++){ for(std::vector<PlayerInfo>::iterator PI = playerLU.begin(); PI != playerLU.end(); PI++){ if(PI->getName().compare(LU->getName())==0){ LU->setDKsal(PI->getSalary()); LU->setDkPosn(PI->getPos()); } } } ////////////////////////////////////////////////////////////////////////////////////////////////////////// /////Assigns a H/A to each Player wont Assign anything if they are not playing or in the odds table cout << "Assigning Home/Away to players...." <<endl; for(std::vector<mlbPlayer>::iterator LU = mlbRoster.begin(); LU != mlbRoster.end(); LU++){ //assign H/A for(std::vector<gameOdds>::iterator odds = OddsIN.begin(); odds != OddsIN.end(); odds++){ if(LU->getTeam().compare(odds->getAwayTeam())==0){ LU->setHomeAway("A"); LU->setOppt(odds->getHomeTeam()); } else if(LU->getTeam().compare(odds->getHomeTeam())==0){ LU->setHomeAway("H"); LU->setOppt(odds->getAwayTeam()); } } } /////////////////Pitcher Projection///////////////////////////////////////////// /* Cycle through all Mlb players and if they are playing said pitcher do some stuff */ cout << "Calculating Pitcher Projections" << endl; for(std::vector<Pitcher>::iterator PL = isPitching.begin(); PL != isPitching.end(); PL++){ for(std::vector<mlbPlayer>::iterator LU = mlbRoster.begin(); LU != mlbRoster.end(); LU++){ if(LU->getOppt().compare(PL->getTeam())==0){ LU->setStartingPitcher(PL->getName()); } //If Batter is starting and playing against pitcher if(LU->getOppt().compare(PL->getTeam())==0 && LU->isStarter() == 1){ //batter k% if(LU->getStrikeOutPerecent() > 20){ PL->setKprojection(PL->getKprojection() + 1); } //Batter OBP if(LU->getSeasonOBP() < .32){ PL->set_OBP_Projection(PL->get_OBP_Projection() + 1); } if(LU->getSeasonOPS() < .730){ PL->set_OPS_Projection(PL->get_OPS_Projection() + 1); } if(LU->getSeasonWOBA() < .320){ PL->set_WOBA_Projection(PL->get_WOBA_Projection() + 1); } PL->setProjection(PL->getProjection() + 1); } } } //////////////////////////////////All Roster Start Projection ///////////////////////////////////////////////////// for(std::vector<mlbPlayer>::iterator LU = mlbRoster.begin(); LU != mlbRoster.end(); LU++){ if(LU->getHomeAway().compare("H")!=0 && LU->getHomeAway().compare("A")!=0){ LU->setProjectionScore(LU->getProjectionScore() - 200); // not playing today.... } //spread and over under //Bring in Odds Vector for(std::vector<gameOdds>::iterator odds = OddsIN.begin(); odds != OddsIN.end(); odds++){ if(odds->getAwayTeam().compare(LU->getTeam())==0 || (odds->getHomeTeam().compare(LU->getTeam())==0)){ // if at home and money line is better than -150 + 2 if(LU->getTeam().compare(odds->getHomeTeam())==0 && odds->getMoneyLine()<-150){ LU->setDebug(LU->getDebug() + "*homeFav+2*"); LU->setProjectionScore(LU->getProjectionScore() + 2); } // if away and favorite else if (LU->getTeam().compare(odds->getAwayTeam())==0 && odds->getMoneyLine()>110){ LU->setDebug(LU->getDebug() + "*AwayFav-1*"); LU->setProjectionScore(LU->getProjectionScore() - 1); } //if home dog by if(LU->getTeam().compare(odds->getHomeTeam())==0 && odds->getMoneyLine() > 135){ LU->setDebug(LU->getDebug() + "*homeDawg+2*"); LU->setProjectionScore(LU->getProjectionScore() + 2); } //over/under if((LU->getTeam().compare(odds->getAwayTeam())==0 || LU->getTeam().compare(LU->getHomeAway())==0) && (odds->getOverUnder() > 8) ){ LU->setDebug(LU->getDebug() + "*O8+2*"); LU->setProjectionScore(LU->getProjectionScore() + 2); } else if((LU->getTeam().compare(odds->getAwayTeam())==0 || LU->getTeam().compare(LU->getHomeAway())==0) && (odds->getOverUnder() < 7) ){ LU->setDebug(LU->getDebug() + "*U7-2*"); LU->setProjectionScore(LU->getProjectionScore() - 2); } else{ LU->setDebug(LU->getDebug() + "O/U+0"); } } }//End Odds //Pitcher vs Batter for(std::vector<Pitcher>::iterator ptc = isPitching.begin(); ptc != isPitching.end(); ptc++){ if(LU->getOppt().compare(ptc->getTeam())==0){ LU->setPitcherHand(ptc->getPitchingHand()); // Pitcher Hand Vs Batting Hand////////////////////////////////////////////////////////////// if(LU->getBatLRS().compare(ptc->getPitchingHand())!=0 && LU->getBatLRS().compare("")!= 0){ LU->setProjectionScore(LU->getProjectionScore()+1); LU->setDebug(LU->getDebug() + "*BHvPH+1*"); } else if(LU->getBatLRS().compare(ptc->getPitchingHand())==0 && LU->getBatLRS().compare("")!=0){ LU->setProjectionScore(LU->getProjectionScore()-1); LU->setDebug(LU->getDebug() + "*BHvPH-1*"); } else if(LU->getBatLRS().compare("")!= 0){ LU->setProjectionScore(LU->getProjectionScore()+1); LU->setDebug(LU->getDebug() + "*BHvPHisSwitch+1*"); } //////////////////////////////////////////////////////////////////////////////////////////// /// groundBall Pitcher vs GroundBall Batter////////////////////////////////////// if(ptc->get_gbPercent() > 50 && LU->get_gbPercent() > 50){ LU->setProjectionScore(LU->getProjectionScore() - 4); LU->setDebug(LU->getDebug() + "GroundBallBatvsGBpitcher"); } if(ptc->get_gbPercent() > 50 && LU->get_fbPercent() > 50){ LU->setProjectionScore(LU->getProjectionScore() + 1); LU->setDebug(LU->getDebug() + "flyBallbattervsGbPitcher"); } ///////////////////////////////////////////////////////////////////////////// ///////Great Control Batter vs Great strike zone Control batter && Bad Strike zone Pitcher///// if(ptc->get_KpBB() > 5 && LU->get_BBpK() > .85){ LU->setProjectionScore(LU->getProjectionScore() + 1); LU->setDebug(LU->getDebug() + "gcPvs.gcB"); } if(ptc->get_KpBB() < 3 && LU->get_BBpK() > .85){ LU->setProjectionScore(LU->getProjectionScore() + 1); LU->setDebug(LU->getDebug() + "bcPvs.gcB"); } //////////////////////////////////////////////////////////////////////////////////////////////// // home run to fly ball % of pitcher if(ptc->getHRlFB() > 10 && LU->getSeasonHRrFlyball() > 14){ LU->setProjectionScore(LU->getProjectionScore() + 2); LU->setDebug(LU->getDebug() + "ptchrFB/HR+2"); } else if(ptc->getHRlFB() > 10 && LU->getSeasonHRrFlyball() > 10){ LU->setProjectionScore(LU->getProjectionScore() + 1); LU->setDebug(LU->getDebug() + "ptchrFB/HR+1"); } ///Batter vs Pitcher ERA if(ptc->getERA() > 4){ LU->setProjectionScore(LU->getProjectionScore() + 1); LU->setDebug(LU->getDebug() + "ERA+1"); } else if(ptc->getERA() < 3){ LU->setProjectionScore(LU->getProjectionScore() - 1); LU->setDebug(LU->getDebug() + "ERA-1"); } // Batter vs PITCHER FIP if(ptc->getFIP() < 3.5){ LU->setProjectionScore(LU->getProjectionScore() - 1); LU->setDebug(LU->getDebug() + "FIP-1"); } else{ LU->setProjectionScore(LU->getProjectionScore() + 1); LU->setDebug(LU->getDebug() + "FIP+1"); } // Batter k% vs Pitcher k% if(LU->getStrikeOutPerecent() > 20 && ptc->getKper9() > 8.5){ LU->setProjectionScore(LU->getProjectionScore() - 2); LU->setDebug(LU->getDebug() + "BATvsPtchK%-2"); } // batter BB% vs Pitcher BB/9 if(LU->getWalkPercent() > 12.5 && LU->get_wSB() > .5 && ptc->getBBper9() > 4){ LU->setProjectionScore(LU->getProjectionScore() + 2); LU->setDebug(LU->getDebug() + "BATvsPtchK%+2"); } // Batter HR vs Pitcher K/O if(ptc->getKper9() < 5 && LU->getSeasonOPS() > .800){ LU->setProjectionScore(LU->getProjectionScore() + 4); LU->setDebug(LU->getDebug() + "OPSvsPitcherK/9+4!!"); } } } //Batter Performance //wRAA if(LU->get_wRAA() > 10 && LU->get_wRAA() < 20){ LU->setProjectionScore(LU->getProjectionScore() + 1); LU->setDebug(LU->getDebug() + "*wRAA+1*"); } else if(LU->get_wRAA() < 0){ LU->setProjectionScore(LU->getProjectionScore() -1); LU->setDebug(LU->getDebug() + "*wRAA-1*"); } else if(LU->get_wRAA() > 20){ LU->setProjectionScore(LU->getProjectionScore() +2); LU->setDebug(LU->getDebug() + "*wRAA+2*"); } if(LU->getAtBats() > 20 && LU->getOPS() > .900 && LU->getSB() > 1){ LU->setProjectionScore(LU->getProjectionScore() + 3); LU->setDebug(LU->getDebug() + "*BvP+3*"); } else if(LU->getAtBats() > 10 && LU->getOPS() > .800 && LU->getSB() > 0){ LU->setProjectionScore(LU->getProjectionScore() + 2); LU->setDebug(LU->getDebug() + "*BvP+2*"); } else if(LU->getAtBats() > 10 && LU->getOPS() > 1 && LU->getAVG() > .330){ LU->setProjectionScore(LU->getProjectionScore() + 2); LU->setDebug(LU->getDebug() + "*BvP+2*"); } else if(LU->getAtBats() > 10 && LU->getAVG() < .250){ LU->setProjectionScore(LU->getProjectionScore() -1); LU->setDebug(LU->getDebug() + "*BvP-1*"); } else if(LU->getAtBats() > 20 && LU->getAVG() < .200){ LU->setProjectionScore(LU->getProjectionScore() -2); LU->setDebug(LU->getDebug() + "*BvP-2*"); } else if(LU->getAtBats() == 0){ LU->setProjectionScore(LU->getProjectionScore() -1); LU->setDebug(LU->getDebug() + "*BvP-1*"); } //Stealing bases.... if((LU->getSeasonGames() > 0) && (LU->getSeasonSB() > 0)){ bool stealpts = false; if((LU->getSeasonGames()/LU->getSeasonSB())<3){ LU->setProjectionScore(LU->getProjectionScore() + 2); LU->setDebug(LU->getDebug() + "*steals+2*"); stealpts = true; } else if((LU->getSeasonGames()/LU->getSeasonSB())<4){ LU->setProjectionScore(LU->getProjectionScore() +1); LU->setDebug(LU->getDebug() + "*steals+1*"); stealpts = true; } //using wSB if(LU->get_wSB() > .9){ LU->setProjectionScore(LU->getProjectionScore() +1); LU->setDebug(LU->getDebug() + "*wSB+1*"); } else if(LU->get_wSB() < -.5){ LU->setProjectionScore(LU->getProjectionScore() - 1); LU->setDebug(LU->getDebug() + "*wSB-1*"); } /// Bonus against certain Catchers... if Player steals and catcher has caught 15+ games do... if sb/cs is > 2 catcher is bad else catcher is good for(std::vector<Catcher>::iterator ctch = CatcherMLB.begin(); ctch != CatcherMLB.end(); ctch++){ if(LU->getOppt().compare(ctch->getTeam())==0 && ctch->getGamesPlayed() > 15 && stealpts == true){ if((ctch->getStolenbases() / ctch->getCaughtStealing() > 2)){ LU->setProjectionScore(LU->getProjectionScore() +1); LU->setDebug(LU->getDebug() + "*badCatcher+1*"); } else{ LU->setProjectionScore(LU->getProjectionScore() - 1); LU->setDebug(LU->getDebug() + "*GoodCatcher-1*"); } } } } // strikeouts and walks % if(LU->getStrikeOutPerecent() < 14){ LU->setProjectionScore(LU->getProjectionScore() + 1); LU->setDebug(LU->getDebug() + "*SOu13%+1*"); } else if(LU->getStrikeOutPerecent() > 20){ LU->setProjectionScore(LU->getProjectionScore() - 1); LU->setDebug(LU->getDebug() + "*SOo25%-1*"); } else{ LU->setProjectionScore(LU->getProjectionScore() + 0); LU->setDebug(LU->getDebug() + "*SO%onPar+0*"); } // Walks if(LU->getWalkPercent() > 12){ LU->setProjectionScore(LU->getProjectionScore() + 1); LU->setDebug(LU->getDebug() + "*Walko12%+1*"); } else if(LU->getWalkPercent() < 7){ LU->setProjectionScore(LU->getProjectionScore() - 1); LU->setDebug(LU->getDebug() + "*Walku7%-1*"); } else{ LU->setProjectionScore(LU->getProjectionScore() + 0); LU->setDebug(LU->getDebug() + "*walk%Par+0*"); } //BvP OPS if(LU->getOPS() > 1){ LU->setProjectionScore(LU->getProjectionScore() +1); LU->setDebug(LU->getDebug() + "*OPS+1*"); } //WOBA if(LU->getSeasonWOBA() > .410){ LU->setProjectionScore(LU->getProjectionScore() +3); LU->setDebug(LU->getDebug() + "*Woba+3*"); } else if(LU->getSeasonWOBA() > .375){ LU->setProjectionScore(LU->getProjectionScore() +2); LU->setDebug(LU->getDebug() + "*Woba+2*"); } else if(LU->getSeasonWOBA() > .330){ LU->setProjectionScore(LU->getProjectionScore() + 1); LU->setDebug(LU->getDebug() + "*Woba+1*"); } else{ LU->setProjectionScore(LU->getProjectionScore() - 1); LU->setDebug(LU->getDebug() + "*Woba-1*"); } //HomeRuns if(LU->getSeasonGames() > 0 && LU->getSeasonHR() > 0){ if(LU->getSeasonGames() / LU->getSeasonHR() < 5){ LU->setProjectionScore(LU->getProjectionScore() + 1); LU->setDebug(LU->getDebug() + "HomeRuns+1*"); } } if(LU->getSeasonHRrFlyball() > 14){ LU->setProjectionScore(LU->getProjectionScore() + 1); LU->setDebug(LU->getDebug() + "hr/fb+1*"); } else if(LU->getSeasonHRrFlyball() < 9){ LU->setProjectionScore(LU->getProjectionScore() - 1); LU->setDebug(LU->getDebug() + "hr/fb-1*"); } else{ LU->setDebug(LU->getDebug() + "hr/fb+0*"); } //HotStreak Performance if(LU->getGame1Pts() > 10 && LU->getGame2Pts() > 10 && LU->getGame3Pts() > 10 && LU->getGame4Pts() > 10){ LU->setProjectionScore(LU->getProjectionScore() + 3); LU->setDebug(LU->getDebug() + "*HS+3*"); } else if(LU->getGame1Pts() <= 4 && LU->getGame2Pts() <= 4 && LU->getGame3Pts() <= 4 && LU->getGame4Pts() <= 4){ LU->setProjectionScore(LU->getProjectionScore() - 5); LU->setDebug(LU->getDebug() + "*HS-5*"); } else if(LU->getGame3Pts() > 5 && LU->getGame4Pts() > 5){ LU->setProjectionScore(LU->getProjectionScore() + 1); LU->setDebug(LU->getDebug() + "*HS+1*"); } else if(LU->getGame2Pts() > 7 && LU->getGame3Pts() > 7 && LU->getGame4Pts() > 7){ LU->setProjectionScore(LU->getProjectionScore() + 2); LU->setDebug(LU->getDebug() + "*HS+2*"); } else if(LU->getGame1Pts() < -100 && LU->getGame2Pts() < -100 && LU->getGame3Pts() < -100 && LU->getGame4Pts() < -100){ LU->setProjectionScore(LU->getProjectionScore() -2000); LU->setDebug(LU->getDebug() + "*HS+-2000NotPlaying*"); } //pt for posible extra bat if home is up if(LU->getHomeAway().compare("A")==0){ LU->setProjectionScore(LU->getProjectionScore()+1); LU->setDebug(LU->getDebug() + "*ExtraBatAway+1*"); } //hasnt been playing... if(LU->getBatOrder()==0){ //LU->setProjectionScore(LU->getProjectionScore()-100); LU->setDebug(LU->getDebug() + "*BO=0"); } //Park info for(std::vector<BallPark>::iterator BP = ParkIN.begin(); BP != ParkIN.end(); BP++){ if(LU->getHomeAway().compare("H")==0 && LU->getTeam().compare(BP->getTeam())==0){ if(LU->getBatLRS().compare("R")==0){ if( BP->getBase3R() > 105 || BP->getHRR() >105){ LU->setProjectionScore(LU->getProjectionScore()+1); LU->setDebug(LU->getDebug() + "*hittersPark+1*"); } else if(BP->getBase3R() < 97 || BP->getHRR() >97){ LU->setProjectionScore(LU->getProjectionScore()-1); LU->setDebug(LU->getDebug() + "*BadPark-1*"); } } else if(LU->getBatLRS().compare("L")==0){ if( BP->getBase3L() > 105 || BP->getHRL() >105){ LU->setProjectionScore(LU->getProjectionScore()+1); LU->setDebug(LU->getDebug() + "*hittersPark+1*"); } else if(BP->getBase3L() < 97 || BP->getHRL() >97){ LU->setDebug(LU->getDebug() + "*badPark-1*"); LU->setProjectionScore(LU->getProjectionScore()-1); } } } else if(LU->getHomeAway().compare("A")==0 && LU->getOppt().compare(BP->getTeam())==0){ if(LU->getBatLRS().compare("R")==0){ if( BP->getBase3R() > 105 || BP->getHRR() >105){ LU->setProjectionScore(LU->getProjectionScore()+1); LU->setDebug(LU->getDebug() + "*hittersPark+1*"); } else if(BP->getBase3R() < 97 || BP->getHRR() >97){ LU->setProjectionScore(LU->getProjectionScore()-1); LU->setDebug(LU->getDebug() + "*BadPark-1*"); } } else if(LU->getBatLRS().compare("L")==0){ if( BP->getBase3L() > 105 || BP->getHRL() >105){ LU->setProjectionScore(LU->getProjectionScore()+1); LU->setDebug(LU->getDebug() + "*hittersPark+1*"); } else if(BP->getBase3L() < 97 || BP->getHRL() >97){ LU->setDebug(LU->getDebug() + "*BadPark-1*"); LU->setProjectionScore(LU->getProjectionScore()-1); } } else{ LU->setDebug(LU->getDebug() + "*switchHitter+1*"); LU->setProjectionScore(LU->getProjectionScore()+1); } } } } // Sorts Player Vector by Highest Projection score To Lowest //std::sort(mlbRoster.begin(), mlbRoster.end(),mlbPlayer::SortPosition()); std::sort(mlbRoster.begin(),mlbRoster.end(),mlbPlayer::compareMyDataFunctor()); /// Batting OUTPUT for(std::vector<mlbPlayer>::iterator LU = mlbRoster.begin(); LU != mlbRoster.end(); LU++){ //if(LU->getTeam().compare("MIL")==0 ||LU->getTeam().compare("TOR")==0||LU->getTeam().compare("CWS")==0 ) if(LU->getDkPosn().compare("SP")!=0 && LU->getDkPosn().compare("RP")!=0){ cout <<LU->isStarter() <<" " << LU->getLastName() << " " << LU->getTeam() << " " << LU->getOppt() << " " << LU->getBatLRS() << " Pitcher: " << LU->getStartingPitcher() << " " << LU->getPitcherHand() << " "<<LU->get_fbPercent() << " " <<LU->get_gbPercent() << endl; //<< LU->getTeam() << " " <<LU->getProjectionScore() << " " << LU->getDebug() << " " << LU->getDKsal() << " " <<LU->getDkPosn() << " HR:" << LU->getSeasonHR() << " OPS: " << LU->getOPS()<<endl; if(LU->getDKsal() != 0){ // IF salary is 0 they are not elgible to be picked in the lineup myFile << LU->getDKsal() << " " << LU->getDkPosn() << " "<< LU->getProjectionScore() << " "<< LU->getName() << " " << LU->getTeam() << LU->getDebug() << " fb%:"<<LU->get_fbPercent() << " gb%:" <<LU->get_gbPercent()<< " BB/K:" << LU->get_BBpK() << " hand:" <<LU->getBatLRS() << endl; myFile <<" Pitcher:" << LU->getStartingPitcher()<< " hand:" << LU->getPitcherHand()<<endl; myFile << "------------------------------------------------------------------------------------" << endl; } } } // is pitching today myFile << "----------------------------Probable Starting Pitchers-------------------------------------------------------------------" << endl; cout << "**************we be pitching(((((((((((("<< endl; for(std::vector<Pitcher>::iterator ptc = isPitching.begin(); ptc != isPitching.end(); ptc++){ cout << ptc->getName() << " " << ptc->getERA() << " " << ptc->getTeam() << " " << ptc->getKper9() << endl; myFile << ptc->getName() << " " <<ptc->getTeam() << " K/9|| " << ptc->getKper9() << " ERA " << ptc->getERA() << " FIP " << ptc->getFIP() << " BABIP " << ptc->getBABIP() << " Kprojection:" << ptc->getKprojection() << " WOBA: " << ptc->get_WOBA_Projection() << " OPS: "<<ptc->get_OPS_Projection() << " OBP: " << ptc->get_OBP_Projection() << " Projection: " << ptc->getProjection()<< " gb%:" << ptc->get_gbPercent() << " fb%:" << ptc->get_fbPercent() << " K/BB: "<< ptc->get_KpBB() << endl; } myFile << "----------------------------Relieve Pitchers STARTING-------------------------------------------------------------------" << endl; cout << "closers........." << endl; for(std::vector<Pitcher>::iterator ptc = CloserPitcher.begin(); ptc != CloserPitcher.end(); ptc++){ myFile << ptc->getName() << " " << ptc->getTeam() << " Saves: " << ptc->getSaves() << " GamesPlayed: " << ptc->getGamesPlayed() << " GameStarted: " << ptc->getGamesStarted() << " ERA " << ptc->getERA() << " k/9: " << ptc->getKper9() << " Projection: " << ptc->getProjection()<<endl; } myFile.close(); }
Joueur::~Joueur() { changeTeam(nullptr); }