_Coroutine Player { // YOU ADD PRIVATE MEMBERS, INCLUDING STATICS public: enum { DEATH_DECK_DIVISOR = 7 }; static void players( size_t num ); Player( PRNG & prng, size_t id, Printer & printer ); void start( Player & lp, Player & rp ); // supply partners void play( size_t deck ); void drink(); }; class Printer { // YOU ADD PRIVATE MEMBERS public: Printer( const size_t NoOfPlayers, const size_t NoOfCards ); void print( size_t id, int took, size_t RemainingPlayers ); // card play void print( size_t id ); // drink (Schmilblick) };