コード例 #1
0
ファイル: Game.cpp プロジェクト: spakai/tictactoe
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);
}
コード例 #2
0
/* 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);
		}*/
	}
}
コード例 #3
0
ファイル: deck.cpp プロジェクト: kathy789/blackjack
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();
    } 
    

} 
コード例 #4
0
ファイル: propertiesBuilding.cpp プロジェクト: q4a/attal
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() );
		}
	}
}
コード例 #5
0
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();
  }
}
コード例 #6
0
ファイル: Game.cpp プロジェクト: dbix/CSE-394-Project-2
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";
    }
}
コード例 #7
0
ファイル: Computer.cpp プロジェクト: spakai/tictactoe
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;

}
コード例 #8
0
ファイル: screen.cpp プロジェクト: q4a/attal
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 );
		}
	}
}
コード例 #9
0
ファイル: screen.cpp プロジェクト: q4a/attal
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;
}
コード例 #10
0
ファイル: testattal.cpp プロジェクト: q4a/attal
void TestAttal::testPlayer()
{
    GenericPlayer player;
    QCOMPARE( player.isAlive() , true );

}