import java.util.* const val CARAS = "23456789tjqka" const val LETRAS = "shdc" 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() } } 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 } } 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) } //agregar para retomar el ganador en caso de verificar la Carta return "Error" } var mejor = 0 fun verificarCarta(): Array? { var respuesta: ArrayList?>? = null if (mejor === 1) { respuesta = siEsPoker() } else if (mejor === 2) { respuesta = siEsFull() } else if (mejor === 3) { respuesta = siEsColorYCartaAlta() } else if (mejor === 4) { respuesta = siEscalera() } else if (mejor === 5) { respuesta = siTrio() } else if (mejor === 6) { respuesta = siParDoble() } else if (mejor === 7) { respuesta = siPar() } return respuesta!![0] } fun siPar(): ArrayList?>? { //completar } fun siParDoble(): ArrayList?>? { } fun siEscalera(): ArrayList?>? { } fun siTrio(): ArrayList?>? { } fun siEsColorYCartaAlta(): ArrayList?>? { } fun siEsFull(): ArrayList?>? { } fun siEsPoker(): ArrayList?>? { } 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)}") }