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); } } } }
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); } } }