gtheler 5 лет назад
Родитель
Сommit
a2943e8b13
7 измененных файлов: 32 добавлений и 7 удалений
  1. +0
    -1
      blackjack.conf
  2. +4
    -1
      src/base.h
  3. +15
    -0
      src/blackjack.cpp
  4. +2
    -2
      src/conf.cpp
  5. +9
    -1
      src/stdinout.cpp
  6. +1
    -1
      src/tty.cpp
  7. +1
    -1
      src/tty.h

+ 0
- 1
blackjack.conf Просмотреть файл

flat_bet = 1 flat_bet = 1
no_insurance = true no_insurance = true
delay = 0 delay = 0


+ 4
- 1
src/base.h Просмотреть файл

Player(Player &&) = delete; Player(Player &&) = delete;
Player(const Player &&) = delete; Player(const Player &&) = delete;


virtual int play() = 0;
virtual int play(void) = 0;
virtual void info(Libreblackjack::Info = Libreblackjack::Info::None, int = 0, int = 0) = 0; virtual void info(Libreblackjack::Info = Libreblackjack::Info::None, int = 0, int = 0) = 0;
Libreblackjack::PlayerActionRequired actionRequired = Libreblackjack::PlayerActionRequired::None; Libreblackjack::PlayerActionRequired actionRequired = Libreblackjack::PlayerActionRequired::None;
Libreblackjack::PlayerActionTaken actionTaken = Libreblackjack::PlayerActionTaken::None; Libreblackjack::PlayerActionTaken actionTaken = Libreblackjack::PlayerActionTaken::None;


int dealerValue = 0;
int playerValue = 0;
bool verbose = false; bool verbose = false;
bool flat_bet = false; bool flat_bet = false;
bool no_insurance = false; bool no_insurance = false;

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

} }


// step 7.c. ask the player to play // step 7.c. ask the player to play
player->playerValue = playerTotal;
player->dealerValue = dealerTotal;
player->actionRequired = Libreblackjack::PlayerActionRequired::Play; player->actionRequired = Libreblackjack::PlayerActionRequired::Play;
nextAction = Libreblackjack::DealerAction::AskForPlay; nextAction = Libreblackjack::DealerAction::AskForPlay;
return; return;
} }
nextAction = Libreblackjack::DealerAction::AskForPlay; nextAction = Libreblackjack::DealerAction::AskForPlay;
player->playerValue = playerTotal;
player->dealerValue = dealerTotal;
player->actionRequired = Libreblackjack::PlayerActionRequired::Play; player->actionRequired = Libreblackjack::PlayerActionRequired::Play;
return; return;
} }
break; break;
case Libreblackjack::DealerAction::AskForPlay: case Libreblackjack::DealerAction::AskForPlay:
player->playerValue = playerTotal;
player->dealerValue = dealerTotal;
player->actionRequired = Libreblackjack::PlayerActionRequired::Play; player->actionRequired = Libreblackjack::PlayerActionRequired::Play;
nextAction = Libreblackjack::DealerAction::AskForPlay; nextAction = Libreblackjack::DealerAction::AskForPlay;
return; return;
nextAction = Libreblackjack::DealerAction::MoveOnToNextHand; nextAction = Libreblackjack::DealerAction::MoveOnToNextHand;
return; return;
} else { } else {
player->playerValue = playerTotal;
player->dealerValue = dealerTotal;
player->actionRequired = Libreblackjack::PlayerActionRequired::Play; player->actionRequired = Libreblackjack::PlayerActionRequired::Play;
nextAction = Libreblackjack::DealerAction::AskForPlay; nextAction = Libreblackjack::DealerAction::AskForPlay;
return; return;
nextAction = Libreblackjack::DealerAction::MoveOnToNextHand; nextAction = Libreblackjack::DealerAction::MoveOnToNextHand;
return 1; return 1;
} else { } else {
// player->playerValue = playerTotal;
// player->dealerValue = dealerTotal;
player->actionRequired = Libreblackjack::PlayerActionRequired::Play; player->actionRequired = Libreblackjack::PlayerActionRequired::Play;
nextAction = Libreblackjack::DealerAction::AskForPlay; nextAction = Libreblackjack::DealerAction::AskForPlay;
return 1; return 1;
return 1; return 1;
} }
} else { } else {
// player->playerValue = playerTotal;
// player->dealerValue = dealerTotal;
player->actionRequired = Libreblackjack::PlayerActionRequired::Play; player->actionRequired = Libreblackjack::PlayerActionRequired::Play;
nextAction = Libreblackjack::DealerAction::AskForPlay; nextAction = Libreblackjack::DealerAction::AskForPlay;
return 1; return 1;
} else { } else {
// player->playerValue = playerTotal;
// player->dealerValue = dealerTotal;
player->actionRequired = Libreblackjack::PlayerActionRequired::Play; player->actionRequired = Libreblackjack::PlayerActionRequired::Play;
nextAction = Libreblackjack::DealerAction::AskForPlay; nextAction = Libreblackjack::DealerAction::AskForPlay;
return 1; return 1;

+ 2
- 2
src/conf.cpp Просмотреть файл

if (set(player, {"player"}) == false) { if (set(player, {"player"}) == false) {
// if we are on an interactive terminal we play through tty otherwise stdinout // if we are on an interactive terminal we play through tty otherwise stdinout
if (isatty(1)) {
if (isatty(0)) {
player = "tty"; player = "tty";
} else { } else {
player = "stdinout";
player = "stdio";
} }
} }

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

} }
std::cout << s << std::endl;
return; return;
} }


int StdInOut::play() {
int StdInOut::play(void) {
std::string s; std::string s;
std::string command; std::string command;
std::cin >> command; std::cin >> command;

if (std::cin.eof()) {
actionTaken = Libreblackjack::PlayerActionTaken::Quit;
return 0;
}

trim(command); trim(command);
actionTaken = Libreblackjack::PlayerActionTaken::None; actionTaken = Libreblackjack::PlayerActionTaken::None;

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

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

+ 1
- 1
src/tty.h Просмотреть файл

Tty(Configuration &); Tty(Configuration &);
~Tty() { }; ~Tty() { };
int play() override;
int play(void) override;
void info(Libreblackjack::Info = Libreblackjack::Info::None, int = 0, int = 0) override; void info(Libreblackjack::Info = Libreblackjack::Info::None, int = 0, int = 0) override;


// for readline's autocompletion // for readline's autocompletion

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