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