From f09893f0a2a2539654e37067f725b123f6caaf2b Mon Sep 17 00:00:00 2001 From: Pedro Rolon Date: Mon, 12 Nov 2018 18:05:48 -0300 Subject: [PATCH] Se arreglo un error por el cual no se tenia en cuenta al AS como carta mayor --- MyClass.java | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------ 1 file changed, 109 insertions(+), 48 deletions(-) diff --git a/MyClass.java b/MyClass.java index ab6d5c3..872aee4 100644 --- a/MyClass.java +++ b/MyClass.java @@ -95,42 +95,62 @@ public class MyClass { if(esEscaleraColor(valores, palos)){ int[] ordenado = ordenarMano(mano); calificacion.add(9); - if(ordenado[4]==13 && ordenado[0]==1){ + //Si el AS actúa como 14, entonces el AS vale 14 + if(ordenado[4]==12 && ordenado[0]==0){ calificacion.add(14); } else{ calificacion.add(ordenado[4]); - } + } + } else if(esPoker(valores)){ //Si es poker, se envia la calificacion en el primer elemento, seguido del //valor que hizo que sea poker, seguido del valor diferente calificacion.add(8); - calificacion.add(indiceDe(4,valores)); - calificacion.add(indiceDe(1,valores)); + if(indiceDe(4,valores)==0){ + calificacion.add(14); + calificacion.add(indiceDe(1,valores)); + } + else{ + calificacion.add(indiceDe(4,valores)); + + if(indiceDe(1, valores)==0){ + calificacion.add(14); + } + else{ + calificacion.add(indiceDe(1, valores)); + } + } + } else if(esFull(valores)){ //No hay empate en full, por lo tanto solo hace falta //el valor de la mano calificacion.add(7); - calificacion.add(indiceDe(3, valores)); - calificacion.add(indiceDe(2,valores)); + if(indiceDe(3,valores)==0){ + calificacion.add(14); + calificacion.add(indiceDe(2,valores)); + } + else{ + calificacion.add(indiceDe(3,valores)); + + if(indiceDe(2, valores)==0){ + calificacion.add(14); + } + else{ + calificacion.add(indiceDe(2,valores)); + } + } } else if(esColor(palos)){ int aux=0; calificacion.add(6); - - - //Si hay un AS, se coloca directamente después de la - //calificación - if(indiceDe(1, valores)!=-1){ + int[] ordenado = ordenarMano(mano); + if(ordenado[0]==0){ calificacion.add(14); - //si ya se encontró el 1, entonces este ya no se - //debe agregar al array de calificacion aux=1; } - int[] ordenado = ordenarMano(mano); - for (int i = 4; i >= aux; i--) { calificacion.add(ordenado[i]); } @@ -138,7 +158,7 @@ public class MyClass { else if(esEscalera(valores)){ int[] ordenado = ordenarMano(mano); calificacion.add(5); - if(ordenado[4]==13 && ordenado[0]==1){ + if(ordenado[4]==12 && ordenado[0]==1){ calificacion.add(14); } else{ @@ -147,29 +167,73 @@ public class MyClass { } else if(esTrio(valores)){ calificacion.add(4); - calificacion.add(indiceDe(3, valores)); + + //Convierte el AS al mayor valor, en lugar de 1 vale 14 + if(indiceDe(3,valores)==0){ + calificacion.add(14); + }else{ + calificacion.add(indiceDe(3, valores)); + } + int[] ordenado = ordenarMano(mano); - for (int i = 4; i >=0; i--) { - if(calificacion.get(0)!=ordenado[i]){ + int aux = 0; + if(ordenado[0]==0){ + calificacion.add(14); + aux = 1; + } + + + for (int i = 4; i >=aux; i--) { + if(calificacion.get(1)!=ordenado[i]){ calificacion.add(ordenado[i]); } } } else if(esParDoble(valores)){ calificacion.add(3); - calificacion.add(indiceDeReversa(2, valores)); - calificacion.add(indiceDe(2, valores)); - calificacion.add(indiceDe(1,valores)); + + //Si es un par doble de AS, se le asigna 14 + if(indiceDe(2,valores)==0){ + calificacion.add(14); + calificacion.add(indiceDeReversa(2, valores)); + } + else{ + calificacion.add(indiceDeReversa(2, valores)); + calificacion.add(indiceDe(2, valores)); + } + + if(indiceDe(1,valores)==0){ + calificacion.add(14); + } + else{ + calificacion.add(indiceDe(1,valores)); + } + } else if(esPar(valores)){ calificacion.add(2); - calificacion.add(indiceDe(2, valores)); + + //Si el par es de AS, se setea su valor a 14 + if(indiceDe(2,valores)==0){ + calificacion.add(14); + } + else{ + calificacion.add(indiceDe(2, valores)); + } + + int[] ordenado = ordenarMano(mano); + int aux=0; + + if(ordenado[0]==0){ + calificacion.add(14); + aux=1; + } - for (int i = 4; i >=0; i--) { - if(calificacion.get(0)!=ordenado[i]){ + for (int i = 4; i >=aux; i--) { + if(calificacion.get(1)!=ordenado[i]){ calificacion.add(ordenado[i]); } } @@ -179,15 +243,12 @@ public class MyClass { calificacion.add(1); //Si hay un AS, se coloca directamente después de la //calificación - if(indiceDe(1, valores)!=-1){ + int[] ordenado = ordenarMano(mano); + + if(ordenado[0]==0){ calificacion.add(14); - //si ya se encontró el 1, entonces este ya no se - //debe agregar al array de calificacion - aux=1; } - int[] ordenado = ordenarMano(mano); - for (int i = 4; i >= aux; i--) { calificacion.add(ordenado[i]); } @@ -223,22 +284,22 @@ public class MyClass { String valorString= mano[i].valor; if(valorString.equals("A") || valorString.equals("a")){ - ordenado[i]=1; + ordenado[i]=0; } else if(valorString.equals("T") || valorString.equals("t")){ - ordenado[i]=10; + ordenado[i]=9; } else if(valorString.equals("J") || valorString.equals("j")){ - ordenado[i]=11; + ordenado[i]=10; } else if(valorString.equals("Q") || valorString.equals("q")){ - ordenado[i]=12; + ordenado[i]=11; } else if(valorString.equals("K") || valorString.equals("k")){ - ordenado[i]=13; + ordenado[i]=12; } else{ - ordenado[i] = Integer.parseInt(valorString); + ordenado[i] = Integer.parseInt(valorString)-1; } } Arrays.sort(ordenado); @@ -493,21 +554,21 @@ public class MyClass { List jugadas = new ArrayList(); Carta[] m1 = new Carta[5]; - m1[0] = new Carta("AD"); - m1[1] = new Carta("KD"); - m1[2] = new Carta("JD"); - m1[3] = new Carta("9D"); - m1[4] = new Carta("7D"); + m1[0] = new Carta("AH"); + m1[1] = new Carta("AD"); + m1[2] = new Carta("5D"); + m1[3] = new Carta("5D"); + m1[4] = new Carta("2D"); Carta[] m2 = new Carta[5]; - m2[0] = new Carta("AD"); - m2[1] = new Carta("KD"); - m2[2] = new Carta("JD"); - m2[3] = new Carta("9D"); - m2[4] = new Carta("7D"); + m2[0] = new Carta("5H"); + m2[1] = new Carta("5D"); + m2[2] = new Carta("2D"); + m2[3] = new Carta("2D"); + m2[4] = new Carta("AD"); - jugadas.add(m2); jugadas.add(m1); + jugadas.add(m2); String ganadores = mc.ganadores(jugadas); -- libgit2 0.26.0