예제 #1
0
 public override void novaCarta(Carta carta, Jogador jogador, Carta manilha)
 {
     cartasUsadas.Add(carta);
     if (ganhoPrimeira &&
         !estaTrucado &&
         Equipe.BuscaID(this.IDEquipe).PontosEquipe < 12 &&
         Equipe.BuscaID(this.IDEquipe).Adversario.PontosEquipe < 12)
     {
         if (jogador.IDEquipe != this.IDEquipe)
         {
             if ((_mao.Count < 3 && _mao.Count > 0) &&
                 ((carta.valor(manilha) < _mao[0].valor(manilha)) || Equipe.BuscaID(this.IDEquipe).PontosEquipe < 6))
             {
                 base.trucar(this, Truco.truco);
             }
         }
     }
 }
예제 #2
0
        private int probabilidadeVitoria(Carta manilha)
        {
            int vitoria;

            cartasNaoUasadas.Remove(manilha);
            List <Carta> mesaEquipe     = cartasMao.Where(x => x.Item1.IDEquipe == IDEquipe).Select(z => z.Item2).ToList();
            Carta        maiorcarta     = (_mao).Union(mesaEquipe).OrderBy(y => y.valor(manilha)).Last();
            double       cartasMelhores = cartasNaoUasadas.Where(x => x.valor(manilha) >= (maiorcarta.valor(manilha))).Count();
            double       totalCartas    = cartasNaoUasadas.Count();

            vitoria = (int)((1 - (cartasMelhores / totalCartas)) * 100);
            if (pontosRodada == 1)
            {
                return(vitoria);
            }
            else
            {
                if (_mao.Count() > 1)
                {
                    cartasMelhores = cartasNaoUasadas.Where(x => x.valor(manilha) >= (_mao.OrderByDescending(y => y.valor(manilha)).ToList()[1].valor(manilha))).Count();
                    totalCartas    = cartasNaoUasadas.Count();
                    return((vitoria * (int)((1 - (cartasMelhores / totalCartas)) * 100)) / 100);
                }
                else
                {
                    return(vitoria);
                }
            }
        }