Game::Game(GenericPlayer & PlayerOne, GenericPlayer & PlayerTwo) : PlayerOne(PlayerOne), PlayerTwo(PlayerTwo) { PlayerOne.setCallSign(PlayerOptions::X); PlayerOne.setWinResult(GameResults::X_WINS); PlayerTwo.setCallSign(PlayerOptions::O); PlayerTwo.setWinResult(GameResults::O_WINS); }
/* Deck function which deals extra cards to a GenericPlayer. If the referenced gp is a player, isHitting returns true if they want another card. If he referenced gp is the house. isHitting returns true if its hand.getTotal() returns less than 17(Hard 17 Casino rule)*/ void Deck::additionalCards(GenericPlayer &gp) { while (!gp.isBusted() && gp.isHitting()) { this->deal(gp); /*if (gp.split) { this->deal(gp.split_cards); }*/ } }
void Deck::AdditionalCards(GenericPlayer& aGenericPlayer) { Deal(aGenericPlayer); // std::cout << " after additional deal total points for now: " << aGenericPlayer.GetTotal() << std::endl; // we need to print out the hand ? std::cout << aGenericPlayer << "\n"; if(aGenericPlayer.IsBusted() ) { aGenericPlayer.Bust(); } }
void PropertiesBuilding::refresh( QList<GenericPlayer *> * players ) { _players = players; _ownerList->clear(); _ownerList->addItem( tr( "None" ) ); for( int i = 0; i < players->count(); i++ ) { GenericPlayer * player = players->at( i ); if( player ) { _ownerList->addItem( player->getName() ); } } }
void Deck::AdditionalCards(GenericPlayer& aGenericPlayer) { cout << endl; //continue to deal a card as long as generic player isn't busted and //wants another hit while (!(aGenericPlayer.IsBusted()) && aGenericPlayer.IsHitting()) { Deal(aGenericPlayer); cout << aGenericPlayer << endl; if (aGenericPlayer.IsBusted()) aGenericPlayer.Bust(); } }
void Game::displayPlayerScore(GenericPlayer p) { std::string str_out = std::string(""); std::string looking_for = std::string("XX"); for (int i = 0; i < p.size(); i++) { str_out.append(p.get(i)->getRankSuit() + "\t"); } if (str_out.find(looking_for) != std::string::npos) { /* String not found */ cout << p << ":\t\t" << str_out << "\t\t(" << "XX" << ")\n"; } else { cout << p << ":\t\t" << str_out << "\t\t(" << p.getTotal() << ")\n"; } }
int Computer::calculateMove(Board copyOfBoard, GenericPlayer & opponent) { for(int move{0}; move < 9 ; move++) { if(copyOfBoard.makeMove(*this, move)) { if(copyOfBoard.Winner() == (*this).getWinResult()) { return move; } copyOfBoard.clearMove(move); } } for(int move{0}; move < 9 ; move++) { if(copyOfBoard.makeMove(opponent, move)) { if(copyOfBoard.Winner() == opponent.getWinResult()) { return move; } copyOfBoard.clearMove(move); } } std::vector<int> priorityMoves {4,0,2,3,5,6,8,7,1}; for(auto it = priorityMoves.begin(); it != priorityMoves.end(); ++it) { if(copyOfBoard.makeMove(*this, *it)) { return *it; } } return -1; }
void Screen::newScenario() { ScenarioInfo info( this ); if( info.exec() ) { reinit(); theMap->newMap( info.getMapHeight(), info.getMapWidth() ); _players.clear(); setScenarioName( info.getName() ); setScenarioTheme( info.getTheme() ); setScenarioDescription( info.getDescription() ); setNbPlayer( info.getNbPlayer() ); for( uint i = 0; i < info.getNbPlayer(); i++ ) { GenericPlayer * player = new GenericPlayer( theMap ); player->setNum( i ); _players.append( player ); } } }
bool Screen::newScenario() { bool ret = false; ScenarioInfo info( this ); if( info.exec() ) { ret = true; reinit(); theMap->newUnknownMap( info.getMapHeight(), info.getMapWidth() ); _players.clear(); setScenarioName( info.getName() ); setScenarioTheme( info.getTheme() ); setScenarioDescription( info.getDescription() ); setNbPlayer( info.getNbPlayer() ); setDateByType( 0, info.getDay() > 0 ? info.getDay() : 1 ); setDateByType( 1, 1 ); setDateByType( 2, info.getWeek() > 0 ? info.getWeek() : 1 ); setDateByType( 3, info.getMonth() > 0 ? info.getMonth() : 1); setDateByType( 4, info.getYear() > 0 ? info.getYear() : 1044); for( uint i = 0; i < info.getNbPlayer(); i++ ) { GenericPlayer * player = new GenericPlayer( theMap ); player->setNum( i ); player->setName( QString("Player %1").arg(i) ); _players.append( player ); } emit sig_redrawMap( theMap ); emit sig_enableGame( true ); //HACK to workaround some widget problems _miniMap->slot_mapviewResized( _view->width() / theMap->width(), _view->height() / theMap->height() ); layout()->update(); } return ret; }
void TestAttal::testPlayer() { GenericPlayer player; QCOMPARE( player.isAlive() , true ); }