namespace Computer_guessing_game
static RPSEnum GenerateRandomMove()
Random random = new Random(Guid.NewGuid().GetHashCode());
int computerMoveInt = random.Next(1, 4);
if (computerMoveInt == 1) return RPSEnum.Rock;
if (computerMoveInt == 2) return RPSEnum.Paper;
if (computerMoveInt == 3) return RPSEnum.Scissors;
static RPSEnum ReadUserMove()
Console.Write("Your move (R - rock, P - paper, S - scissors): ");
string userInput = Console.ReadLine().ToUpper();
if (userInput == "R") return RPSEnum.Rock;
if (userInput == "P") return RPSEnum.Paper;
if (userInput == "S") return RPSEnum.Scissors;
static string ConvertMoveToString(RPSEnum move)
if (move == RPSEnum.Rock) return "Rock";
if (move == RPSEnum.Paper) return "Paper";
if (move == RPSEnum.Scissors) return "Scissors";
static GameResultEnum GameResult(RPSEnum moveA, RPSEnum moveB)
if (moveA == RPSEnum.Rock)
if (moveB == RPSEnum.Rock) return GameResultEnum.Draw;
if (moveB == RPSEnum.Paper) return GameResultEnum.Lose;
if (moveB == RPSEnum.Scissors) return GameResultEnum.Win;
if (moveA == RPSEnum.Paper)
if (moveB == RPSEnum.Rock) return GameResultEnum.Win;
if (moveB == RPSEnum.Paper) return GameResultEnum.Draw;
if (moveB == RPSEnum.Scissors) return GameResultEnum.Lose;
if (moveA == RPSEnum.Scissors)
if (moveB == RPSEnum.Rock) return GameResultEnum.Lose;
if (moveB == RPSEnum.Paper) return GameResultEnum.Win;
if (moveB == RPSEnum.Scissors) return GameResultEnum.Draw;
static void Main(string[] args)
Console.WriteLine("Welcome to RPS game!");
Random random = new Random();
Console.WriteLine($"{userWins} - {compWins}");
RPSEnum computerMove = GenerateRandomMove();
Console.Write("Your move (R - rock, P - paper, S - scissors): ");
RPSEnum userMove = ReadUserMove();
Console.WriteLine($"I played {ConvertMoveToString(computerMove)}");
GameResultEnum gameResult = GameResult(computerMove, userMove);
if (gameResult == GameResultEnum.Win)
Console.WriteLine("I win");
else if (gameResult == GameResultEnum.Lose)
Console.WriteLine("You win");
Console.WriteLine("It's a draw");