private Score takeTurn(Player player) {

		DiceRoll roll = player.rollDice(DICE_COUNT);
		roll = player.rerollDice(roll, REROLL_TIMES);
	
		ScoreCategory category = player.chooseScoreCategory();
		Score score = new Score(roll, category);
		
		while (!table.isLegal(player, score)) {
			category = player.chooseScoreCategoryAgain();
			score = new Score(roll, category);
		}

		return score;
	}