From 0c01a638ff5ae89d6e452eaa39015b2e9eb71a15 Mon Sep 17 00:00:00 2001 From: Miguel Do Carmo Date: Mon, 20 Apr 2020 19:15:41 -0400 Subject: [PATCH] Se agrego el proyecto 02 correspondiente a poker que es verificar mano ganadora --- out/production/tp-kotlin-miguel/CartaJugada.class | Bin 0 -> 2052 bytes out/production/tp-kotlin-miguel/META-INF/tp-kotlin-miguel.kotlin_module | Bin 58 -> 0 bytes out/production/tp-kotlin-miguel/PokerKt$main$$inlined$compareBy$1.class | Bin 0 -> 1799 bytes out/production/tp-kotlin-miguel/PokerKt$main$$inlined$compareBy$2.class | Bin 0 -> 1800 bytes out/production/tp-kotlin-miguel/PokerKt.class | Bin 0 -> 18664 bytes out/production/tp-kotlin-miguel/codigos/CartaJugada.class | Bin 2092 -> 0 bytes out/production/tp-kotlin-miguel/codigos/PokerKt$main$$inlined$compareBy$1.class | Bin 1847 -> 0 bytes out/production/tp-kotlin-miguel/codigos/PokerKt.class | Bin 7067 -> 0 bytes src/codigos/poker.kt | 566 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------------- 9 files changed, 511 insertions(+), 55 deletions(-) create mode 100644 out/production/tp-kotlin-miguel/CartaJugada.class create mode 100644 out/production/tp-kotlin-miguel/PokerKt$main$$inlined$compareBy$1.class create mode 100644 out/production/tp-kotlin-miguel/PokerKt$main$$inlined$compareBy$2.class create mode 100644 out/production/tp-kotlin-miguel/PokerKt.class delete mode 100644 out/production/tp-kotlin-miguel/codigos/CartaJugada.class delete mode 100644 out/production/tp-kotlin-miguel/codigos/PokerKt$main$$inlined$compareBy$1.class delete mode 100644 out/production/tp-kotlin-miguel/codigos/PokerKt.class diff --git a/out/production/tp-kotlin-miguel/CartaJugada.class b/out/production/tp-kotlin-miguel/CartaJugada.class new file mode 100644 index 0000000..819a9f5 Binary files /dev/null and b/out/production/tp-kotlin-miguel/CartaJugada.class differ diff --git a/out/production/tp-kotlin-miguel/META-INF/tp-kotlin-miguel.kotlin_module b/out/production/tp-kotlin-miguel/META-INF/tp-kotlin-miguel.kotlin_module index 3bac3b2..f49526c 100644 Binary files a/out/production/tp-kotlin-miguel/META-INF/tp-kotlin-miguel.kotlin_module and b/out/production/tp-kotlin-miguel/META-INF/tp-kotlin-miguel.kotlin_module differ diff --git a/out/production/tp-kotlin-miguel/PokerKt$main$$inlined$compareBy$1.class b/out/production/tp-kotlin-miguel/PokerKt$main$$inlined$compareBy$1.class new file mode 100644 index 0000000..7d75369 Binary files /dev/null and b/out/production/tp-kotlin-miguel/PokerKt$main$$inlined$compareBy$1.class differ diff --git a/out/production/tp-kotlin-miguel/PokerKt$main$$inlined$compareBy$2.class b/out/production/tp-kotlin-miguel/PokerKt$main$$inlined$compareBy$2.class new file mode 100644 index 0000000..9cf3f8f Binary files /dev/null and b/out/production/tp-kotlin-miguel/PokerKt$main$$inlined$compareBy$2.class differ diff --git a/out/production/tp-kotlin-miguel/PokerKt.class b/out/production/tp-kotlin-miguel/PokerKt.class new file mode 100644 index 0000000..4aa2698 Binary files /dev/null and b/out/production/tp-kotlin-miguel/PokerKt.class differ diff --git a/out/production/tp-kotlin-miguel/codigos/CartaJugada.class b/out/production/tp-kotlin-miguel/codigos/CartaJugada.class deleted file mode 100644 index 7970677..0000000 Binary files a/out/production/tp-kotlin-miguel/codigos/CartaJugada.class and /dev/null differ diff --git a/out/production/tp-kotlin-miguel/codigos/PokerKt$main$$inlined$compareBy$1.class b/out/production/tp-kotlin-miguel/codigos/PokerKt$main$$inlined$compareBy$1.class deleted file mode 100644 index b32836d..0000000 Binary files a/out/production/tp-kotlin-miguel/codigos/PokerKt$main$$inlined$compareBy$1.class and /dev/null differ diff --git a/out/production/tp-kotlin-miguel/codigos/PokerKt.class b/out/production/tp-kotlin-miguel/codigos/PokerKt.class deleted file mode 100644 index f1e32d5..0000000 Binary files a/out/production/tp-kotlin-miguel/codigos/PokerKt.class and /dev/null differ diff --git a/src/codigos/poker.kt b/src/codigos/poker.kt index bcfff08..fe34c93 100644 --- a/src/codigos/poker.kt +++ b/src/codigos/poker.kt @@ -1,4 +1,4 @@ -package codigos +import codigos.Const /************Data class es una clase especial de KOTLIN que * te abstrae de los getters y setters o implementa automaticamente**/ @@ -6,66 +6,78 @@ data class CartaJugada(val valor: Char, val palo: Char) fun main() { val jugada = arrayListOf() - println("Leer Jugada: ") - - var CartaJugadasMesa : String + val jugada2 = arrayListOf() + var CartajugadasMesa : String + var Carta2jugadasMesa : String + println("Primera jugada:") do { - CartaJugadasMesa = readLine()!!.toString().toUpperCase() - }while (Valido(CartaJugadasMesa)) - - + CartajugadasMesa = readLine()!!.toString().toUpperCase() + }while (valido(CartajugadasMesa)) + println("Segunda jugada:") + do { + Carta2jugadasMesa = readLine()!!.toString().toUpperCase() + }while (valido(Carta2jugadasMesa)) /*********Analiza Jugada************/ - jugada.add(CartaJugada(valor = CartaJugadasMesa[0], palo = CartaJugadasMesa[1])) - jugada.add(CartaJugada(valor = CartaJugadasMesa[2], palo = CartaJugadasMesa[3])) - jugada.add(CartaJugada(valor = CartaJugadasMesa[4], palo = CartaJugadasMesa[5])) - jugada.add(CartaJugada(valor = CartaJugadasMesa[6], palo = CartaJugadasMesa[7])) - jugada.add(CartaJugada(valor = CartaJugadasMesa[8], palo = CartaJugadasMesa[9])) + jugada.add(CartaJugada(valor = CartajugadasMesa[0], palo = CartajugadasMesa[1])) + jugada.add(CartaJugada(valor = CartajugadasMesa[2], palo = CartajugadasMesa[3])) + jugada.add(CartaJugada(valor = CartajugadasMesa[4], palo = CartajugadasMesa[5])) + jugada.add(CartaJugada(valor = CartajugadasMesa[6], palo = CartajugadasMesa[7])) + jugada.add(CartaJugada(valor = CartajugadasMesa[8], palo = CartajugadasMesa[9])) + jugada2.add(CartaJugada(valor = Carta2jugadasMesa[0], palo = Carta2jugadasMesa[1])) + jugada2.add(CartaJugada(valor = Carta2jugadasMesa[2], palo = Carta2jugadasMesa[3])) + jugada2.add(CartaJugada(valor = Carta2jugadasMesa[4], palo = Carta2jugadasMesa[5])) + jugada2.add(CartaJugada(valor = Carta2jugadasMesa[6], palo = Carta2jugadasMesa[7])) + jugada2.add(CartaJugada(valor = Carta2jugadasMesa[8], palo = Carta2jugadasMesa[9])) val jugadaOrdenada = jugada.sortedWith(compareBy {it.valor}) - print("JUGADA REALIZADA ${jugadaOrdenada[0].valor}${jugadaOrdenada[0].palo} ${jugadaOrdenada[1].valor}${jugadaOrdenada[1].palo} ${jugadaOrdenada[2].valor}${jugadaOrdenada[2].palo} ${jugadaOrdenada[3].valor}${jugadaOrdenada[3].palo} ${jugadaOrdenada[4].valor}${jugadaOrdenada[4].palo}") - - println(" es un/a ${analizaJugadaOrdenada(jugadaOrdenada)}") - + val jugada2Ordenada = jugada2.sortedWith(compareBy {it.valor}) + println("Judada 1") + for (indice in jugadaOrdenada.indices) + { + print("${jugadaOrdenada[indice].valor}${jugadaOrdenada[indice].palo} ") + } + println("\nJudada 2") + for (indice in jugada2Ordenada.indices) + { + print("${jugada2Ordenada[indice].valor}${jugada2Ordenada[indice].palo} ") + } + val resultado1 = analizaJugadaOrdenada(jugadaOrdenada) + val resultado2 = analizaJugadaOrdenada(jugada2Ordenada) + println("\narchivo Poker Jugada 1 Leida: $CartajugadasMesa es un/a $resultado1") + println("archivo Poker Jugada 2 Leida: $Carta2jugadasMesa es un/a $resultado2") + println("La mano ganadora es: "+jugadaGanadora(jugadaOrdenada, jugada2Ordenada, resultado1, resultado2)) } - -fun Valido(CartaJugadasMesa : String) : Boolean{ +fun valido(CartajugadasMesa : String) : Boolean{ var result = true - - - if (CartaJugadasMesa.length == 10 && !encuentraRepetidos(CartaJugadasMesa)) { + if (CartajugadasMesa.length == 10 && !encuentraRepetidos(CartajugadasMesa)) { for (indice in 1..9 step 2) { - result = !( CartaJugadasMesa[indice] == Const.PALOS[0] || - CartaJugadasMesa[indice] == Const.PALOS[1] || - CartaJugadasMesa[indice] == Const.PALOS[2] || - CartaJugadasMesa[indice] == Const.PALOS[3]) + result = !( CartajugadasMesa[indice] == Const.PALOS[0] || + CartajugadasMesa[indice] == Const.PALOS[1] || + CartajugadasMesa[indice] == Const.PALOS[2] || + CartajugadasMesa[indice] == Const.PALOS[3]) } - }else { println("INVALIDO.\nIngrese de nuevo: ") } - return result } fun encuentraRepetidos(cartasMesa: String) : Boolean{ var mantieneCorrecto = false for (caracteres in 0..4 step 2){ for (caracteresRepite in caracteres+2..8 step 2){ - if ((cartasMesa[caracteres] == cartasMesa[caracteresRepite]) && - (cartasMesa[caracteres+1] == cartasMesa[caracteresRepite+1])){ + if ((cartasMesa[caracteres] == cartasMesa[caracteresRepite]) && (cartasMesa[caracteres+1] == cartasMesa[caracteresRepite+1])){ mantieneCorrecto = true } } } return mantieneCorrecto } - fun analizaJugadaOrdenada(jugadaOrdenada : List): String{ var palosJugados = arrayOf(0,0,0,0) var valoresJugados = arrayOf(0,0,0,0,0,0,0,0,0,0,0,0,0) - var result: String = "NADA" - + var result = "NADA" for (palos in jugadaOrdenada){ when(palos.palo){ 'S' -> palosJugados[0]++ @@ -91,7 +103,7 @@ fun analizaJugadaOrdenada(jugadaOrdenada : List): String{ 'K' -> valoresJugados[12]++ } } -var noEsColor =true + var noEsColor =true for (palo in palosJugados){ if (palo == 5){ result = "COLOR" @@ -100,44 +112,488 @@ var noEsColor =true result = if (position < 9){ if (1 == valoresJugados[position] && 1 == valoresJugados[position+1] && 1 == valoresJugados[position+2] && 1 == valoresJugados[position+3] && 1 == valoresJugados[position+4]) "ESCALERA COLOR" else continue }else if (position == 9){ - if (1 == valoresJugados[position] && 1 == valoresJugados[position+1] && 1 == valoresJugados[position+2] && 1 == valoresJugados[position+3] && 1 == valoresJugados[0]) "ESCALERA COLOR REAL" else break + if (1 == valoresJugados[position] && 1 == valoresJugados[position+1] && 1 == valoresJugados[position+2] && 1 == valoresJugados[position+3] && 1 == valoresJugados[0]) "ESCALERA REAL" else break }else break } } - } // Jugadas posibles para 5 palos iguales + } // jugadas posibles para 5 palos iguales if (noEsColor) { var tieneTrio = false var cantDobles = 0 - for (position in valoresJugados.indices) { if (valoresJugados[position] == 4) { result = "POKER" break - } else { + } else if (valoresJugados[position] == 1 && position <= 9) { + if (position < 9) { + if (1 == valoresJugados[position] && 1 == valoresJugados[position + 1] && 1 == valoresJugados[position + 2] && 1 == valoresJugados[position + 3] && 1 == valoresJugados[position + 4]) { + result = "ESCALERA" + break + } else { + continue + } + } else if (position == 9) { + if (1 == valoresJugados[position] && 1 == valoresJugados[position + 1] && 1 == valoresJugados[position + 2] && 1 == valoresJugados[position + 3] && 1 == valoresJugados[0]) { + result = "ESCALERA FIGURAS" + break + } else continue + } else continue + } // Controla para ESCALERA + else { if (valoresJugados[position] == 3) tieneTrio = true if (valoresJugados[position] == 2) cantDobles++ - result = if ((cantDobles == 1) && tieneTrio) "FULL" + result = if ((cantDobles == 1) && tieneTrio) "FULL HOUSE" else if ((cantDobles == 0) && tieneTrio) "TRIO" else if (cantDobles == 1) "PAREJA" - else if (cantDobles == 2) "PAREJA DOBLE" + else if (cantDobles == 2) "DOBLE PAREJA" else "CARTA ALTA" - if (valoresJugados[position] == 1) { - if (position < 9) { - if (1 == valoresJugados[position] && 1 == valoresJugados[position + 1] && 1 == valoresJugados[position + 2] && 1 == valoresJugados[position + 3] && 1 == valoresJugados[position + 4]) { - result = "ESCALERA" - break - } else { - continue - } - } else if (position == 9) { - if (1 == valoresJugados[position] && 1 == valoresJugados[position + 1] && 1 == valoresJugados[position + 2] && 1 == valoresJugados[position + 3] && 1 == valoresJugados[0]) { - result = "ESCALERA FIGURAS" - break - } else continue - } else continue - } // Controla para ESCALERA } } } return result +} +fun jugadaGanadora(jugada1 : List, jugada2 : List, tipo1 :String, tipo2 : String) : String{ + var ganador : String = "NINGUNO" + var palosJugados1 = arrayOf(0,0,0,0) + var valoresJugados1 = arrayOf(0,0,0,0,0,0,0,0,0,0,0,0,0) + for (palos in jugada1){ + when(palos.palo){ + 'S' -> palosJugados1[0]++ + 'C' -> palosJugados1[1]++ + 'D' -> palosJugados1[2]++ + 'H' -> palosJugados1[3]++ + } + } + for (valores in jugada1){ + when(valores.valor){ + 'A' -> valoresJugados1[0]++ + '2' -> valoresJugados1[1]++ + '3' -> valoresJugados1[2]++ + '4' -> valoresJugados1[3]++ + '5' -> valoresJugados1[4]++ + '6' -> valoresJugados1[5]++ + '7' -> valoresJugados1[6]++ + '8' -> valoresJugados1[7]++ + '9' -> valoresJugados1[8]++ + 'T' -> valoresJugados1[9]++ + 'J' -> valoresJugados1[10]++ + 'Q' -> valoresJugados1[11]++ + 'K' -> valoresJugados1[12]++ + } + } + var palosJugados2 = arrayOf(0,0,0,0) + var valoresJugados2 = arrayOf(0,0,0,0,0,0,0,0,0,0,0,0,0) + for (palos in jugada2){ + when(palos.palo){ + 'S' -> palosJugados2[0]++ + 'C' -> palosJugados2[1]++ + 'D' -> palosJugados2[2]++ + 'H' -> palosJugados2[3]++ + } + } + for (valores in jugada2){ + when(valores.valor){ + 'A' -> valoresJugados2[0]++ + '2' -> valoresJugados2[1]++ + '3' -> valoresJugados2[2]++ + '4' -> valoresJugados2[3]++ + '5' -> valoresJugados2[4]++ + '6' -> valoresJugados2[5]++ + '7' -> valoresJugados2[6]++ + '8' -> valoresJugados2[7]++ + '9' -> valoresJugados2[8]++ + 'T' -> valoresJugados2[9]++ + 'J' -> valoresJugados2[10]++ + 'Q' -> valoresJugados2[11]++ + 'K' -> valoresJugados2[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 posGanador = -1 + var segundo = 0 + loop@ for(casos in jugadas.indices){ + when(jugadas[casos]) { + 1->{ + posGanador = casos + ganador = when(posGanador){ + 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 -> { //"ESCALERA REAL" + ganador = "EMPATE" + } + 1 ->{ //"ESCALERA COLOR" + var ultimo = 1 + var kicker1 = 0 + var kicker2 = 0 + loopjugado1@ for (indice in valoresJugados1.indices) { + if (valoresJugados1[indice] == 1) { + if (ultimo == 5) { + kicker1 = indice + break@loopjugado1 + } + ultimo++ + } + } + ultimo = 1 + println() + loopjugado2@ for (indice in valoresJugados2.indices){ + if (valoresJugados2[indice] == 1) { + if (ultimo == 5){ + kicker2 = indice + break@loopjugado2 + } + ultimo++ + } + } + println("kicker1 = $kicker1 kicker2 = $kicker2") + ganador = if (kicker1 == 0 && kicker2 != 0){ + "JUGADOR 1" + }else if (kicker2 == 0 && kicker1 != 0) { + "JUGADOR 2" + }else if (kicker1 == kicker2){ + "EMPATE" + }else if (kicker1 > kicker2) { + "JUGADOR 1" + } else "JUGADOR 2" + } + 2 ->{ //"POKER" + var ultimo = 0 + var kicker1 = 0 + var kicker2 = 0 + for (indice in valoresJugados1.indices) { + if (valoresJugados1[indice] == 1) { + if (ultimo == 5) { + kicker1 = indice + } + ultimo++ + } + } + + ultimo = 0 + + for (indice in valoresJugados2.indices){ + if (valoresJugados2[indice] == 1) { + if (ultimo == 5){ + kicker2 = indice + } + ultimo++ + } + } + ganador = if (kicker1 == 0 && kicker2 != 0){ + "JUGADOR 1" + }else if (kicker2 == 0 && kicker1 != 0) { + "JUGADOR 2" + }else if (kicker1 == kicker2){ + "EMPATE" + }else if (kicker1 > kicker2) { + "JUGADOR 1" + } else "JUGADOR 2" + } + 3 -> { //"FULL HOUSE" + var trio1 = -1 + + for (indice in valoresJugados1.indices) { + if (valoresJugados1[indice] == 3) { + trio1 = indice + } + } + var trio2 = -1 + + for (indice in valoresJugados2.indices) { + if (valoresJugados2[indice] == 3) { + trio2 = indice + } + } + ganador = if (trio1 == 0 && trio2 != 0) { + "JUGADOR 1" + } else if (trio2 == 0 && trio1 != 0) { + "JUGADOR 2" + } else if (trio1 == trio2) { + "EMPATE" + } else if (trio1 > trio2) { + "JUGADOR 1" + } else "JUGADOR 2" + } + 4 ->{ //"COLOR" + var ultimo = 1 + var kicker1 = 0 + var kicker2 = 0 + loopjugado1@ for (indice in valoresJugados1.indices) { + if (valoresJugados1[indice] == 1) { + if (ultimo == 5 || indice == 0) { + kicker1 = indice + break@loopjugado1 + } + ultimo++ + } + } + ultimo = 1 + println() + loopjugado2@ for (indice in valoresJugados2.indices){ + if (valoresJugados2[indice] == 1) { + if (ultimo == 5 || indice == 0){ + kicker2 = indice + break@loopjugado2 + } + ultimo++ + } + } + println("kicker1 = $kicker1 kicker2 = $kicker2") + ganador = if (kicker1 == 0 && kicker2 != 0){ + "JUGADOR 1" + }else if (kicker2 == 0 && kicker1 != 0) { + "JUGADOR 2" + }else if (kicker1 == kicker2){ + "EMPATE" + }else if (kicker1 > kicker2) { + "JUGADOR 1" + } else "JUGADOR 2" + } + 5 ->{ //"ESCALERA" + var ultimo = 1 + var kicker1 = 0 + var kicker2 = 0 + loopjugado1@ for (indice in valoresJugados1.indices) { + if (valoresJugados1[indice] == 1) { + if (ultimo == 5 || (indice == 0 && valoresJugados1[9] == 1 && valoresJugados1[10] == 1 && valoresJugados1[11] == 1 && valoresJugados1[12] == 1)){ + kicker1 = indice + break@loopjugado1 + } + ultimo++ + } + } + ultimo = 1 + println() + loopjugado2@ for (indice in valoresJugados2.indices){ + if (valoresJugados2[indice] == 1) { + if (ultimo == 5 || (indice == 0 && valoresJugados1[9] == 1 && valoresJugados1[10] == 1 && valoresJugados1[11] == 1 && valoresJugados1[12] == 1)){ + kicker2 = indice + break@loopjugado2 + } + ultimo++ + } + } + println("kicker1 = $kicker1 kicker2 = $kicker2") + ganador = if (kicker1 == 0 && kicker2 != 0){ + "JUGADOR 1" + }else if (kicker2 == 0 && kicker1 != 0) { + "JUGADOR 2" + }else if (kicker1 == kicker2){ + "EMPATE" + }else if (kicker1 > kicker2) { + "JUGADOR 1" + } else "JUGADOR 2" + } + 6 ->{ //"TRIO" + var trio1 = -1 + for (indice in valoresJugados1.indices) { + if (valoresJugados1[indice] == 3) { + trio1 = indice + } + } + var trio2 = -1 + for (indice in valoresJugados2.indices) { + if (valoresJugados2[indice] == 3) { + trio2 = indice + } + } + ganador = if (trio1 == 0 && trio2 != 0) { + "JUGADOR 1" + } else if (trio2 == 0 && trio1 != 0) { + "JUGADOR 2" + } else if (trio1 == trio2) { + "EMPATE" + } else if (trio1 > trio2) { + "JUGADOR 1" + } else "JUGADOR 2" + } + 7 ->{ //"DOBLE PAREJA" + var primerDoble = -1 + var segundoDoble = -1 + loopintern@for (indice in valoresJugados1.indices){ + if (segundo == 1){ + if (valoresJugados1[indice] == 2){ + segundoDoble = indice + segundo = 0 + break@loopintern + } + } + if (valoresJugados1[indice] == 2 && segundo == 0){ + primerDoble = indice + segundo = 1 + } + } + var primerDoble2 = -1 + var segundoDoble2 = -1 + segundo = 0 + loopintern@for (indice in valoresJugados2.indices){ + if (segundo == 1){ + if (valoresJugados2[indice] == 2){ + segundoDoble2 = indice + segundo = 0 + break@loopintern + } + } + if (valoresJugados2[indice] == 2 && segundo == 0){ + primerDoble2 = indice + segundo = 1 + } + } + ganador = if (primerDoble == 0 && primerDoble2 != 0) { + "JUGADOR 1" + } else if (primerDoble2 == 0 && primerDoble != 0) { + "JUGADOR 2" + } else if (primerDoble == primerDoble2) { + when { + segundoDoble == segundoDoble2 -> { + "EMPATE" + } + segundoDoble > segundoDoble2 -> { + "JUGADOR 1" + } + else -> { + "JUGADOR 2" + } + } + } else if (primerDoble > primerDoble2) { + "JUGADOR 1" + } else "JUGADOR 2" + } + 8 ->{ //"PAREJA" + var ultimo = 1 + var kicker1 = 0 + var kicker2 = 0 + var primerDoble = -1 + + var segundo = false + for (indice in valoresJugados1.indices){ + if (valoresJugados1[indice] == 2){ + primerDoble = indice + ultimo = 2 + } + } + loopjugado1@ for (indice in valoresJugados1.indices) { + if (valoresJugados1[indice] == 1) { + if (ultimo == 4 || (indice == 0)){ + kicker1 = if (indice == 0) 14 else indice + break@loopjugado1 + } + ultimo++ + } + } + ultimo = 1 + + var primerDoble2 = -1 + for (indice in valoresJugados2.indices){ + if (valoresJugados2[indice] == 2){ + primerDoble2 = indice + ultimo = 2 + } + } + loopjugado2@ for (indice in valoresJugados2.indices){ + if (valoresJugados2[indice] == 1) { + if (ultimo == 4 || (indice == 0)){ + kicker2 = if (indice == 0) 14 else indice + break@loopjugado2 + } + ultimo++ + } + } + + ganador = if (primerDoble == 0 && primerDoble2 != 0) { + "JUGADOR 1" + } else if (primerDoble2 == 0 && primerDoble != 0) { + "JUGADOR 2" + } else if (primerDoble == primerDoble2) { + when { + kicker1 > kicker2 -> "JUGADOR 1 Por Kicker mas alto" + kicker1 < kicker2 -> "JUGADOR 2 Por Kicker mas alto" + else -> "EMPATE" + } + } else if (primerDoble > primerDoble2) { + "JUGADOR 1" + } else "JUGADOR 2" + } + 9 ->{ //"CARTA ALTA" + var ultimo = 1 + var kicker1 = 0 + var kicker2 = 0 + loopjugado1@ for (indice in valoresJugados1.indices) { + if (valoresJugados1[indice] == 1) { + if (ultimo == 5 || (indice == 0)){ + kicker1 = indice + break@loopjugado1 + } + ultimo++ + } + } + ultimo = 1 + println() + loopjugado2@ for (indice in valoresJugados2.indices){ + if (valoresJugados2[indice] == 1) { + if (ultimo == 5 || (indice == 0)){ + kicker2 = indice + break@loopjugado2 + } + ultimo++ + } + } + println("kicker1 = $kicker1 kicker2 = $kicker2") + ganador = if (kicker1 == 0 && kicker2 != 0){ + "JUGADOR 1" + }else if (kicker2 == 0 && kicker1 != 0) { + "JUGADOR 2" + }else if (kicker1 == kicker2){ + "EMPATE" + }else if (kicker1 > kicker2) { + "JUGADOR 1" + } else "JUGADOR 2" + } + + else ->{ //"NADA" + "ERROR 5: JUGADA NO ENCONTRADA" + } + } + } + } + } + return ganador } \ No newline at end of file -- libgit2 0.26.0