// Repositorio https://phoebe.roshka.com/gitlab/yalvarez/kotlin-e004-poker const val CARAS = "23456789tjqka" const val LETRAS = "shdc" //clase carta que recibe el valor y el palo class Carta(completo: String) { fun valorPalo(): String { return valor + palo } var valor: String var palo: String init { valor = completo[0].toString() palo = completo[1].toString() } } //clase que ordena las cartas class OrdenarCartas { val valores = charArrayOf('A', '2', '3', '4', '5', '6', '7', '8', '9', 'T', 'J', 'Q', 'K') val palos = charArrayOf('S', 'C', 'H', 'D') fun compararValor(valor1: Char, valor2: Char): Int { var numValor1 = 0 var numValor2 = 0 for (i in valores.indices) { if (valor1 == valores[i]) { numValor1 = i break } } for (i in valores.indices) { if (valor2 == valores[i]) { numValor2 = i break } } return if (numValor1 == numValor2) { 0 } else if (numValor1 > numValor2) { 1 } else { -1 } } fun esAnterior(carta1: Carta, carta2: Carta): Boolean { var valor1 = 0 var valor2 = 0 //Buscamos la posicion del valor de la otra carta for (i in valores.indices) { if (carta1.valorPalo()[0] == valores[i]) { valor1 = i break } } //Buscamos la posicion del valor de esta carta for (i in valores.indices) { if (carta2.valorPalo()[0] == valores[i]) { valor2 = i break } } //averiguamos si es el siguiente return if (valor1 != valor2 + 1) { false } else true } } //completar para mostrar la mano ganadora de acuerdo a la clasificacion de jugadas del poker fun ganador(jugadas: MutableList>): String? { //Imprime la cantidad de jugadas println("Cantidad de jugadas: " + jugadas.size) val manos = IntArray(jugadas.size) var mejor = 8 for (indice1 in manos.indices) { if (manos[indice1] < mejor) { mejor = manos[indice1] } } val mejoresManos = ArrayList() for (indice1 in manos.indices) { if (mejor == manos[indice1]) { mejoresManos.add(indice1) } } if (mejoresManos.size == 1) { return "Jugada " + (mejoresManos[0] + 1) } else { val variasManos = ArrayList>() } return "jugador 1" } fun main(args: Array) { /*val manos = arrayOf( "ah ad th tc 6s", "as 2s 3s 4s 5s" ) for (mano in manos) { println("Jugada: ${jugada(mano)}") }*/ val jugadas: MutableList> = ArrayList() val jugada1 = arrayOfNulls(5) jugada1[0] = Carta("AH") jugada1[1] = Carta("AD") jugada1[2] = Carta("TH") jugada1[3] = Carta("TC") jugada1[4] = Carta("6S") val jugada2 = arrayOfNulls(5) jugada2[0] = Carta("AH") jugada2[1] = Carta("KD") jugada2[2] = Carta("QH") jugada2[3] = Carta("3C") jugada2[4] = Carta("3S") jugadas.add(jugada1) jugadas.add(jugada2) // val ganadores: String = mc.ganadores(jugadas) println("Jugada: ${ganador(jugadas)}") }