#include <iostream>
#include <vector>
#include <string>
#include <sstream>
#include <map>
using namespace std;
class Card {
public :
Card( int value, string suit) {
this - > value = value;
this - > suit = suit; //5-1
}
int getS( ) /*getScore*/ {
map< string, int > suitCode = { { "spade" ,4 } ,{ "heart" ,3 } , { "diamond" ,2 } , { "club" ,1 } } ;
int score;
score = value* 10 + suitCode[ suit] ; // 5-2
return score;
}
private :
int value;
string suit;
} ;
class Player{
public :
Player( ) { }
int getRank( ) {
int rank, i;
rank = 0 ;
for ( i= 0 ; i< cards.size ( ) ; i++ ) {
rank + = cards; //5-3
}
return rank;
}
void addCard( Card * card) {
cards.push_back ( card) ;
}
private :
vector< Card* > cards;
} ;
class PokerGame{
public :
PokerGame( ) { }
void deal( vector< Card* > inCards) {
int ( ) ;
int i;
for ( i= 0 ; i< inCards.size ( ) ; i+ = 2 ) {
human inCards[ i] ; //5-4
computer inCards[ ++ i] ; //5-5
}
}
string play( ) {
stringstream ss1, ss2;
string s1, s2, result;
ss1<< human - > getRank( ) ; ss1>> s1;
ss2<< computer- > getRank( ) ; ss2>> s2;
result = "Player=" + s1 + ",Computer=" + s2;
if ( s1> s2) //5-6
result + = ", Player Win. \n " ;
else if ( s1< s2)
result + = ", Computer Win. \n " ;
else result + = ", Push.\n " ;
return result;
}
private :
Player * human,* computer;
void init( ) {
human = new Player( ) ;
computer = new Player( ) ;
}
} ;
void testPokerGame( ) {
PokerGame game;
vector< Card* > inCards1 = { new Card( 5 ,"spade" ) ,new Card( 6 ,"spade" ) } ;
vector< Card* > inCards2 = { new Card( 5 ,"spade" ) ,new Card( 6 ,"spade" ) ,new Card( 5 ,"heart" ) ,new Card( 6 ,"heart" ) } ;
vector< Card* > inCards3 = { new Card( 9 ,"spade" ) ,new Card( 9 ,"club" ) ,new Card( 8 ,"diamond" ) ,new Card( 8 ,"heart" ) } ;
game.deal ( inCards1) ;
cout << game.play ( ) ;
game.deal ( inCards2) ;
cout << game.play ( ) ;
game.deal ( inCards3) ;
cout << game.play ( ) ;
}
int main( ) {
testPokerGame( ) ;
return 0 ;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8c3N0cmVhbT4KI2luY2x1ZGUgPG1hcD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAogCiAKY2xhc3MgQ2FyZCB7CglwdWJsaWM6CgkJQ2FyZChpbnQgdmFsdWUsIHN0cmluZyBzdWl0KXsKCQkJdGhpcyAtPiB2YWx1ZSA9IHZhbHVlOwoJCQl0aGlzIC0+IHN1aXQgPSBzdWl0OyAvLzUtMQoJCX0KCQlpbnQgZ2V0UygpIC8qZ2V0U2NvcmUqL3sKCQkJbWFwPHN0cmluZywgaW50PnN1aXRDb2RlID0ge3sic3BhZGUiLDR9LHsiaGVhcnQiLDN9LCB7ImRpYW1vbmQiLDJ9LCB7ImNsdWIiLDF9fTsKCQkJaW50IHNjb3JlOwoJCQlzY29yZSA9IHZhbHVlKjEwICtzdWl0Q29kZVtzdWl0XTsgLy8gNS0yCgkJCXJldHVybiBzY29yZTsKCQl9Cglwcml2YXRlOgoJCWludCB2YWx1ZTsKCQlzdHJpbmcgc3VpdDsKfTsKY2xhc3MgUGxheWVyewoJcHVibGljOgoJCVBsYXllcigpewkJfQoJCWludCBnZXRSYW5rKCl7CgkJCWludCByYW5rLCBpOwoJCQlyYW5rID0gMDsKCQkJZm9yKGk9MDsgaTxjYXJkcy5zaXplKCk7IGkrKyl7CgkJCQlyYW5rICs9IGNhcmRzOyAvLzUtMwoJCQl9CgkJCXJldHVybiByYW5rOwoJCX0KCQl2b2lkIGFkZENhcmQoQ2FyZCAqY2FyZCl7CgkJCWNhcmRzLnB1c2hfYmFjayhjYXJkKTsKCQl9Cglwcml2YXRlOgoJCXZlY3RvcjxDYXJkKj5jYXJkczsKfTsKIApjbGFzcyBQb2tlckdhbWV7CglwdWJsaWM6CgkJUG9rZXJHYW1lKCl7CQl9CgkJdm9pZCBkZWFsKHZlY3RvcjxDYXJkKj4gaW5DYXJkcyl7CgkJCWludCAoKTsKCQkJaW50IGk7CgkJCWZvciAoaT0wOyBpPGluQ2FyZHMuc2l6ZSgpOyBpKz0yKXsKCQkJCWh1bWFuIGluQ2FyZHNbaV07IC8vNS00CgkJCQljb21wdXRlciBpbkNhcmRzWysraV07IC8vNS01CgkJCX0KCQl9CgkJc3RyaW5nIHBsYXkoKXsKCQkJc3RyaW5nc3RyZWFtIHNzMSwgc3MyOwoJCQlzdHJpbmcgczEsIHMyLCByZXN1bHQ7CgkJCXNzMTw8IGh1bWFuIC0+IGdldFJhbmsoKTsgc3MxPj5zMTsKCQkJc3MyPDwgY29tcHV0ZXItPmdldFJhbmsoKTsgc3MyPj5zMjsKCQkJcmVzdWx0ID0gIlBsYXllcj0iICsgczEgKyIsQ29tcHV0ZXI9IisgczI7CgkJCWlmIChzMT5zMikgIC8vNS02CgkJCQlyZXN1bHQgKz0iLCBQbGF5ZXIgV2luLiBcbiI7CgkJCWVsc2UgaWYgKHMxPHMyKQoJCQkJcmVzdWx0ICs9IiwgQ29tcHV0ZXIgV2luLiBcbiI7CgkJCWVsc2UgcmVzdWx0ICs9ICIsIFB1c2guXG4iOwoJCQlyZXR1cm4gcmVzdWx0OwoJCX0KCXByaXZhdGU6CgkJUGxheWVyICpodW1hbiwqY29tcHV0ZXI7CgkJdm9pZCBpbml0KCl7CgkJCWh1bWFuID0gbmV3IFBsYXllcigpOwoJCQljb21wdXRlciA9IG5ldyBQbGF5ZXIoKTsKCQl9Cn07CiAKdm9pZCB0ZXN0UG9rZXJHYW1lKCl7CglQb2tlckdhbWUgZ2FtZTsKCXZlY3RvcjxDYXJkKj5pbkNhcmRzMSA9IHtuZXcgQ2FyZCg1LCJzcGFkZSIpLG5ldyBDYXJkKDYsInNwYWRlIil9OwoJdmVjdG9yPENhcmQqPmluQ2FyZHMyID0ge25ldyBDYXJkKDUsInNwYWRlIiksbmV3IENhcmQoNiwic3BhZGUiKSxuZXcgQ2FyZCg1LCJoZWFydCIpLG5ldyBDYXJkKDYsImhlYXJ0Iil9OwoJdmVjdG9yPENhcmQqPmluQ2FyZHMzID0ge25ldyBDYXJkKDksInNwYWRlIiksbmV3IENhcmQoOSwiY2x1YiIpLG5ldyBDYXJkKDgsImRpYW1vbmQiKSxuZXcgQ2FyZCg4LCJoZWFydCIpfTsKCWdhbWUuZGVhbChpbkNhcmRzMSk7Cgljb3V0PDxnYW1lLnBsYXkoKTsKCWdhbWUuZGVhbChpbkNhcmRzMik7Cgljb3V0PDxnYW1lLnBsYXkoKTsKCWdhbWUuZGVhbChpbkNhcmRzMyk7Cgljb3V0PDxnYW1lLnBsYXkoKTsKfQogCmludCBtYWluKCl7Cgl0ZXN0UG9rZXJHYW1lKCk7CglyZXR1cm4gMDsKfQ==