private void placePlanets(final List<Player> orderedPlayerList) {
		ListIterator<Player> it = orderedPlayerList.listIterator();
		boolean continueToNextPlayer;
		Player player;
		for (int i = 0; i < NB_PLANETS_PER_PLAYER; i++) {

			continueToNextPlayer = true;
			while (continueToNextPlayer) {

				// If the round is even
				if (i % 2 == 0) {
					// Player order is normal
					player = it.next();
					continueToNextPlayer = it.hasNext();
				} else {
					// Player order is reversed
					player = it.previous();
					continueToNextPlayer = it.hasPrevious();
				}

				MultiMenuPlacePlanet placePlanetMenu = menuFactory.newMultiMenuPlacePlanet(galaxy, i, player);
				MultiMenuPlacePlanetChoices choices = placePlanetMenu.doSelection(factory);

				Planet chosenPlanet = choices.getChosenPlanet();
				if (galaxy.isEmpty()) {
					galaxy.add(chosenPlanet);
				} else {
					galaxy.add(chosenPlanet, choices.getChosenSpot(), factory);
				}
				player.removePlanetToken(chosenPlanet);

				if (choices.isPlaceFirstBase()) {
					player.placeBase(choices.getChosenBaseArea());
					player.setStartingPlanet(choices.getChosenBaseArea().getPlanet());

					for (Area a : chosenPlanet.getAreas()) {
						if (a.getResource().getResourceType() != ResourceType.CONTROL) {
							player.addControlledResource(a.getResource());
						}
					}
				}
			}
		}
	}