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!"); } }
/// <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); }