Example #1
0
        public Carta Joga(Vaza vaza)
        {
            for (int i = 0; i < mao.Count; i++)
            {
                if (mao[i] != null && mao[i].naipe == vaza.NaipeVaza())
                {
                    tempPosicao = i;
                    return mao[i];
                }
            }

            if (HasCards())
            {
                for (int i = 0; i < mao.Count; i++)
                {
                    if (mao[i] != null)
                    {
                        tempPosicao = i;
                        return mao[i];
                    }
                }
            }
            return null;
        }
Example #2
0
 public Carta Joga(Vaza vaza)
 {
     throw new NotImplementedException();
 }
Example #3
0
        private IPlayer VazaWin(Vaza vaza, NAIPE trunfo)
        {
            if (VazaComplete())
            {
                NAIPE naipeVaza = vaza.jogadas[0].carta.naipe;
                Jogada jogadaMaior = vaza.jogadas[0];
                int pontos = 0;
                foreach (Jogada jogada in vaza.jogadas)
                {
                    pontos += jogada.carta.pontos;

                    if (jogada.carta.naipe == trunfo)
                    {
                        naipeVaza = trunfo;
                    }
                    if (jogadaMaior.carta.naipe != naipeVaza)
                        jogadaMaior = null;

                    if (jogadaMaior == null || (jogada.carta.identificador > jogadaMaior.carta.identificador && naipeVaza == jogada.carta.naipe))
                    {
                        jogadaMaior = jogada;
                    }
                }
                int equipa = 0;
                equipa = (jogadaMaior.jogador.ID == 0 || jogadaMaior.jogador.ID == 1) ? 0 : 1;
                this.equipas[equipa].pontosPartida += pontos;
                if (ChangePoints != null)
                {
                    ChangePoints(equipa, this.equipas[equipa].pontosPartida);
                }
                return jogadaMaior.jogador;
            }
            return null;
        }