From 7fe40518b56983ceff69f4043138dc539c844b57 Mon Sep 17 00:00:00 2001 From: JoseBaezx Date: Thu, 28 Apr 2022 16:40:19 -0400 Subject: [PATCH] Poker2 final 1.0 --- out/production/java-e005-poker-02/Carta.class | Bin 2402 -> 0 bytes out/production/java-e005-poker-02/Juego.class | Bin 6861 -> 0 bytes out/production/java-e005-poker-02/MyClass.class | Bin 2878 -> 0 bytes src/Carta.java | 25 +++++++++++++++++++++++-- src/Juego.java | 134 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------- src/MyClass.java | 13 ++++++++++++- 6 files changed, 152 insertions(+), 20 deletions(-) diff --git a/out/production/java-e005-poker-02/Carta.class b/out/production/java-e005-poker-02/Carta.class index c43fcd9..2fd278f 100644 Binary files a/out/production/java-e005-poker-02/Carta.class and b/out/production/java-e005-poker-02/Carta.class differ diff --git a/out/production/java-e005-poker-02/Juego.class b/out/production/java-e005-poker-02/Juego.class index 96a0714..dc175c3 100644 Binary files a/out/production/java-e005-poker-02/Juego.class and b/out/production/java-e005-poker-02/Juego.class differ diff --git a/out/production/java-e005-poker-02/MyClass.class b/out/production/java-e005-poker-02/MyClass.class index 5f6ba5a..6f15e68 100644 Binary files a/out/production/java-e005-poker-02/MyClass.class and b/out/production/java-e005-poker-02/MyClass.class differ diff --git a/src/Carta.java b/src/Carta.java index a0126df..7191743 100644 --- a/src/Carta.java +++ b/src/Carta.java @@ -1,5 +1,6 @@ import java.util.ArrayList; import java.util.List; +import java.util.Objects; public class Carta { private String valor; @@ -70,8 +71,8 @@ public class Carta { } public void paloAleatorio(){ - int max = 1; - int min = 4; + int max = 4; + int min = 1; int range = max - min + 1; int rand = (int)(Math.random() * range) + min; for (int i = 0; i < 1; i++) { @@ -90,4 +91,24 @@ public class Carta { } + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + Carta carta = (Carta) o; + return Objects.equals(valor, carta.valor) && Objects.equals(palo, carta.palo); + } + + @Override + public int hashCode() { + return Objects.hash(valor, palo); + } + + @Override + public String toString() { + return "Carta{" + + "valor='" + valor + '\'' + + ", palo='" + palo + '\'' + + '}'; + } } diff --git a/src/Juego.java b/src/Juego.java index 51653d2..4f69fc6 100644 --- a/src/Juego.java +++ b/src/Juego.java @@ -1,22 +1,41 @@ -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; +import org.w3c.dom.ls.LSOutput; + +import java.util.*; public class Juego { List valores = null; public Juego() { } - public String mano1VsMano2(int carta1, int carta2) { - if(carta1 > carta2){ - return "1"; - }else if(carta1 < carta2){ - return "2"; - } else if (carta1==carta2) { - return "SON IGUALES"; - } - return "NO HAY GANADOR"; + + public int mano1VsMano2(int carta1, int carta2) { + if (carta1 > carta2) { + return 1; + } else if (carta1 < carta2) { + return 2; + } else if (carta1 == carta2) { + return 0; + } + return 0; } + + public void desempateCarta(int cartas1, int cartas2) { + if (cartas1 > cartas2) { + System.out.println("1"); + } + System.out.println("2"); + } + + public int sumaManoValores(Carta[] cartas) { + List valores = new ArrayList<>(); + int contador = 0; + for (Carta c : cartas) { + valores.add(convertirValorStringAInteger(c.getValor())); + contador++; + } + return contador; + } + public int juegosPosibles(List cartas) { boolean siguiente = true; if (escaleraColor(cartas)) { @@ -31,7 +50,7 @@ public class Juego { } if (siguiente && full(cartas)) { siguiente = false; - System.out.println("ESCALERA COLOR"); + System.out.println("FULL"); return 7; } if (siguiente && escalera(cartas)) { @@ -303,13 +322,13 @@ public class Juego { int valor = 0; if (carta.equals("A")) { return valor = 1; - }else if (carta.equals("T")) { + } else if (carta.equals("T")) { return valor = 10; - }else if (carta.equals("J")) { + } else if (carta.equals("J")) { return valor = 11; - }else if (carta.equals("Q")) { + } else if (carta.equals("Q")) { return valor = 12; - }else if (carta.equals("K")) { + } else if (carta.equals("K")) { return valor = 13; } return Integer.valueOf(carta); @@ -324,5 +343,86 @@ public class Juego { return value; } + public int isRepetidos(Carta[] m1, Carta[] m2) { + Carta[] m3 = new Carta[10]; + Set cartas = new HashSet<>(); + int c = 5; + for (int i = 0; i < m3.length; i++) { + if (i < 5) { + //m3[i]=m1[i]; + cartas.add(m1[i]); + } else if (i > 4) { + //m3[i]=m1[c]; + cartas.add(m2[i - c]); + //c++; + } + } + return cartas.size(); + + } + + public Carta[] cambiarMano1(Carta[] m1) { + int max = 3; + int min = 1; + int range = max - min + 1; + int rand = (int) (Math.random() * range) + min; + if (rand == 1) { + return m1 = new Carta[]{ + new Carta("AS"), + new Carta("2S"), + new Carta("4S"), + new Carta("6S"), + new Carta("8S")}; + } else if (rand == 2) { + return m1 = new Carta[]{ + new Carta("KH"), + new Carta("2H"), + new Carta("5C"), + new Carta("TS"), + new Carta("JS")}; + }else { + return m1 = new Carta[]{ + new Carta("JC"), + new Carta("2H"), + new Carta("5S"), + new Carta("TC"), + new Carta("JS")}; + } + + + } + + + public Carta[] cambiarMano2(Carta[] m2) { + int max = 3; + int min = 1; + int range = max - min + 1; + int rand = (int) (Math.random() * range) + min; + if (rand == 1) { + return m2 = new Carta[]{ + new Carta("AK"), + new Carta("TC"), + new Carta("5H"), + new Carta("TH"), + new Carta("JH")}; + }else if(rand == 2){ + return m2 = new Carta[]{ + new Carta("AC"), + new Carta("6C"), + new Carta("7H"), + new Carta("8H"), + new Carta("9H")}; + }else { + return m2 = new Carta[]{ + new Carta("TH"), + new Carta("9C"), + new Carta("5"), + new Carta("TH"), + new Carta("JH")}; + } + + + } } + diff --git a/src/MyClass.java b/src/MyClass.java index 55be4d8..af1de65 100644 --- a/src/MyClass.java +++ b/src/MyClass.java @@ -38,6 +38,12 @@ public class MyClass { m2[3] = new Carta(); m2[4] = new Carta(); + System.out.println(j.isRepetidos(m1,m2)); + if(j.isRepetidos(m1,m2) < 10){ + m1=j.cambiarMano1(m1); + m2=j.cambiarMano2(m2); + } + jugadas.add(m1); jugadas.add(m2); String ganadores = mc.ganadores(jugadas); @@ -47,7 +53,12 @@ public class MyClass { int valor = j.juegosPosibles(Arrays.asList(m1[0], m1[1] , m1[2] , m1[3] , m1[4] )); System.out.print("Jugada 2 = "); int valor2 = j.juegosPosibles(Arrays.asList(m2[0], m2[1] , m2[2] , m2[3] , m2[4] )); - System.out.println("GANADOR JUGADA # "+ j.mano1VsMano2(valor,valor2)); + + //Si son iguales realiza un desempate + if(j.mano1VsMano2(valor,valor2) == 0){ + System.out.print("Desempate Gana jugada # "); + j.desempateCarta(j.sumaManoValores(m1),j.sumaManoValores(m2)); + } } } \ No newline at end of file -- libgit2 0.26.0