示例#1
0
        public static int GetPunti_DUE(this DC_partita p)
        {
            var punti_chiamante = p.GetPunti_CHIAMANTE();

            var punti_chiamato = p.GetPunti_CHIAMATO();

            return(punti_chiamante + punti_chiamato);
        }
示例#2
0
        public static List <Carta> GetCarichiPassati(this DC_partita p)
        {
            List <Carta> rx = (from mp in p.mani
                               from cg in mp.carte
                               where cg.carta.potere >= 9
                               orderby cg.carta.potere descending
                               select cg.carta).ToList();

            return(rx);
        }
示例#3
0
        public static List <Carta> GetBriscolePassate(this DC_partita p)
        {
            List <Carta> rx = (from mp in p.mani
                               from cg in mp.carte
                               where cg.carta.seme == p.briscola
                               orderby cg.carta.potere descending
                               select cg.carta).ToList();

            return(rx);
        }
示例#4
0
        public static List <Carta> GetBriscoleEspliciteNonPassate_DUE(this DC_partita p)
        {
            List <Carta> rx = (from c in p.chiamante.carte_in_mano
                               where c.seme == p.briscola &&
                               c.potere > p.carta_chiamata.potere
                               select c).ToList();

            List <Carta> rx2 = (from mp in p.mani
                                from cg in mp.carte
                                where cg.carta == p.carta_chiamata
                                select cg.carta).ToList();

            rx.AddRange(rx2);

            return(rx);
        }
示例#5
0
        public static int GetPunti_CHIAMANTE(this DC_partita p)
        {
            int rx = 0;

            var lista_punti = (from mp in p.mani
                               let vincente = mp.ValutaMano(p.briscola).vincente
                                              where mp.carte.Count == 5 && vincente == p.chiamante
                                              let somma = mp.carte.Sum(cc => cc.carta.punti)
                                                          select somma).ToList();

            if (lista_punti.Count > 0)
            {
                rx = lista_punti.Sum();
            }

            return(rx);
        }
示例#6
0
        public static Giocatore GetCompagno(this DC_partita p)
        {
            Giocatore rx = null;

            foreach (var m in p.mani)
            {
                foreach (CartaGiocata cg in m.carte)
                {
                    if ((cg.carta.seme == p.carta_chiamata.seme) &&
                        (cg.carta.numerico == p.carta_chiamata.numerico))
                    {
                        rx = cg.giocatore;
                        break;
                    }
                }
            }

            return(rx);
        }
示例#7
0
 public void NuovaPartita()
 {
     partita = new DC_partita();
     serie.Add(partita);
 }