Example #1
0
 public void ValidarPosicaoDeOrigem(Posicao pos)
 {
     if (Tab.Peca(pos) == null)
     {
         throw new DomainException("Não existe peça na posição de origem escolhida!");
     }
     if (JogadorAtual != Tab.Peca(pos).Cor)
     {
         throw new DomainException($"Você deve escolher uma peça {JogadorAtual.ToString().ToUpper()}");
     }
     if (!Tab.Peca(pos).ExisteMovimentosPossiveis())
     {
         throw new DomainException("A peça escolhida não possui movimentos possiveis!");
     }
 }
Example #2
0
        /// <summary>
        /// Receber aposta do jogador e integrar ao Pote da Mesa
        /// </summary>
        /// <param name="fichas">Quantidade de fichas apostadas</param>
        /// <param name="blind">Indica se a aposta é proveniente do blind</param>
        public string ReceberAposta(int fichas, string blind = null)
        {
            if (fichas < 0)
            {
                throw new Exception(Ressource.MesaMsgNaoPermitidoApostaComValorNegativo);
            }

            var aposta = JogadorAtual.FichasApostadasNaRodada + fichas;

            fichas = JogadorAtual.Apostar(fichas);
            Pote  += fichas;

            var mensagem = "";

            if (fichas == 0)
            {
                if (aposta < ApostaAtual)
                {
                    JogadorAtual.Fold();
                    mensagem = Mensagem.Gerar(Ressource.MesaAcaoFold, JogadorAtual.Nome);
                }
                else
                {
                    mensagem = Mensagem.Gerar(Ressource.MesaAcaoCheck, JogadorAtual.Nome);
                }
            }
            else
            {
                if (!string.IsNullOrEmpty(blind))
                {
                    mensagem = Mensagem.Gerar(Ressource.MesaAcaoBlind, JogadorAtual.Nome, blind, fichas.ToString());
                }
                else if (aposta > ApostaAtual)
                {
                    ApostaAtual = aposta;
                    OrdenarJogadores(JogadorAtual.Id);
                    mensagem = Mensagem.Gerar(Ressource.MesaAcaoRaise, JogadorAtual.Nome, fichas.ToString());
                }
                else
                {
                    mensagem = Mensagem.Gerar(Ressource.MesaAcaoPagar, JogadorAtual.Nome, fichas.ToString());
                }
            }


            return(mensagem);
        }