#include <iostream>
#include <cstdio>
#include "Card.h"
using std::cout;
using std::endl;
/* make_card
*
* Allocate space for AND initialize the values for a single card
*/
Card::Card(int sui, int val)
{
suit = sui;
value = val;
}
int Card::get_suit() const
{
return suit;
}
int Card::get_value() const
{
return value;
}
/* compare
*
* Compare two cards. The way we compare cards is to first look at the
* value. If the values are different, then the card with the higher value
* is higher. If the values are the same, then we check the suit. The vard
* with a suit with a higher value (0-3) is higher.
*
* The compare result is -1, 0, or 1. If c1 < c2, then return -1. If
* c1 == c2, then return 0. If c1 > c2, then return 1.
*/
int Card::compare(const Card& c) const
{
if (value == c.get_value())
{
if (suit > c.get_suit())
return 1;
else if (suit < c.get_suit())
return -1;
else
return 0;
}
else if (c.get_value() > value)
return -1;
else
return 1;
}
void Card::print_card()const
{
char suitchars[] = "CDHS";
char valuechars[] = "WA23456789TJQK";
if ((suit < 0) || (suit > 3))
/*printf("Invalid suit: %d\n",suit);*/
cout << "Invalid suit: " << get_suit() <<endl;
else if ((value < 0) || (value > 13))
/*printf("Invalid value: %d\n",value);*/
cout << "Invalid value: " << get_value() << endl;
else
cout << suitchars[get_suit()] << " "<< valuechars[get_value()] << " " ;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0ZGlvPgojaW5jbHVkZSAiQ2FyZC5oIgoKdXNpbmcgc3RkOjpjb3V0Owp1c2luZyBzdGQ6OmVuZGw7CgoKLyogbWFrZV9jYXJkCiAqCiAqIEFsbG9jYXRlIHNwYWNlIGZvciBBTkQgaW5pdGlhbGl6ZSB0aGUgdmFsdWVzIGZvciBhIHNpbmdsZSBjYXJkCiAqLwoKQ2FyZDo6Q2FyZChpbnQgc3VpLCBpbnQgdmFsKQp7CiAgc3VpdCA9IHN1aTsKICB2YWx1ZSA9IHZhbDsKfQoKaW50IENhcmQ6OmdldF9zdWl0KCkgY29uc3QKewogIHJldHVybiBzdWl0Owp9CgppbnQgQ2FyZDo6Z2V0X3ZhbHVlKCkgY29uc3QKewogIHJldHVybiB2YWx1ZTsKfQoKLyogY29tcGFyZQogKgogKiBDb21wYXJlIHR3byBjYXJkcy4gIFRoZSB3YXkgd2UgY29tcGFyZSBjYXJkcyBpcyB0byBmaXJzdCBsb29rIGF0IHRoZSAKICogdmFsdWUuICBJZiB0aGUgdmFsdWVzIGFyZSBkaWZmZXJlbnQsIHRoZW4gdGhlIGNhcmQgd2l0aCB0aGUgaGlnaGVyIHZhbHVlCiAqIGlzIGhpZ2hlci4gIElmIHRoZSB2YWx1ZXMgYXJlIHRoZSBzYW1lLCB0aGVuIHdlIGNoZWNrIHRoZSBzdWl0LiAgVGhlIHZhcmQKICogd2l0aCBhIHN1aXQgd2l0aCBhIGhpZ2hlciB2YWx1ZSAoMC0zKSBpcyBoaWdoZXIuCiAqCiAqIFRoZSBjb21wYXJlIHJlc3VsdCBpcyAtMSwgMCwgb3IgMS4gIElmIGMxIDwgYzIsIHRoZW4gcmV0dXJuIC0xLiAgSWYKICogYzEgPT0gYzIsIHRoZW4gcmV0dXJuIDAuICBJZiBjMSA+IGMyLCB0aGVuIHJldHVybiAxLgogKi8KCmludCBDYXJkOjpjb21wYXJlKGNvbnN0IENhcmQmIGMpIGNvbnN0CnsKICBpZiAodmFsdWUgPT0gYy5nZXRfdmFsdWUoKSkKICAgIHsKICAgICAgaWYgKHN1aXQgPiBjLmdldF9zdWl0KCkpCglyZXR1cm4gMTsKICAgICAgZWxzZSBpZiAoc3VpdCA8IGMuZ2V0X3N1aXQoKSkKCXJldHVybiAtMTsKICAgICAgZWxzZSAKCXJldHVybiAwOwogICAgfSAgCiAgZWxzZSBpZiAoYy5nZXRfdmFsdWUoKSA+IHZhbHVlKQogICAgcmV0dXJuIC0xOwogIGVsc2UgCiAgICByZXR1cm4gMTsgICAgCn0KCnZvaWQgQ2FyZDo6cHJpbnRfY2FyZCgpY29uc3QKeyAgCiAgY2hhciBzdWl0Y2hhcnNbXSA9ICJDREhTIjsKICBjaGFyIHZhbHVlY2hhcnNbXSA9ICJXQTIzNDU2Nzg5VEpRSyI7CiAgCiAgaWYgKChzdWl0IDwgMCkgfHwgKHN1aXQgPiAzKSkKICAgIC8qcHJpbnRmKCJJbnZhbGlkIHN1aXQ6ICVkXG4iLHN1aXQpOyovCiAgICBjb3V0IDw8ICJJbnZhbGlkIHN1aXQ6ICIgPDwgZ2V0X3N1aXQoKSA8PGVuZGw7CiAgZWxzZSBpZiAoKHZhbHVlIDwgMCkgfHwgKHZhbHVlID4gMTMpKQogICAgLypwcmludGYoIkludmFsaWQgdmFsdWU6ICVkXG4iLHZhbHVlKTsqLwogICAgY291dCA8PCAiSW52YWxpZCB2YWx1ZTogIiA8PCBnZXRfdmFsdWUoKSA8PCBlbmRsOwogIGVsc2UKICAgIGNvdXQgPDwgc3VpdGNoYXJzW2dldF9zdWl0KCldIDw8ICIgIjw8IHZhbHVlY2hhcnNbZ2V0X3ZhbHVlKCldIDw8ICIgIiA7Cn0K