public Carta(string localImagem, ValorCarta valor, NaipeCarta naipe, int valorN) { imagem = new BitmapImage(new Uri(localImagem, UriKind.Relative)); //caminho = localImagem; this.valor = valor; this.valorN = valorN; this.naipe = naipe; }
public static int PesoCarta(this Carta carta, ValorCarta valorManilha) { if (carta.Valor == valorManilha) { return(10 + (int)carta.Naipe); } return((int)carta.Valor); }
public void CriarCartas() { /*/NaipeCarta[] naipes = new NaipeCarta[4]; ValorCarta[] valores = new ValorCarta[13];/*/ ValorCarta v = new ValorCarta(); NaipeCarta n = new NaipeCarta(); int contador = 0; Type tipoNaipe = n.GetType(); Type tipoValor = v.GetType(); FieldInfo[] naipe = tipoNaipe.GetFields(); FieldInfo[] valor = tipoValor.GetFields(); for (int i = 1; i < naipe.Length; i++) { for (int j = 1; j < valor.Length; j++) { //if (naipe[i].GetType() == tipoNaipe && valor[j].GetType() == tipoValor) //{ Carta tempCarta = new Carta("Imagens/Cartas/" + valor[j].Name + naipe[i].Name + ".jpg", (ValorCarta)Enum.Parse(typeof(ValorCarta), valor[j].Name, true), (NaipeCarta)Enum.Parse(typeof(NaipeCarta), naipe[i].Name, true), j - 1); //Carta tempCarta = new Carta("/Tapao;component/Imagens/Cartas" + valor[j].Name + naipe[i].Name + "jpg", (ValorCarta)Enum.Parse(typeof(ValorCarta), valor[j].Name, true), (NaipeCarta)Enum.Parse(typeof(NaipeCarta), naipe[i].Name, true)); //Carta tempCarta = new Carta("Texturas/Cartas" + valor[j].Name + naipe[i].Name, ValorCarta.As, NaipeCarta.Copas); carta[contador] = tempCarta; contador++; this.valor[j - 1] = (ValorCarta)Enum.Parse(typeof(ValorCarta), valor[j].Name, true); //} } } /*/foreach (var naipe in n.GetType().GetFields()) { foreach (var valor in v.GetType().GetFields()) { Carta tempCarta = new Carta(valor.Name + naipe.Name); carta[contador] = tempCarta; contador++; } }/*/ /*/ for (int i = 0; i < carta.Length - 1; i++) { Carta tempCarta = new Carta(); carta[i] = tempCarta; }/*/ }
public List <Carta> CartasEmOrdem(ValorCarta valorManilha) { var lista = new List <Carta>(); if (Carta1 != null) { lista.Add(Carta1); } if (Carta2 != null) { lista.Add(Carta2); } if (Carta3 != null) { lista.Add(Carta3); } return(lista.OrderBy(a => a.PesoCarta(valorManilha)).ToList()); }
public int Puntaje(List <Carta> mano) { int numero1 = 0, numero2 = 0, numero3 = 0, numero4 = 0, numero5 = 0, numero6 = 0, numero7 = 0, numero8 = 0, numero9 = 0, numero10 = 0, numero11 = 0, numero12 = 0, numero13 = 0, corazones = 0, espadas = 0, diamantes = 0, treboles = 0, escalera = 0, puntaje = 0; foreach (var item in mano) { if (1 == item.Numero) { numero1++; } if (2 == item.Numero) { numero2++; } if (3 == item.Numero) { numero3++; } if (4 == item.Numero) { numero4++; } if (5 == item.Numero) { numero5++; } if (6 == item.Numero) { numero6++; } if (7 == item.Numero) { numero7++; } if (8 == item.Numero) { numero8++; } if (9 == item.Numero) { numero9++; } if (10 == item.Numero) { numero10++; } if (11 == item.Numero) { numero11++; } if (12 == item.Numero) { numero12++; } if (13 == item.Numero) { numero13++; } if ("Corazon" == item.tipoCarta) { corazones++; } if ("Diamante" == item.tipoCarta) { diamantes++; } if ("Espadas" == item.tipoCarta) { espadas++; } if ("Flores" == item.tipoCarta) { treboles++; } } if ((numero1 == 1 && numero2 == 1 && numero3 == 1 && numero4 == 1 && numero5 == 1) || (numero2 == 1 && numero3 == 1 && numero4 == 1 && numero5 == 1 && numero6 == 1) || (numero3 == 1 && numero4 == 1 && numero5 == 1 && numero6 == 1 && numero7 == 1) || (numero4 == 1 && numero5 == 1 && numero6 == 1 && numero7 == 1 && numero8 == 1) || (numero5 == 1 && numero6 == 1 && numero7 == 1 && numero8 == 1 && numero9 == 1) || (numero6 == 1 && numero7 == 1 && numero8 == 1 && numero9 == 1 && numero10 == 1) || (numero7 == 1 && numero8 == 1 && numero9 == 1 && numero10 == 1 && numero11 == 1) || (numero8 == 1 && numero9 == 1 && numero10 == 1 && numero11 == 1 && numero12 == 1) || (numero9 == 1 && numero10 == 1 && numero11 == 1 && numero12 == 1 && numero13 == 1) || (numero9 == 1 && numero10 == 1 && numero11 == 1 && numero12 == 1 && numero13 == 1) || (numero10 == 1 && numero11 == 1 && numero12 == 1 && numero13 == 1 && numero1 == 1)) { escalera++; } Console.WriteLine("numero 1: " + numero1); Console.WriteLine("numero 2: " + numero2); Console.WriteLine("numero 3: " + numero3); Console.WriteLine("numero 4: " + numero4); Console.WriteLine("numero 5: " + numero5); Console.WriteLine("numero 6: " + numero6); Console.WriteLine("numero 7: " + numero7); Console.WriteLine("numero 8: " + numero8); Console.WriteLine("numero 9: " + numero9); Console.WriteLine("numero 10: " + numero10); Console.WriteLine("numero 11: " + numero11); Console.WriteLine("numero 12: " + numero12); Console.WriteLine("numero 13: " + numero13); Console.WriteLine("corazones ♥: " + corazones); Console.WriteLine("diamantes ♦: " + diamantes); Console.WriteLine("treboles ♣: " + treboles); Console.WriteLine("espadas ♠: " + espadas); Console.WriteLine("escalera : " + escalera); List <ValorCarta> cartasCasino = new List <ValorCarta>(); ValorCarta carta1 = new ValorCarta(1, numero1); ValorCarta carta2 = new ValorCarta(2, numero2); ValorCarta carta3 = new ValorCarta(3, numero3); ValorCarta carta4 = new ValorCarta(4, numero4); ValorCarta carta5 = new ValorCarta(5, numero5); ValorCarta carta6 = new ValorCarta(6, numero6); ValorCarta carta7 = new ValorCarta(7, numero7); ValorCarta carta8 = new ValorCarta(8, numero8); ValorCarta carta9 = new ValorCarta(9, numero9); ValorCarta carta10 = new ValorCarta(10, numero10); ValorCarta carta11 = new ValorCarta(11, numero11); ValorCarta carta12 = new ValorCarta(12, numero12); ValorCarta carta13 = new ValorCarta(13, numero13); cartasCasino.Add(carta1); cartasCasino.Add(carta2); cartasCasino.Add(carta3); cartasCasino.Add(carta4); cartasCasino.Add(carta5); cartasCasino.Add(carta6); cartasCasino.Add(carta7); cartasCasino.Add(carta8); cartasCasino.Add(carta9); cartasCasino.Add(carta10); cartasCasino.Add(carta11); cartasCasino.Add(carta12); cartasCasino.Add(carta13); List <ValorCarta> misCartas = new List <ValorCarta>(); foreach (var item in cartasCasino) { if (item.Cantidad > 0) { misCartas.Add(item); } } int CantidadPares = 0, CantidadTrios = 0, CantidadPoker = 0, SinPares = 0; foreach (var item in misCartas) { // Console.WriteLine("el numero " + item.Id + " repetido " + item.Cantidad); if (item.Cantidad == 1) { SinPares++; } if (item.Cantidad == 2) { CantidadPares++; } if (item.Cantidad == 3) { CantidadTrios++; } if (item.Cantidad == 4) { CantidadPoker++; } } Console.WriteLine("El numero de pares " + CantidadPares); Console.WriteLine("Tiene trio " + CantidadTrios); Console.WriteLine("Tiene poker " + CantidadPoker); if (escalera == 1) { if (numero1 == 1 && numero13 == 1) { puntaje += 4500 + misCartas.Max(o => o.Id); } else { puntaje += 4000 + misCartas.Max(o => o.Id); } } if (diamantes == 5 || corazones == 5 || treboles == 5 || espadas == 5) { puntaje += 5000 + misCartas.Max(o => o.Id); ; } if (escalera == 1 && (diamantes == 5 || corazones == 5 || treboles == 5 || espadas == 5)) { if (numero1 == 1 && numero13 == 1) { puntaje += 500000 + misCartas.Max(o => o.Id); } puntaje += 50000 + misCartas.Max(o => o.Id); ; } if (SinPares == 5) { puntaje += misCartas.Max(o => o.Id); } if (CantidadPares == 1 && CantidadTrios == 0) { var carta = misCartas.FirstOrDefault(o => o.Cantidad == 2); var cartamayor = misCartas.Where(o => o.Cantidad == 1).ToList(); var Mayor = cartamayor.Max(o => o.Id); if (carta.Id == 1) { puntaje += 1000 + (14 * 15) + Mayor; } else { puntaje += 1000 + (carta.Id * 15) + Mayor; } } if (CantidadPares == 2) { var carta = misCartas.Where(o => o.Cantidad == 2).ToList(); var CartaMayorDelPar = carta.Max(o => o.Id); var cartamayor = misCartas.Where(o => o.Cantidad == 1).ToList(); var Mayor = cartamayor.Max(o => o.Id); if (CartaMayorDelPar == 1) { puntaje += 2000 + (14 * 15) + Mayor; } else { puntaje += 2000 + (CartaMayorDelPar * 15) + Mayor; } } if (CantidadPares == 0 && CantidadTrios == 1) { var carta = misCartas.Where(o => o.Cantidad == 3).ToList(); var CartaMayorDelPar = carta.Max(o => o.Id); var cartamayor = misCartas.Where(o => o.Cantidad == 1).ToList(); var Mayor = cartamayor.Max(o => o.Id); if (CartaMayorDelPar == 1) { puntaje += 3000 + (14 * 15) + Mayor; } else { puntaje += 3000 + (CartaMayorDelPar * 15) + Mayor; } } if (CantidadPares == 1 && CantidadTrios == 1) { var carta = misCartas.Where(o => o.Cantidad == 3).ToList(); var CartaMayorDelPar = carta.Max(o => o.Id); var cartamayor = misCartas.Where(o => o.Cantidad == 1).ToList(); var Mayor = cartamayor.Max(o => o.Id); if (CartaMayorDelPar == 1) { puntaje += 6000 + (14 * 15) + Mayor; } else { puntaje += 6000 + (CartaMayorDelPar * 15) + Mayor; } } if (CantidadPoker == 1) { var carta = misCartas.Where(o => o.Cantidad == 4).ToList(); var CartaMayorDelPar = carta.Max(o => o.Id); var cartamayor = misCartas.Where(o => o.Cantidad == 1).ToList(); var Mayor = cartamayor.Max(o => o.Id); if (CartaMayorDelPar == 1) { puntaje += 7000 + (14 * 15) + Mayor; } else { puntaje += 7000 + (CartaMayorDelPar * 15) + Mayor; } } Console.WriteLine(puntaje + "Puntos"); return(puntaje); }
public Carta(ValorCarta valor, PaloCarta palo) { this.Valor = valor; this.Palo = palo; }