Example #1
0
File: game.cpp Project: ylwan/Husky
void Game::dispatchCard(std::vector<int> &vector)
{
	int i, j;
	Deck *deck;
	Deck *deckuser;

	std::vector <int> ::iterator iter; 

	deck = *(this->decklist.begin() + 1);
	
	for (iter = vector.begin(); iter != vector.end(); iter++)
	{
		for (i = 0; i < 4; i++)
		{
			deckuser = *(this->decklist.begin() + 2 + (*(this->playerlist.begin() + i))->getLocate());
			for (j = 0; j < *iter; j++)
			{
				deckuser->Push(deck->Pop());
			}
		}
	}

	this->nextuserid = 0;
	return;
}
Example #2
0
File: game.cpp Project: ylwan/Husky
void Game::start()
{
	int path;
	int deckid = 2 + this->playerlist.at(this->nextuserid)->getLocate();

	Deck *deck = this->decklist.at(1);
	Deck *deckuser = this->decklist.at(deckid);

	deckuser->Push(deck->Pop());

	this->eGameState = GAMESTATE_WAITACTION;

	return;
}
Example #3
0
File: game.cpp Project: ylwan/Husky
void Game::schedule(Message *msg)
{
	switch(msg->getMessageType())
	{
		case MSGTYPE_USER_CHI :
		case MSGTYPE_USER_GIVEUP :
		case MSGTYPE_USER_PENG :	
		{
			if (this->eGameState != GAMESTATE_WAITACTION)	
			{
				break;
			}
			if (msg->getPlayer()->getID() != (*this->playerlist.begin())->getID())
			{
				break;
			}
		}
		case MSGTYPE_USER_READY :
		{
			if (GAMESTATE_START == this->eGameState && 
				(*this->playerlist.begin())->getID() == msg->getPlayer()->getID())
			{
				int deckid = 2 + msg->getPlayer()->getLocate();
				Deck *deck = this->decklist.at(1);
				Deck *deckuser = this->decklist.at(deckid);

				Card *card = deck.Pop();
				deckuser->Push(card);
			}
			break;
		}
		case MSGTYPE_DEBUG :
		{
			vector <Deck *> ::iterator iterdeck;
			for (iterdeck = this->decklist.begin();	iterdeck != this->decklist.end(); iterdeck++)
			{
				(*iterdeck)->show();
			}
			break;
		}
		default :
		{
			break;
		}
	}	

	return;
}