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 @@ - + - + + + + - + - - + + - + - - - - - - - - - - - - - + - - + + - - + + - - + + - - + + - + \ 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)) +} +