private int getComputerMove() {
		//label the winning/losing nodes from the game state
		LinkedList<NimVertex> labels = NimAlgorithms.labelNimGraph(gameState);

		//determine the desired condition
		boolean wantToWin = gameType == GameType.MissionImpossible 
			? true : gameType == GameType.FairGo ? true : false;

		//determine next position
		NimVertex chosenPosition = null;
		for (Vertex v: gameState.getAdjacentVertices()) {
			NimVertex thisVertex = (NimVertex)v;

			//if the vertex matches the desired condition
			//choose it
			if (!thisVertex.isWinning() == wantToWin) 
				chosenPosition = thisVertex;
		}
		
		//if no choice was made, default to first adjacent
		chosenPosition = chosenPosition == null ? (NimVertex)gameState.getAdjacentVertices().getFirst() : chosenPosition;

		//calculate the number of sticks
		int numSticks = gameState.getSticksRemaining() - chosenPosition.getSticksRemaining();
		return numSticks;
	}