public RPSResult EvaluateRound(IRPSMove opponentsMove) { switch (opponentsMove) { case RockRPSMove _: return(RPSResult.Tie); case PaperRPSMove _: return(RPSResult.Lose); case ScissorsRPSMove _: return(RPSResult.Win); default: return(RPSResult.Tie); } }
void DetermineWinner(IRPSMove userSelection, IRPSMove consoleSelection) { var result = userSelection.EvaluateRound(consoleSelection); switch (result) { case RPSResult.Tie: RPSConsoleWriter.ShowTieOutput(userSelection, consoleSelection); break; case RPSResult.Win: RPSConsoleWriter.ShowWinOutput(userSelection, consoleSelection); break; case RPSResult.Lose: RPSConsoleWriter.ShowLoseOutput(userSelection, consoleSelection); break; } }
public static void ShowLoseOutput(IRPSMove userSelection, IRPSMove consoleSelection) { Console.WriteLine($"{userSelection} loses to {consoleSelection}. You LOSE :("); }
public static void ShowWinOutput(IRPSMove userSelection, IRPSMove consoleSelection) { Console.WriteLine($"{userSelection} beats {consoleSelection}! You WIN :)"); }
public static void ShowTieOutput(IRPSMove userSelection, IRPSMove consoleSelection) { Console.WriteLine($"{userSelection} ties with {consoleSelection}."); }
public static void DisplayChosen(IRPSMove userSelection, IRPSMove consoleSelection) { Console.WriteLine("You chose: " + userSelection); Console.WriteLine("Console chose: " + consoleSelection); Console.WriteLine(); }