private int alphabetaScore(GameState state, Color faction)
	{
		state = state.getCounter().score(state, false);
		
		int playerScore = 0;
		Color maxPlayer = null;
		int maxScore = Integer.MIN_VALUE;
		for(Player p : state.getPlayerList())
		{
			//determine the player's score
			if(p.getFaction().equals(faction))
			{
				playerScore = p.getScore();
			}
			
			//determine the best score
			if(p.getScore() >= maxScore)
			{
				maxScore = p.getScore();
				if(!p.getFaction().equals(faction))
				{
					maxPlayer = p.getFaction();
				}
			}
		}
		//Okay, now we need to figure out if the player had the best score or not
		if(maxPlayer != null)
		{	
			//we need to find the player in 2nd place
			maxScore = Integer.MIN_VALUE;
			for(Player p : state.getPlayerList())
			{
				if(!p.getFaction().equals(faction))
				{    
					if(p.getScore() >= maxScore)
					{
						maxScore = p.getScore();
					}
				}
			}
			
	//		System.out.println("score: " + (playerScore - maxScore));
			
			return playerScore - maxScore; //should always be a positive value
		}
		else
		{	
	//		System.out.println("score: " + (playerScore - maxScore));
			
			return playerScore - maxScore; //should always be a negative value or 0
		}
	}