java-e003-generala.kt 1.9 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61


package codigos


import java.util.ArrayList
import java.util.Scanner
import java.io.File
 fun main() {


     val g = readLine()!!.toCharArray() //convierte automaticamente lo leido a un array de Chars
     g.sort() //Metodo de ordenamiento de arrays

     println(jugada(g))
     // ESTO SI SE EJECUTA PARA USTEDES

 }

// ESTA ES LA FUNCIÓN QUE HAY QUE IMPLEMENTAR
// TAMBIÉN PUEDEN AGREGAR OTRAS FUNCIONES y/o CLASES
// QUE NECESITEN PARA RESOLVER EL EJERCICIO DE LA
// MANERA MÁS ORDENADA POSIBLE

fun jugada(dados : CharArray) : String? {
    val primerElement = dados[0]
    var caraDados = intArrayOf(0, 0, 0, 0, 0, 0) ///////************* guarda el valor de la jugada

    for (element in dados) {
        val nroConvertido = Character.getNumericValue(element)
        if (nroConvertido in 0..6) caraDados[nroConvertido - 1]++ else return "INVALIDO"
    }

    var result: String? = null

    var tieneTrio = false
    var tieneDoble = false
    val primerValor = Character.getNumericValue(dados[0])
    var valorDado = 0
    if (dados.size == 5) {
        for (valor in caraDados) { //------------> Busca dentro del array que explica de otra manera la jugada que a salido
            if (valor == 5) result = "GENERALA"
            if (valor == 4) result = "POKER"
            if (valor == 3) tieneTrio = true
            if (valor == 2) tieneDoble = true
            if (tieneDoble && tieneTrio) result = "FULL"
            if (valor == 1) {
                for (indice in 0..4) {
                    valorDado = primerValor - (Character.getNumericValue(dados[indice]) - indice)
                }
                if (valorDado == 0 || (caraDados[0]==1 && caraDados[1]==0 && caraDados[2] ==1 &&caraDados[3]==1 && caraDados[4]==1 && caraDados[5]==1)) {
                    result = "ESCALERA"
                    break
                }
            }
        }
    } else {
        result = "INVALIDO"
    }
    return result
}