int main( int argc, char** argv) { // Initialise the C-library random mechanism by seeding it with the current time // See http://www.cplusplus.com/reference/clibrary/cstdlib/srand/ std::srand( std::time( NULL)); // For more info on exception handling: http://www.cplusplus.com/doc/tutorial/exceptions/ // and http://www.parashift.com/c++-faq/exceptions.html try { GameContext game1("1"); boost::thread table1([&game1] {game1.play();}); GameContext game2("2"); boost::thread table2([&game2] {game2.play();}); GameContext game3("3"); boost::thread table3([&game3] {game3.play();}); table1.join(); table2.join(); table3.join(); } catch (std::exception& e) { std::cout << "Exception caught: " << e.what() << std::endl; } catch (...) { std::cout << "Unknown exception caught: " << std::endl; } return 0; }
main() { char word[10]; static int seen[10]; int i,r,play; FILE * f; scanf("%d",&play); printf("\n"); if(play==0) { f=fopen("ma","r"); srand(time(0)); r = rand()%4257; fseek(f,5*r,SEEK_SET); fscanf(f,"%s",word); game(word); fclose(f); } else { game2(); } return 0; }
bool PokerTest::fourOfKindTest() { bool status = true; std::cout << "four of kind test" << std::endl; Hand hand1(Card(Rank::TEN, Suit::CLUB), Card(Rank::TEN, Suit::DIAMOND), Card(Rank::TEN, Suit::HEART), Card(Rank::TEN, Suit::SPADE), Card(Rank::QUEEN, Suit::DIAMOND)); Hand hand2(Card(Rank::SIX, Suit::DIAMOND), Card(Rank::SIX, Suit::HEART), Card(Rank::SIX, Suit::SPADE), Card(Rank::SIX, Suit::CLUB), Card(Rank::SEVEN, Suit::SPADE)); PokerGame game1(hand1, hand2); std::cout << game1; if (game1.hasWinner()) { if (game1.getWinner() != hand1) { std::cerr << "incorrect hand won" << std::endl; status = false; } } else { std::cerr << "hand failed to determine winner" << std::endl; status = false; } Hand hand3(Card(Rank::TEN, Suit::CLUB), Card(Rank::TEN, Suit::DIAMOND), Card(Rank::TEN, Suit::HEART), Card(Rank::TEN, Suit::SPADE), Card(Rank::FIVE, Suit::CLUB)); Hand hand4(Card(Rank::TEN, Suit::CLUB), Card(Rank::TEN, Suit::DIAMOND), Card(Rank::TEN, Suit::HEART), Card(Rank::TEN, Suit::SPADE), Card(Rank::TWO, Suit::DIAMOND)); PokerGame game2(hand3, hand4); std::cout << game2; if (game2.hasWinner()) { if (game2.getWinner() != hand3) { std::cerr << "incorrect hand won" << std::endl; status = false; } } else { std::cerr << "hand failed to determine winner" << std::endl; status = false; } return status; }
bool PokerTest::fullHouseTest() { bool status = true; std::cout << "full house test" << std::endl; Hand hand1(Card(Rank::TEN, Suit::SPADE), Card(Rank::TEN, Suit::HEART), Card(Rank::TEN, Suit::DIAMOND), Card(Rank::FOUR, Suit::SPADE), Card(Rank::FOUR, Suit::DIAMOND)); Hand hand2(Card(Rank::NINE, Suit::HEART), Card(Rank::NINE, Suit::CLUB), Card(Rank::NINE, Suit::SPADE), Card(Rank::ACE, Suit::HEART), Card(Rank::ACE, Suit::CLUB)); PokerGame game1(hand1, hand2); std::cout << game1; if (game1.hasWinner()) { if (game1.getWinner() != hand1) { std::cerr << "incorrect hand won" << std::endl; status = false; } } else { std::cerr << "hand failed to determine winner" << std::endl; status = false; } Hand hand3(Card(Rank::ACE, Suit::SPADE), Card(Rank::ACE, Suit::CLUB), Card(Rank::ACE, Suit::HEART), Card(Rank::FOUR, Suit::DIAMOND), Card(Rank::FOUR, Suit::CLUB)); Hand hand4(Card(Rank::ACE, Suit::SPADE), Card(Rank::ACE, Suit::HEART), Card(Rank::ACE, Suit::DIAMOND), Card(Rank::THREE, Suit::SPADE), Card(Rank::THREE, Suit::DIAMOND)); PokerGame game2(hand3, hand4); std::cout << game2; if (game2.hasWinner()) { if (game2.getWinner() != hand3) { std::cerr << "incorrect hand won" << std::endl; status = false; } } else { std::cerr << "hand failed to determine winner" << std::endl; status = false; } return status; }
bool PokerTest::straightFlushTest() { bool status = true; std::cout << "straight flush test" << std::endl; Hand hand1(Card(Rank::EIGHT, Suit::HEART), Card(Rank::SEVEN, Suit::HEART), Card(Rank::SIX, Suit::HEART), Card(Rank::FIVE, Suit::HEART), Card(Rank::FOUR, Suit::HEART)); Hand hand2(Card(Rank::SIX, Suit::SPADE), Card(Rank::FIVE, Suit::SPADE), Card(Rank::FOUR, Suit::SPADE), Card(Rank::THREE, Suit::SPADE), Card(Rank::TWO, Suit::SPADE)); PokerGame game1(hand1, hand2); std::cout << game1; if (game1.hasWinner()) { if (game1.getWinner() != hand1) { std::cerr << "incorrect hand won" << std::endl; status = false; } } else { std::cerr << "hand failed to determine winner" << std::endl; status = false; } Hand hand3(Card(Rank::JACK, Suit::CLUB), Card(Rank::TEN, Suit::CLUB), Card(Rank::NINE, Suit::CLUB), Card(Rank::EIGHT, Suit::CLUB), Card(Rank::SEVEN, Suit::CLUB)); Hand hand4(Card(Rank::JACK, Suit::DIAMOND), Card(Rank::TEN, Suit::DIAMOND), Card(Rank::NINE, Suit::DIAMOND), Card(Rank::EIGHT, Suit::DIAMOND), Card(Rank::SEVEN, Suit::DIAMOND)); PokerGame game2(hand3, hand4); std::cout << game2; if (game2.hasWinner()) { std::cerr << "hand failed to determine tie" << std::endl; status = false; } return status; }
bool PokerTest::twoPairTest() { bool status = true; std::cout << "two pair test" << std::endl; Hand hand1(Card(Rank::KING, Suit::HEART), Card(Rank::KING, Suit::DIAMOND), Card(Rank::TWO, Suit::CLUB), Card(Rank::TWO, Suit::DIAMOND), Card(Rank::JACK, Suit::HEART)); Hand hand2(Card(Rank::JACK, Suit::DIAMOND), Card(Rank::JACK, Suit::SPADE), Card(Rank::TEN, Suit::SPADE), Card(Rank::TEN, Suit::CLUB), Card(Rank::NINE, Suit::SPADE)); PokerGame game1(hand1, hand2); std::cout << game1; if (game1.hasWinner()) { if (game1.getWinner() != hand1) { std::cerr << "incorrect hand won" << std::endl; status = false; } } else { std::cerr << "hand failed to determine winner" << std::endl; status = false; } Hand hand3(Card(Rank::NINE, Suit::CLUB), Card(Rank::NINE, Suit::DIAMOND), Card(Rank::SEVEN, Suit::DIAMOND), Card(Rank::SEVEN, Suit::SPADE), Card(Rank::SIX, Suit::HEART)); Hand hand4(Card(Rank::NINE, Suit::HEART), Card(Rank::NINE, Suit::SPADE), Card(Rank::FIVE, Suit::HEART), Card(Rank::FIVE, Suit::DIAMOND), Card(Rank::KING, Suit::CLUB)); PokerGame game2(hand3, hand4); std::cout << game2; if (game2.hasWinner()) { if (game2.getWinner() != hand3) { std::cerr << "incorrect hand won" << std::endl; status = false; } } else { std::cerr << "hand failed to determine winner" << std::endl; status = false; } Hand hand5(Card(Rank::FOUR, Suit::SPADE), Card(Rank::FOUR, Suit::CLUB), Card(Rank::THREE, Suit::SPADE), Card(Rank::THREE, Suit::HEART), Card(Rank::KING, Suit::DIAMOND)); Hand hand6(Card(Rank::FOUR, Suit::HEART), Card(Rank::FOUR, Suit::DIAMOND), Card(Rank::THREE, Suit::DIAMOND), Card(Rank::THREE, Suit::CLUB), Card(Rank::TEN, Suit::SPADE)); PokerGame game3(hand5, hand6); std::cout << game3; if (game3.hasWinner()) { if (game3.getWinner() != hand5) { std::cerr << "incorrect hand won" << std::endl; status = false; } } else { std::cerr << "hand failed to determine winner" << std::endl; status = false; } return status; }