Generar.kt 3.13 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 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
class Generar {
    // 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: String): String {
        var count = 0
        var mayor = 0
        var dosIguales = false
        for (i in 0 until dados.length) {
            for (j in 0 until dados.length) {
                if (dados[i] == dados[j]) count++
            }
            if (count > mayor) {
                mayor = count
            }
            if (count == 2) {
                dosIguales = true
            }
            count = 0
        }
        return if (mayor == 5) {
            "GENERALA"
        } else {
            if (mayor == 4) {
                "PÓKER"
            } else {
                if (mayor == 3 && dosIguales) {
                    "FULL"
                } else {
                    if (escalera(dados)) "ESCALERA" else "NADA"
                }
            }
        }
    }

    fun escalera(dados: String): Boolean {
        val dadosArray: IntArray
        dadosArray = IntArray(5)
        for (i in 0 until dados.length) {
            dadosArray[i] = dados[i].toString().toInt()
        }
        ordenar(dadosArray)
        return if (dadosArray[0] == 1 && dadosArray[1] == 2 && dadosArray[2] == 3 && dadosArray[3] == 4 && dadosArray[4] == 5
        ) {
            true
        } else {
            if (dadosArray[0] == 2 && dadosArray[1] == 3 && dadosArray[2] == 4 && dadosArray[3] == 5 && dadosArray[4] == 6
            ) {
                true
            } else false
        }
    }

    fun ordenar(lista: IntArray) {
        for (i in 0 until lista.size - 1) {
            for (j in i + 1 until lista.size) {
                if (lista[i] > lista[j]) {
                    val variableauxiliar = lista[i]
                    lista[i] = lista[j]
                    lista[j] = variableauxiliar
                }
            }
        }
    }
}

    fun main(args: Array<String>) {
        val g = Generar()
        // ESTO SI SE EJECUTA PARA USTEDES
        println(g.jugada("11144"))
    }

/* RESPUESTAS
* 1- ¿Cuál es la probabilidad de sacar generala en un tiro ?
* La probabilidad de sacar generala es del 0.08% es decir de 6 casos favorables sobre los 7776 casos posibles.
* Al ser un caso solo es del 0%
*
* 2- ¿Cuál es la probabilidad de sacar poker en un tiro?
* La posibilidad de sacar Poker es del 1.93% es decir de 150 casos favorables sobre los 7776 casos posibles.
* Al ser un caso es del 1.8%.
*
* 3- ¿ Cuál es la probabilidad de sacar full en un tiro?
* La posibilidad de sacar Poker es del 3.86% es decir de 300 casos favorables sobre los 7776 casos posibles.
* Al ser un caso es del 4.6%
*
* 4-¿ Cuál es la probabilidad de sacar escalera
en un tiro?
* La posibilidad de sacar Poker es del 4.63% es decir de 75 casos favorables sobre los 7776 casos posibles.
* Al ser un caso es del 4.4%
*
* 5-¿ Cuál es la probabilidad de sacar nada en un tiro?
**La posibilidad de sacar Poker es del 89.50% es decir 1 caso - la sumatoria de los resultados de todos las probalidades.
* Al ser un caso es del 89.2%
*
* Repositorio GitLab:
* */