Exemplo n.º 1
0
        private Carta [] GetNovaMaoInedita(Enuns.Naipe naipeCarta1, Enuns.Naipe naipeCarta2)
        {
            if (this.MaosAleatoriasGeradas.Count >= 500)
            {
                throw new Exception("Limite de mãos atingido");
            }

            Carta carta1, carta2;

            string novaMao = "";

            do
            {
                carta1 = GetCartaAleatoria(naipeCarta1);
                carta2 = GetCartaAleatoria(naipeCarta2, carta1);

                if (carta1.Numero < carta2.Numero)
                {
                    Carta carta3 = carta1;
                    carta1 = carta2;
                    carta2 = carta3;
                }

                novaMao = carta1.ToString() + " " + carta2.ToString();
            } while (MaosAleatoriasGeradas.Contains(novaMao));

            this.MaosAleatoriasGeradas.Add(novaMao);

            return(new Carta[] { carta1, carta2 });
        }
Exemplo n.º 2
0
        private Carta GetCartaAleatoria(Enuns.Naipe naipe = Enuns.Naipe.Copas, Carta DiferenteDe = null)
        {
            int NumUm = this.random.Next(2, 14);

            if (DiferenteDe == null)
            {
                return(new Carta((uint)NumUm, naipe));
            }

            //evita carta de mesmo naipe e número
            while (naipe == DiferenteDe.Naipe && NumUm == DiferenteDe.Numero)
            {
                NumUm = this.random.Next(2, 14);
                naipe = Carta.GetNaipeAleatorio();
            }

            return(new Carta((uint)NumUm, naipe));
        }