Exemplo n.º 1
0
        public JogarRetorno Jogar(string posicao)
        {
            var posicaoNormalizada = new Posicao();

            if (!Enum.TryParse(posicao.ToUpper(), out posicaoNormalizada))
            {
                return(JogarRetorno.Invalida);
            }

            if (Jogadas.Any(x => x.Posicao == posicaoNormalizada))
            {
                return(JogarRetorno.JaRealizada);
            }

            Jogadas.Add(new Jogada
            {
                Id      = Jogadas.Count > 0 ? Jogadas.Max(x => x.Id) + 1 : 1,
                Posicao = posicaoNormalizada,
                Jogador = JogadorDaVez
            });

            JogadorDaVez = JogadorDaVez == Jogador.O ? Jogador.X : Jogador.O;

            return(JogarRetorno.Ok);
        }