public int placeMeeple(Player player, int xBoard, int yBoard, int xTile,
			int yTile) {

		// Don't allow a player to play on a 'null' tiletype.
		if (gameBoard[yBoard][xBoard] == null
				|| gameBoard[yBoard][xBoard].getTileType(xTile, yTile) == null) {
			return 1;
		}

		// First we need to check the correctness of the input x & y.
		boolean xPlacedCorrectly = (xBoard == player.getLastTilePlacedXPos());
		boolean yPlacedCorrectly = (yBoard == player.getLastTilePlacedYPos());

		boolean correctTile = (xPlacedCorrectly && yPlacedCorrectly);

		// Next we check that the feature is not already taken.
		boolean newFeature = isNewFeature(xBoard, yBoard, xTile, yTile);

		// If so, we place the meeple.
		if (correctTile && newFeature) {

			BoardPosition meeplePosition;
			ArrayList<Meeple> meeples = player.getMeeples();

            for (Meeple meeple : meeples) {

                if (meeplePlacement.get(meeple) == null) {

                    meeplePosition = new BoardPosition(xBoard, yBoard, xTile,
                            yTile);
                    meeplePlacement.put(meeple, meeplePosition);

                    return 0;
                }
            }
		}

		return 1;
	}