示例#1
0
void Way::fillStepsList(Monster& monster, int index)
{
	monster.emptyStepsList();

	monster.addStep(mExitPosition);
	++mValueParameter;

	sf::Vector2i actualPosition(mExitPosition);

	while(mValueParameter != -1)
	{
		if(mWorkingBoard[actualPosition.x - 1][actualPosition.y] == mValueParameter)//left
		{
			actualPosition.x-=1;
			monster.addStep(actualPosition);
		}
		else if(mWorkingBoard[actualPosition.x + 1][actualPosition.y] == mValueParameter)//right
		{
			actualPosition.x+=1;
			monster.addStep(actualPosition);
		}
		else if(mWorkingBoard[actualPosition.x][actualPosition.y - 1] == mValueParameter)//up
		{
			actualPosition.y-=1;
			monster.addStep(actualPosition);
		}
		else if(mWorkingBoard[actualPosition.x][actualPosition.y + 1] == mValueParameter)//down
		{
			actualPosition.y+=1;
			monster.addStep(actualPosition);
		}
		++mValueParameter;
	}
}