#include <strstream> #include <list> #include "deck.h" #include "card.h" #include "bjhand.h" #include "dealhand.h" #include "simhand.h" #include "dealer.h" #include "display.h" #include "playhand.h" #include "stddisp.h" using namespace std; ostream& operator<<(ostream& s, const Dealer::STATUS& status) { switch (status) { case Dealer::BLACKJACK: s << "BLACKJACK"; break; case Dealer::WIN: s << "WIN"; break; case Dealer::LOSE: s << "LOSE"; break; case Dealer::PUSH: s << "PUSH"; break; default: throw "Illegal status type"; } return s; } void DisplayPlayerResult(const Dealer& dealer, const StandardBlackJackHand& bjh) { char buf[255]; ostrstream output(buf, 255); output << dealer.GetPlayerStatus(&bjh) << ' '; bjh.GetDisplayer()->DisplayResult(bjh, output.str()); } void main() { Dealer dealer(1, 30); dealer.NewShoe(); StandardDisplayer disp; StandardDealerHand dlr(&disp); SimulatedPlayerHand plr1(" Simuplayer", &disp); PlayerHand plr2(" Player", &disp); dealer.SetDealerHand(&dlr); dealer.AssignPlayerHand(&plr1); dealer.AssignPlayerHand(&plr2); do { dealer.Play(); // Print results dlr.GetDisplayer()->DisplayResult(dlr); DisplayPlayerResult(dealer, plr1); DisplayPlayerResult(dealer, plr2); } while(disp.InquireNewGame()); }
3.17.157.6