gtheler 5 лет назад
Родитель
Сommit
ffa573261e
3 измененных файлов: 18 добавлений и 22 удалений
  1. +7
    -0
      src/report.cpp
  2. +11
    -10
      src/stdinout.cpp
  3. +0
    -12
      src/tty.cpp

+ 7
- 0
src/report.cpp Просмотреть файл

report.push_back(reportItem("played_hands", "%g", n_hands)); report.push_back(reportItem("played_hands", "%g", n_hands));
report.push_back(reportItem("total_money_waged", "%g", playerStats.totalMoneyWaged)); report.push_back(reportItem("total_money_waged", "%g", playerStats.totalMoneyWaged));

report.push_back(reportItem("bustsPlayer", "%g", playerStats.bustsPlayer));
report.push_back(reportItem("bustsDealer", "%g", playerStats.bustsDealer));

report.push_back(reportItem("wins", "%g", playerStats.wins));
report.push_back(reportItem("pushes", "%g", playerStats.pushes));
report.push_back(reportItem("losses", "%g", playerStats.losses));
return; return;
} }

+ 11
- 10
src/stdinout.cpp Просмотреть файл



case Libreblackjack::Info::BetInvalid: case Libreblackjack::Info::BetInvalid:
if (p1 < 0) { if (p1 < 0) {
s = "bet_negative";
s = "bet_negative" + std::to_string(p1);
} else if (p1 > 0) { } else if (p1 > 0) {
s = "bet_maximum";
s = "bet_maximum" + std::to_string(p1);
} else { } else {
s = "bet_zero"; s = "bet_zero";
} }
break; break;


case Libreblackjack::Info::NewHand: case Libreblackjack::Info::NewHand:
s = "new_hand";
s = "new_hand " + std::to_string(p1) + " " + std::to_string(1e-3*p2);
// clear dealer's hand // clear dealer's hand
dealerHand.cards.clear(); dealerHand.cards.clear();
break; break;
case Libreblackjack::Info::CardPlayer: case Libreblackjack::Info::CardPlayer:
s = "card_player";
s = "card_player " + ((p2 != 0)?(std::to_string(p2)+ " "):"") + card[p1].ascii();
if (p2 != static_cast<int>(currentHandId)) { if (p2 != static_cast<int>(currentHandId)) {
for (currentHand = hands.begin(); currentHand != hands.end(); ++currentHand) { for (currentHand = hands.begin(); currentHand != hands.end(); ++currentHand) {
if (static_cast<int>(currentHand->id) == p2) { if (static_cast<int>(currentHand->id) == p2) {
if (p1 > 0) { if (p1 > 0) {
switch (dealerHand.cards.size()) { switch (dealerHand.cards.size()) {
case 0: case 0:
s = "card_dealer_up";
s = "card_dealer_up " + card[p1].ascii();
break; break;
default: default:
s = "card_dealer";
s = "card_dealer " + card[p1].ascii();;
break; break;
} }
} else { } else {
s = "card_dealer";
s = "card_dealer " + card[p1].ascii();;
} }
dealerHand.cards.push_back(p1); dealerHand.cards.push_back(p1);
currentHandId = 0; currentHandId = 0;
break; break;
case Libreblackjack::Info::CardDealerRevealsHole: case Libreblackjack::Info::CardDealerRevealsHole:
s = "card_dealer_hole";
s = "card_dealer_hole " + card[p1].utf8();;
*(++(dealerHand.cards.begin())) = p1; *(++(dealerHand.cards.begin())) = p1;
currentHandId = 0; currentHandId = 0;
break; break;
break; break;


case Libreblackjack::Info::PlayerSplitOk: case Libreblackjack::Info::PlayerSplitOk:
s = "player_split_ok";
s = "player_split_ok" + ((p1 != 0)?(" #" + std::to_string(p1)):"");
handToSplit = p1; handToSplit = p1;
break; break;


} }
currentHandId = p1; currentHandId = p1;
s = "new_hand " + std::to_string(p2) + " " + card[cardToSplit].utf8();
break; break;


case Libreblackjack::Info::PlayerDoubleInvalid: case Libreblackjack::Info::PlayerDoubleInvalid:
break; break;
case Libreblackjack::PlayerActionRequired::Play: case Libreblackjack::PlayerActionRequired::Play:
s = "play?";
s = "play?" + std::to_string(dealerValue) + " " + std::to_string(playerValue);
break; break;
case Libreblackjack::PlayerActionRequired::None: case Libreblackjack::PlayerActionRequired::None:

+ 0
- 12
src/tty.cpp Просмотреть файл



case Libreblackjack::Info::BetInvalid: case Libreblackjack::Info::BetInvalid:
if (p1 < 0) { if (p1 < 0) {
// s = "bet_negative";
s = "Your bet is negative (" + std::to_string(p1) + ")"; s = "Your bet is negative (" + std::to_string(p1) + ")";
} else if (p1 > 0) { } else if (p1 > 0) {
// s = "bet_maximum";
s = "Your bet is larger than the maximum allowed (" + std::to_string(p1) + ")"; s = "Your bet is larger than the maximum allowed (" + std::to_string(p1) + ")";
} else { } else {
// s = "bet_zero";
s = "Your bet is zero"; s = "Your bet is zero";
} }
break; break;
case Libreblackjack::Info::Shuffle: case Libreblackjack::Info::Shuffle:
// TODO: ask the user to cut // TODO: ask the user to cut
// s = "shuffle";
s = "Deck needs to be shuffled."; s = "Deck needs to be shuffled.";
break; break;
case Libreblackjack::Info::CardPlayer: case Libreblackjack::Info::CardPlayer:
// s = "card_player";
if (p2 != static_cast<int>(currentHandId)) { if (p2 != static_cast<int>(currentHandId)) {
for (currentHand = hands.begin(); currentHand != hands.end(); ++currentHand) { for (currentHand = hands.begin(); currentHand != hands.end(); ++currentHand) {
if (static_cast<int>(currentHand->id) == p2) { if (static_cast<int>(currentHand->id) == p2) {
if (p1 > 0) { if (p1 > 0) {
switch (dealerHand.cards.size()) { switch (dealerHand.cards.size()) {
case 0: case 0:
// s = "card_dealer_up";
s = "Dealer's up card is " + card[p1].utf8(); s = "Dealer's up card is " + card[p1].utf8();
break; break;
default: default:
break; break;
case Libreblackjack::Info::CardDealerRevealsHole: case Libreblackjack::Info::CardDealerRevealsHole:
// s = "card_dealer_hole";
s = "Dealer's hole card was " + card[p1].utf8(); s = "Dealer's hole card was " + card[p1].utf8();
*(++(dealerHand.cards.begin())) = p1; *(++(dealerHand.cards.begin())) = p1;
currentHandId = 0; currentHandId = 0;
break; break;
case Libreblackjack::Info::DealerBlackjack: case Libreblackjack::Info::DealerBlackjack:
// s = "dealer_blackjack";
s = "Dealer has Blackjack"; s = "Dealer has Blackjack";
break; break;
case Libreblackjack::Info::PlayerWinsInsurance: case Libreblackjack::Info::PlayerWinsInsurance:
// s = "player_wins_insurance";
s = "Player wins insurance"; s = "Player wins insurance";
break; break;
case Libreblackjack::Info::PlayerBlackjackAlso: case Libreblackjack::Info::PlayerBlackjackAlso:
// s = "player_blackjack_also";
s = "Player also has Blackjack"; s = "Player also has Blackjack";
render = true; render = true;
break; break;


case Libreblackjack::Info::PlayerSplitInvalid: case Libreblackjack::Info::PlayerSplitInvalid:
// s = "player_split_invalid";
s = "Cannot split"; s = "Cannot split";
break; break;


case Libreblackjack::Info::PlayerSplitOk: case Libreblackjack::Info::PlayerSplitOk:
// s = "player_split_ok";
s = "Splitting hand" + ((p1 != 0)?(" #" + std::to_string(p1)):""); s = "Splitting hand" + ((p1 != 0)?(" #" + std::to_string(p1)):"");
handToSplit = p1; handToSplit = p1;
break; break;

Загрузка…
Отмена
Сохранить