diff --git a/.idea/modules.xml b/.idea/modules.xml
index de24c65..c0b1557 100644
--- a/.idea/modules.xml
+++ b/.idea/modules.xml
@@ -2,7 +2,7 @@
-
+
\ No newline at end of file
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index 7bbcf81..775abb2 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -1,13 +1,20 @@
-
+
-
+
+
+
+
@@ -15,17 +22,17 @@
-
+
-
-
+
+
-
+
@@ -33,42 +40,30 @@
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
\ No newline at end of file
diff --git a/Poker.iml b/Poker02.iml
similarity index 100%
rename from Poker.iml
rename to Poker02.iml
diff --git a/out/production/Poker/Poker/PokerKt.class b/out/production/Poker/Poker/PokerKt.class
deleted file mode 100644
index 97012e9..0000000
Binary files a/out/production/Poker/Poker/PokerKt.class and /dev/null differ
diff --git a/out/production/Poker/META-INF/Poker.kotlin_module b/out/production/Poker02/META-INF/Poker02.kotlin_module
similarity index 66%
rename from out/production/Poker/META-INF/Poker.kotlin_module
rename to out/production/Poker02/META-INF/Poker02.kotlin_module
index 9b8711a..be59f28 100644
Binary files a/out/production/Poker/META-INF/Poker.kotlin_module and b/out/production/Poker02/META-INF/Poker02.kotlin_module differ
diff --git a/out/production/Poker02/Poker02/Poker02Kt$main$$inlined$compareBy$1.class b/out/production/Poker02/Poker02/Poker02Kt$main$$inlined$compareBy$1.class
new file mode 100644
index 0000000..53e0e84
Binary files /dev/null and b/out/production/Poker02/Poker02/Poker02Kt$main$$inlined$compareBy$1.class differ
diff --git a/out/production/Poker/Poker/PokerKt$main$$inlined$compareBy$1.class b/out/production/Poker02/Poker02/Poker02Kt$main$$inlined$compareBy$2.class
similarity index 94%
rename from out/production/Poker/Poker/PokerKt$main$$inlined$compareBy$1.class
rename to out/production/Poker02/Poker02/Poker02Kt$main$$inlined$compareBy$2.class
index e734924..8133b00 100644
Binary files a/out/production/Poker/Poker/PokerKt$main$$inlined$compareBy$1.class and b/out/production/Poker02/Poker02/Poker02Kt$main$$inlined$compareBy$2.class differ
diff --git a/out/production/Poker02/Poker02/Poker02Kt.class b/out/production/Poker02/Poker02/Poker02Kt.class
new file mode 100644
index 0000000..a5e2ac2
Binary files /dev/null and b/out/production/Poker02/Poker02/Poker02Kt.class differ
diff --git a/out/production/Poker/Poker/jugadas.class b/out/production/Poker02/Poker02/mazojugado.class
similarity index 87%
rename from out/production/Poker/Poker/jugadas.class
rename to out/production/Poker02/Poker02/mazojugado.class
index 60a79e9..3ad2f9f 100644
Binary files a/out/production/Poker/Poker/jugadas.class and b/out/production/Poker02/Poker02/mazojugado.class differ
diff --git a/out/production/Poker/Poker/Paloss.class b/out/production/Poker02/Poker02/paloss.class
similarity index 94%
rename from out/production/Poker/Poker/Paloss.class
rename to out/production/Poker02/Poker02/paloss.class
index ee155b4..c0c34f9 100644
Binary files a/out/production/Poker/Poker/Paloss.class and b/out/production/Poker02/Poker02/paloss.class differ
diff --git a/src/Poker/Poker.kt b/src/Poker/Poker.kt
deleted file mode 100644
index 7718332..0000000
--- a/src/Poker/Poker.kt
+++ /dev/null
@@ -1,79 +0,0 @@
-package Poker
-
-import Poker.Paloss.palos
-
-object Paloss {
- val palos = arrayOf(
- 'S','D','H','C'
- )
-}
-data class jugadas(val valor: Char, val palos: Char)
-
-
-
-
-fun esjugada(resultado : List): String{
-
- var sonpalos = arrayOf(0,0,0,0)
- var vecesplay = arrayOf(0,0,0,0,0,0,0,0,0,0,0,0,0)
- var result: String = "NADA"
-
- for (paloss in resultado){
- when(paloss.palos){
- 'S' -> sonpalos[1] 'C' -> sonpalos[2] 'D' -> sonpalos[3] 'H' -> sonpalos[4]
- }
- }
- for (valores in resultado){
- when(valores.valor){
- 'A' -> vecesplay[1] '2' -> vecesplay[2] '3' -> vecesplay[3] '4' -> vecesplay[4] '5' -> vecesplay[5] '6' -> vecesplay[6] '7' -> vecesplay[7] '8' -> vecesplay[8] '9' -> vecesplay[9] 'T' -> vecesplay[10] 'J' -> vecesplay[11] 'Q' -> vecesplay[12] 'K' -> vecesplay[13]
- }
- }
-
- for (palos in sonpalos){
- if (palos == 5){
- result = "COLOR"
- for (position in vecesplay.indices){
- result = if (position < 9){
- if (1 == vecesplay[position] && 1 == vecesplay[position+1] && 1 == vecesplay[position+2] && 1 == vecesplay[position+3] && 1 == vecesplay[position+4]) "ESCALERA COLOR" else continue
- }else if (position == 9){
- if (1 == vecesplay[position] && 1 == vecesplay[position+1] && 1 == vecesplay[position+2] && 1 == vecesplay[position+3] && 1 == vecesplay[0]) "ESCALERA COLOR REAL" else break
- }else break
- }
- }
- }
-
- var trio = false
- var doble = 0
-
- for (position in vecesplay.indices) {
- if (vecesplay[position] == 5){
- result = "POKER"
- break
- } else {
- if (vecesplay[position] == 4) trio = true
- if (vecesplay[position] == 3) doble++
- result = if ((doble == 2) && trio) "FULL"
- else if ((doble == 1) && trio) "TRIO"
- else if (doble == 1) "PAREJA"
- else if (doble == 2) "PAREJA DOBLE"
- else "ESCALERA COLOR"
- }
- }
-
- return result
-}
-fun main() {
- val jugada = arrayListOf()
-
-
- var mesa : String
-
- mesa = readLine()!!.toString().toUpperCase()
-
-
- jugada.add(jugadas(valor = mesa[0], palos = mesa[1])) || jugada.add(jugadas(valor = mesa[2], palos = mesa[3])) || jugada.add(jugadas(valor = mesa[4], palos = mesa[5])) || jugada.add(jugadas(valor = mesa[6], palos = mesa[7])) || jugada.add(jugadas(valor = mesa[8], palos = mesa[9]))
- println("Ingrese su baraja: ")
- val resultado = jugada.sortedWith(compareBy {it.valor})
- println("${esjugada(resultado)}")
-
-}
\ No newline at end of file
diff --git a/src/Poker/Preguntas b/src/Poker/Preguntas
deleted file mode 100644
index 10d04d9..0000000
--- a/src/Poker/Preguntas
+++ /dev/null
@@ -1,33 +0,0 @@
- PREGUNTAS
-
- 2.1. Si se mezclan y reparten cartas al azar: ¿Cuál es la probabilidad de obtener una escalera de color?
- La probabilidad de que salga una escalera de color es de 36 entre 2.598.960.
- Porcentualmente es del 0.0015%.
-
- 2.2. Si se mezclan y reparten cartas al azar: ¿Cuál es la probabilidad de obtener un poker?
- La probabilidad de obtener poker de 624 entre 2.598.960.
- Porcentualmente es del 0.024%.
-
- 2.3. Si se mezclan y reparten cartas al azar: ¿Cuál es la probabilidad de obtener un full house?
- La probabilidad de obtener full house es de 3.744 entre 2.598.960.
- Porcentualmente es del 0.14%.
-
- 2.4. Si se mezclan y reparten cartas al azar: ¿Cuál es la probabilidad de obtener una escalera?
- La probabilidad de obtener una escalera es de 10.200 entre 2.598.960.
- Porcentualmente es del 0.39%.
-
- 2.5. Si se mezclan y reparten cartas al azar: ¿Cuál es la probabilidad de obtener un trio?
- La probabilidad de obtener un trio en una jugada es de 54.912 entre 2.598.960.
- Porcentualmente es del 2.11%.
-
- 2.6. Si se mezclan y reparten cartas al azar: ¿Cuál es la probabilidad de obtener un par doble?
- La probabilidad de obtener un par doble es de 123.552 entre 2.598.960.
- Porcentualmente es del 4.75%.
-
- 2.7. Si se mezclan y reparten cartas al azar: ¿Cuál es la probabilidad de obtener un par?
- La probabilidad de obtener un par simple es de 1.098.240 entre 2.598.960.
- Porcentualmente es del 42.25%.
-
- 2.8. Si se mezclan y reparten cartas al azar: ¿Cuál es la probabilidad de no obtener ninguna de las jugadas anteriores?
- La probabilidad de no tener ninguna de las jugadas anteriores es de 1.302.540 entre 2.598.960.
- Porcentualemente es del 50.3345%.
\ No newline at end of file
diff --git a/src/Poker02/Poker02.kt b/src/Poker02/Poker02.kt
new file mode 100644
index 0000000..200c62c
--- /dev/null
+++ b/src/Poker02/Poker02.kt
@@ -0,0 +1,517 @@
+package Poker02
+object paloss {
+ val palos = arrayOf(
+ 'S','D','H','C'
+ )
+}
+
+
+data class mazojugado(val valor: Char, val palo: Char)
+
+fun mejormazo(jugada1 : List, jugada2 : List, tipo1 :String, tipo2 : String) : String{
+ var ganador : String = ""
+ var palosusados = arrayOf(0,0,0,0)
+ var valordelmazovv1 = arrayOf(0,0,0,0,0,0,0,0,0,0,0,0,0)
+ for (palos in jugada1){
+ when(palos.palo){
+ 'S' -> palosusados[0]++ 'C' -> palosusados[1]++ 'D' -> palosusados[2]++ 'H' -> palosusados[3]++ }
+ }
+ for (valores in jugada1){
+ when(valores.valor){
+ 'A' -> valordelmazovv1[0]++ '2' -> valordelmazovv1[1]++ '3' -> valordelmazovv1[2]++ '4' -> valordelmazovv1[3]++ '5' -> valordelmazovv1[4]++ '6' -> valordelmazovv1[5]++ '7' -> valordelmazovv1[6]++ '8' -> valordelmazovv1[7]++ '9' -> valordelmazovv1[8]++ 'T' -> valordelmazovv1[9]++ 'J' -> valordelmazovv1[10]++ 'Q' -> valordelmazovv1[11]++ 'K' -> valordelmazovv1[12]++ }
+ }
+ var palosusados2 = arrayOf(0,0,0,0)
+ var valordelmazo = arrayOf(0,0,0,0,0,0,0,0,0,0,0,0,0)
+ for (palos in jugada2){
+ when(palos.palo){
+ 'S' -> palosusados2[0]++ 'C' -> palosusados2[1]++ 'D' -> palosusados2[2]++ 'H' -> palosusados2[3]++
+ }
+ }
+ for (valores in jugada2){
+ when(valores.valor){
+ 'A' -> valordelmazo[0]++ '2' -> valordelmazo[1]++ '3' -> valordelmazo[2]++ '4' -> valordelmazo[3]++ '5' -> valordelmazo[4]++ '6' -> valordelmazo[5]++ '7' -> valordelmazo[6]++ '8' -> valordelmazo[7]++ '9' -> valordelmazo[8]++ 'T' -> valordelmazo[9]++ 'J' -> valordelmazo[10]++ 'Q' -> valordelmazo[11]++ 'K' -> valordelmazo[12]++
+ }
+ }
+ val jugadas: ArrayList = arrayListOf(0,0,0,0,0,0,0,0,0,0)
+ when(tipo1){
+ "ESCALERA REAL" -> jugadas[0]++ "ESCALERA COLOR" -> jugadas[1]++ "POKER" -> jugadas[2]++ "FULL HOUSE" -> jugadas[3]++ "COLOR" -> jugadas[4]++ "ESCALERA" -> jugadas[5]++ "TRIO" -> jugadas[6]++ "DOBLE PAREJA" -> jugadas[7]++ "PAREJA" -> jugadas[8]++ "CARTA ALTA" -> jugadas[9]++
+ }
+ when(tipo2){
+ "ESCALERA REAL" -> jugadas[0]++ "ESCALERA COLOR" -> jugadas[1]++ "POKER" -> jugadas[2]++ "FULL HOUSE" -> jugadas[3]++ "COLOR" -> jugadas[4]++ "ESCALERA" -> jugadas[5]++ "TRIO" -> jugadas[6]++ "DOBLE PAREJA" -> jugadas[7]++ "PAREJA" -> jugadas[8]++ "CARTA ALTA" -> jugadas[9]++
+ }
+ var quiengano = -1
+ var segundo = 0
+ loop@ for(casos in jugadas.indices){
+ when(jugadas[casos]) {
+ 1->{
+ quiengano = casos
+ ganador = when(quiengano){
+ 0 -> "ESCALERA REAL" 1 -> "ESCALERA COLOR" 2 -> "POKER" 3 -> "FULL HOUSE" 4 -> "COLOR" 5 -> "ESCALERA" 6 -> "TRIO" 7 -> "DOBLE PAREJA" 8 -> "PAREJA" 9 -> "CARTA ALTA"
+ else -> "NADA"
+ }
+ break@loop
+ }
+ 2->{
+ when(casos){
+ 0 -> {
+ ganador = "Mazos iguales"
+ }
+ 1 ->{
+ var ultimo = 1
+ var mazo1 = 0
+ var mazo2 = 0
+ loopjugado1@ for (indice in valordelmazovv1.indices) {
+ if (valordelmazovv1[indice] == 1) {
+ if (ultimo == 5) {
+ mazo1 = indice
+ break@loopjugado1
+ }
+ ultimo++
+ }
+ }
+ ultimo = 1
+ println()
+ loopjugado2@ for (indice in valordelmazo.indices){
+ if (valordelmazo[indice] == 1) {
+ if (ultimo == 5){
+ mazo2 = indice
+ break@loopjugado2
+ }
+ ultimo++
+ }
+ }
+
+ ganador = if (mazo1 == 0 && mazo2 != 0){
+ "Mazo 1"
+ }else if (mazo2 == 0 && mazo1 != 0) {
+ "Mazo 2"
+ }else if (mazo1 == mazo2){
+ "Mazos iguales"
+ }else if (mazo1 > mazo2) {
+ "Mazo 1"
+ } else "Mazo 2"
+ }
+ 2 ->{
+ var ultimo = 0
+ var mazo1 = 0
+ var mazo2 = 0
+ for (indice in valordelmazovv1.indices) {
+ if (valordelmazovv1[indice] == 1) {
+ if (ultimo == 5) {
+ mazo1 = indice
+ }
+ ultimo++
+ }
+ }
+
+ ultimo = 0
+
+ for (indice in valordelmazo.indices){
+ if (valordelmazo[indice] == 1) {
+ if (ultimo == 5){
+ mazo2 = indice
+ }
+ ultimo++
+ }
+ }
+ ganador = if (mazo1 == 0 && mazo2 != 0){
+ "Mazo 1"
+ }else if (mazo2 == 0 && mazo1 != 0) {
+ "Mazo 2"
+ }else if (mazo1 == mazo2){
+ "Mazos iguales"
+ }else if (mazo1 > mazo2) {
+ "Mazo 1"
+ } else "Mazo 2"
+ }
+ 3 -> {
+ var trio1 = -1
+
+ for (indice in valordelmazovv1.indices) {
+ if (valordelmazovv1[indice] == 3) {
+ trio1 = indice
+ }
+ }
+ var trio2 = -1
+
+ for (indice in valordelmazo.indices) {
+ if (valordelmazo[indice] == 3) {
+ trio2 = indice
+ }
+ }
+ ganador = if (trio1 == 0 && trio2 != 0) {
+ "Mazo 1"
+ } else if (trio2 == 0 && trio1 != 0) {
+ "Mazo 2"
+ } else if (trio1 == trio2) {
+ "Mazos iguales"
+ } else if (trio1 > trio2) {
+ "Mazo 1"
+ } else "Mazo 2"
+ }
+ 4 ->{
+ var ultimo = 1
+ var mazo1 = 0
+ var mazo2 = 0
+ loopjugado1@ for (indice in valordelmazovv1.indices) {
+ if (valordelmazovv1[indice] == 1) {
+ if (ultimo == 5 || indice == 0) {
+ mazo1 = indice
+ break@loopjugado1
+ }
+ ultimo++
+ }
+ }
+ ultimo = 1
+ println()
+ loopjugado2@ for (indice in valordelmazo.indices){
+ if (valordelmazo[indice] == 1) {
+ if (ultimo == 5 || indice == 0){
+ mazo2 = indice
+ break@loopjugado2
+ }
+ ultimo++
+ }
+ }
+ println("mazo1 = $mazo1 mazo2 = $mazo2")
+ ganador = if (mazo1 == 0 && mazo2 != 0){
+ "Mazo 1"
+ }else if (mazo2 == 0 && mazo1 != 0) {
+ "Mazo 2"
+ }else if (mazo1 == mazo2){
+ "Mazos iguales"
+ }else if (mazo1 > mazo2) {
+ "Mazo 1"
+ } else "Mazo 2"
+ }
+ 5 ->{
+ var ultimo = 1
+ var mazo1 = 0
+ var mazo2 = 0
+ loopjugado1@ for (indice in valordelmazovv1.indices) {
+ if (valordelmazovv1[indice] == 1) {
+ if (ultimo == 5 || (indice == 0 && valordelmazovv1[9] == 1 && valordelmazovv1[10] == 1 && valordelmazovv1[11] == 1 && valordelmazovv1[12] == 1)){
+ mazo1 = indice
+ break@loopjugado1
+ }
+ ultimo++
+ }
+ }
+ ultimo = 1
+ println()
+ loopjugado2@ for (indice in valordelmazo.indices){
+ if (valordelmazo[indice] == 1) {
+ if (ultimo == 5 || (indice == 0 && valordelmazovv1[9] == 1 && valordelmazovv1[10] == 1 && valordelmazovv1[11] == 1 && valordelmazovv1[12] == 1)){
+ mazo2 = indice
+ break@loopjugado2
+ }
+ ultimo++
+ }
+ }
+ println("mazo1 = $mazo1 mazo2 = $mazo2")
+ ganador = if (mazo1 == 0 && mazo2 != 0){
+ "Mazo 1"
+ }else if (mazo2 == 0 && mazo1 != 0) {
+ "Mazo 2"
+ }else if (mazo1 == mazo2){
+ "Mazos iguales"
+ }else if (mazo1 > mazo2) {
+ "Mazo 1"
+ } else "Mazo 2"
+ }
+ 6 ->{
+ var trio1 = -1
+ for (indice in valordelmazovv1.indices) {
+ if (valordelmazovv1[indice] == 3) {
+ trio1 = indice
+ }
+ }
+ var trio2 = -1
+ for (indice in valordelmazo.indices) {
+ if (valordelmazo[indice] == 3) {
+ trio2 = indice
+ }
+ }
+ ganador = if (trio1 == 0 && trio2 != 0) {
+ "Mazo 1"
+ } else if (trio2 == 0 && trio1 != 0) {
+ "Mazo 2"
+ } else if (trio1 == trio2) {
+ "Mazos iguales"
+ } else if (trio1 > trio2) {
+ "Mazo 1"
+ } else "Mazo 2"
+ }
+ 7 ->{
+ var duoone = -1
+ var duotwo = -1
+ loopintern@for (indice in valordelmazovv1.indices){
+ if (segundo == 1){
+ if (valordelmazovv1[indice] == 2){
+ duotwo = indice
+ segundo = 0
+ break@loopintern
+ }
+ }
+ if (valordelmazovv1[indice] == 2 && segundo == 0){
+ duoone = indice
+ segundo = 1
+ }
+ }
+ var duoone2 = -1
+ var duotwo2 = -1
+ segundo = 0
+ loopintern@for (indice in valordelmazo.indices){
+ if (segundo == 1){
+ if (valordelmazo[indice] == 2){
+ duotwo2 = indice
+ segundo = 0
+ break@loopintern
+ }
+ }
+ if (valordelmazo[indice] == 2 && segundo == 0){
+ duoone2 = indice
+ segundo = 1
+ }
+ }
+ ganador = if (duoone == 0 && duoone2 != 0) {
+ "Mazo 1"
+ } else if (duoone2 == 0 && duoone != 0) {
+ "Mazo 2"
+ } else if (duoone == duoone2) {
+ when {
+ duotwo == duotwo2 -> {
+ "Mazos iguales"
+ }
+ duotwo > duotwo2 -> {
+ "Mazo 1"
+ }
+ else -> {
+ "Mazo 2"
+ }
+ }
+ } else if (duoone > duoone2) {
+ "Mazo 1"
+ } else "Mazo 2"
+ }
+ 8 ->{
+ var ultimo = 1
+ var mazo1 = 0
+ var mazo2 = 0
+ var duoone = -1
+
+ var segundo = false
+ for (indice in valordelmazovv1.indices){
+ if (valordelmazovv1[indice] == 2){
+ duoone = indice
+ ultimo = 2
+ }
+ }
+ loopjugado1@ for (indice in valordelmazovv1.indices) {
+ if (valordelmazovv1[indice] == 1) {
+ if (ultimo == 4 || (indice == 0)){
+ mazo1 = if (indice == 0) 14 else indice
+ break@loopjugado1
+ }
+ ultimo++
+ }
+ }
+ ultimo = 1
+
+ var duoone2 = -1
+ for (indice in valordelmazo.indices){
+ if (valordelmazo[indice] == 2){
+ duoone2 = indice
+ ultimo = 2
+ }
+ }
+ loopjugado2@ for (indice in valordelmazo.indices){
+ if (valordelmazo[indice] == 1) {
+ if (ultimo == 4 || (indice == 0)){
+ mazo2 = if (indice == 0) 14 else indice
+ break@loopjugado2
+ }
+ ultimo++
+ }
+ }
+
+ ganador = if (duoone == 0 && duoone2 != 0) {
+ "Mazo 1"
+ } else if (duoone2 == 0 && duoone != 0) {
+ "Mazo 2"
+ } else if (duoone == duoone2) {
+ when {
+ mazo1 > mazo2 -> "Mazo 1 "
+ mazo1 < mazo2 -> "Mazo 2 "
+ else -> "Mazos iguales"
+ }
+ } else if (duoone > duoone2) {
+ "Mazo 1"
+ } else "Mazo 2"
+ }
+ 9 ->{
+ var ultimo = 1
+ var mazo1 = 0
+ var mazo2 = 0
+ loopjugado1@ for (indice in valordelmazovv1.indices) {
+ if (valordelmazovv1[indice] == 1) {
+ if (ultimo == 5 || (indice == 0)){
+ mazo1 = indice
+ break@loopjugado1
+ }
+ ultimo++
+ }
+ }
+ ultimo = 1
+ println()
+ loopjugado2@ for (indice in valordelmazo.indices){
+ if (valordelmazo[indice] == 1) {
+ if (ultimo == 5 || (indice == 0)){
+ mazo2 = indice
+ break@loopjugado2
+ }
+ ultimo++
+ }
+ }
+ println("mazo1 = $mazo1 mazo2 = $mazo2")
+ ganador = if (mazo1 == 0 && mazo2 != 0){
+ "Mazo 1"
+ }else if (mazo2 == 0 && mazo1 != 0) {
+ "Mazo 2"
+ }else if (mazo1 == mazo2){
+ "Mazos iguales"
+ }else if (mazo1 > mazo2) {
+ "Mazo 1"
+ } else "Mazo 2"
+ }
+
+ else ->{
+ "ERROR 5: JUGADA NO ENCONTRADA"
+ }
+ }
+ }
+ }
+ }
+ return ganador
+}
+fun reconocerjugada(jugadapa : List): String{
+
+ var palosutilizados = arrayOf(0,0,0,0)
+ var mazosutilizados = arrayOf(0,0,0,0,0,0,0,0,0,0,0,0,0)
+ var result = "NADA"
+ for (palos in jugadapa){
+ when(palos.palo){
+ 'S' -> palosutilizados[0]++ 'C' -> palosutilizados[1]++ 'D' -> palosutilizados[2]++ 'H' -> palosutilizados[3]++
+ }
+ }
+ for (valores in jugadapa){
+ when(valores.valor){
+ 'A' -> mazosutilizados[0]++ '2' -> mazosutilizados[1]++ '3' -> mazosutilizados[2]++ '4' -> mazosutilizados[3]++ '5' -> mazosutilizados[4]++ '6' -> mazosutilizados[5]++ '7' -> mazosutilizados[6]++ '8' -> mazosutilizados[7]++ '9' -> mazosutilizados[8]++ 'T' -> mazosutilizados[9]++ 'J' -> mazosutilizados[10]++ 'Q' -> mazosutilizados[11]++ 'K' -> mazosutilizados[12]++
+ }
+ }
+ var colornm =true
+ for (palo in palosutilizados){
+ if (palo == 5){
+ result = "COLOR"
+ colornm = false
+ for (position in mazosutilizados.indices){
+ result = if (position < 9){
+ if (1 == mazosutilizados[position] && 1 == mazosutilizados[position+1] && 1 == mazosutilizados[position+2] && 1 == mazosutilizados[position+3] && 1 == mazosutilizados[position+4]) "ESCALERA COLOR" else continue
+ }else if (position == 9){
+ if (1 == mazosutilizados[position] && 1 == mazosutilizados[position+1] && 1 == mazosutilizados[position+2] && 1 == mazosutilizados[position+3] && 1 == mazosutilizados[0]) "ESCALERA REAL" else break
+ }else break
+ }
+ }
+ }
+ if (colornm) {
+ var trio = false
+ var doblenms = 0
+ for (position in mazosutilizados.indices) {
+ if (mazosutilizados[position] == 4) {
+ result = "POKER"
+ break
+ } else if (mazosutilizados[position] == 1 && position <= 9) {
+ if (position < 9) {
+ if (1 == mazosutilizados[position] && 1 == mazosutilizados[position + 1] && 1 == mazosutilizados[position + 2] && 1 == mazosutilizados[position + 3] && 1 == mazosutilizados[position + 4]) {
+ result = "ESCALERA"
+ break
+ } else {
+ continue
+ }
+ } else if (position == 9) {
+ if (1 == mazosutilizados[position] && 1 == mazosutilizados[position + 1] && 1 == mazosutilizados[position + 2] && 1 == mazosutilizados[position + 3] && 1 == mazosutilizados[0]) {
+ result = "ESCALERA FIGURAS"
+ break
+ } else continue
+ } else continue
+ }
+ else {
+ if (mazosutilizados[position] == 3) trio = true
+ if (mazosutilizados[position] == 2) doblenms++
+ result = if ((doblenms == 1) && trio) "FULL HOUSE"
+ else if ((doblenms == 0) && trio) "TRIO"
+ else if (doblenms == 1) "PAREJA"
+ else if (doblenms == 2) "DOBLE PAREJA"
+ else "CARTA ALTA"
+ }
+ }
+ }
+ return result
+}
+fun escalerinha(mazoenmesanm: String) : Boolean{
+ var escorrecto = false
+ for (caracteres in 0..4 step 2){
+ for (caracteresRepite in caracteres+2..8 step 2){
+ if ((mazoenmesanm[caracteres] == mazoenmesanm[caracteresRepite]) && (mazoenmesanm[caracteres+1] == mazoenmesanm[caracteresRepite+1])){
+ escorrecto = true
+ }
+ }
+ }
+ return escorrecto
+}
+fun valido(cartasenlamesa : String) : Boolean{
+ var result = true
+ if (cartasenlamesa.length == 10 && !escalerinha(cartasenlamesa)) {
+ for (indice in 1..9 step 2) {
+ result = !( cartasenlamesa[indice] == paloss.palos[0] || cartasenlamesa[indice] == paloss.palos[1] || cartasenlamesa[indice] == paloss.palos[2] || cartasenlamesa[indice] == paloss.palos[3]) }
+ }else {
+ println("No forma ningun mazo, por favor, ingrese de nuevo: ")
+ }
+ return result
+}
+fun main() {
+ var cartasenlamesa : String
+ var leermesa : String
+ val jugada = arrayListOf()
+ val jugada2 = arrayListOf()
+
+ println("Mazo del primer jugador:")
+ do {
+ cartasenlamesa = readLine()!!.toString().toUpperCase()
+ }while (valido(cartasenlamesa))
+ println("Mazo del segundo jugador:")
+ do {
+ leermesa = readLine()!!.toString().toUpperCase()
+ }while (valido(leermesa))
+ jugada.add(mazojugado(valor = cartasenlamesa[0], palo = cartasenlamesa[1])) || jugada.add(mazojugado(valor = cartasenlamesa[2], palo = cartasenlamesa[3])) || jugada.add(mazojugado(valor = cartasenlamesa[4], palo = cartasenlamesa[5])) || jugada.add(mazojugado(valor = cartasenlamesa[6], palo = cartasenlamesa[7])) || jugada.add(mazojugado(valor = cartasenlamesa[8], palo = cartasenlamesa[9]))
+ jugada2.add(mazojugado(valor = leermesa[0], palo = leermesa[1])) || jugada2.add(mazojugado(valor = leermesa[2], palo = leermesa[3])) || jugada2.add(mazojugado(valor = leermesa[4], palo = leermesa[5])) || jugada2.add(mazojugado(valor = leermesa[6], palo = leermesa[7])) || jugada2.add(mazojugado(valor = leermesa[8], palo = leermesa[9]))
+ val jugadapa = jugada.sortedWith(compareBy {it.valor})
+ val segundaplay = jugada2.sortedWith(compareBy {it.valor})
+ println("Judada 1")
+ for (indice in jugadapa.indices)
+ {
+ print("${jugadapa[indice].valor}${jugadapa[indice].palo} ")
+ }
+ println("\nJudada 2")
+ for (indice in segundaplay.indices)
+ {
+ print("${segundaplay[indice].valor}${segundaplay[indice].palo} ")
+ }
+
+ val resultado1 = reconocerjugada(jugadapa)
+ val resultado2 = reconocerjugada(segundaplay)
+ println("\nMazo1 $cartasenlamesa es: $resultado1")
+ println("Mazo 2 $leermesa es: $resultado2")
+ println("El mejor mazo es: "+mejormazo(jugadapa, segundaplay, resultado1, resultado2))
+}
+