@Override
	public void revealACard(String reasonForReveal){
		if(getFirstCard().isRevealed()){
			getSecondCard().reveal();
			writeToPlayer.println(Commands.RevealOnlyUnrevealedCard);
		}else if(getSecondCard().isRevealed()){
			getFirstCard().reveal();
			writeToPlayer.println(Commands.RevealOnlyUnrevealedCard);
		}else{
			writeToPlayer.println(Commands.RevealCardChoice+"+++"+reasonForReveal);
			try {
				String doneResponse = readFromPlayer.readLine(); //Wait for 'DONE' response
				if(doneResponse.equals(Responses.FirstCard.toString())){
					getFirstCard().reveal();
				}else if(doneResponse.equals(Responses.SecondCard.toString())){
					getSecondCard().reveal();
				}else{
					throw new RuntimeException("Invalid response: " + doneResponse);
				}
			} catch (IOException e) {
				throw new RuntimeException("No response received from player.  Game terminating.",e);
			}
		}
		gameController.updatePlayerCards();
	}