public static KnbResult Play() { var result = new KnbResult(); Random rnd = new Random(); result.Player1Gesture = (KnbGesture)rnd.Next((int)KnbGesture.Rock, (int)KnbGesture.Scissors + 1); result.Player2Gesture = (KnbGesture)rnd.Next((int)KnbGesture.Rock, (int)KnbGesture.Scissors + 1); if (result.Player1Gesture == result.Player2Gesture) { result.Result = KnbResultType.Draw; } else { int max = Math.Max((int)result.Player1Gesture, (int)result.Player2Gesture); int min = Math.Min((int)result.Player1Gesture, (int)result.Player2Gesture); int delta = max - min; if (delta == 1) { if ((int)result.Player1Gesture == min) { result.Result = KnbResultType.Player1Won; } else { result.Result = KnbResultType.Player2Won; } } else { if ((int)result.Player1Gesture == max) { result.Result = KnbResultType.Player1Won; } else { result.Result = KnbResultType.Player2Won; } } } return(result); }
private string FormKnbResultResponse(KnbResult result, string player1Name, string player2Name) { var response = ""; response += $"{player1Name}: {result.Player1Gesture.ToString()}" + Environment.NewLine; response += $"{player2Name}: {result.Player2Gesture.ToString()}" + Environment.NewLine; switch (result.Result) { case KnbResultType.Player1Won: response += $"Победил {player1Name}!"; break; case KnbResultType.Player2Won: response += $"Победил {player2Name}!"; break; case KnbResultType.Draw: response += $"Ничья!"; break; default: response += "Шото пошло не так. Не смог вычислить победителя."; break; } return(response); }