Exemplo n.º 1
0
        public GameResult Process()
        {
            var builder             = new ElementBuilder();
            var firstPlayerElement  = builder.BuildElementByName(game.FirstPlayerElement);
            var secondPlayerElement = builder.BuildElementByName(game.SecondPlayerElement);

            if (game.FirstPlayerElement.Equals(game.SecondPlayerElement))
            {
                gameResult.GameResultType = GameResultType.Draw;
                gameResult.ResultMessage  = $"O jogo empatou, ambos selecionaram o mesmo elemento.";
            }
            else if (firstPlayerElement.WinsFrom.Select(e => e.GetType()).Contains(secondPlayerElement.GetType()))
            {
                gameResult.GameResultType = GameResultType.FirstPlayerWon;
                gameResult.ResultMessage  = $"O jogador 1 ({game.FirstPlayerName}) venceu, porque {game.FirstPlayerElement} vence {game.SecondPlayerElement}!";
            }
            else
            {
                gameResult.GameResultType = GameResultType.SecondPlayerWon;
                gameResult.ResultMessage  = $"O jogador 2 ({game.SecondPlayerName}) venceu, porque {game.SecondPlayerElement} vence {game.FirstPlayerElement}!";
            }

            return(gameResult);
        }