Commit 4e714a8f by Miguel Do Carmo

se agrego el programa poker01 con sus respuestas correspondientes

parent 61206993
Questions.
2.1. Cuál es la probabilidad de sacar generala en un tiro
R: tiene solo 6 posibilidades.
Teniendo una probabilidad del 0.077% aprox. lo que seria 1 tiro de 1296
2.2. Cuál es la probabilidad de sacar poker en un tiro
R: tiene 150 posibilidades.
Teniendo una probabilidad del 1.92% aprox. lo que seria 25 tiros de 1296
2.3. Cuál es la probabilidad de sacar full en un tiro
R: tiene 300 posibilidades.
Teniendo una probabilidad del 3.85% aprox. lo que seria 25 tiros de 648
2.4. Cuál es la probabilidad de sacar escalera en un tiro
R: tiene 360 posibilidades.
Teniendo una probabilidad del 4.629% aprox. lo que seria 5 tiros de 108
2.5. Cuál es la probabilidad de sacar nada en un tiro
hay una probabilidad del 89.5% de no quitar ninguno de las jugadas anteriores
Bonus
3.1. Cuál es la probabilidad de sacar generala en dos tiros
seria una probabilidad de 0.15%
3.2. Cuál es la probabilidad de sacar generalaen tres tiros
seria una probabilidad de 0.23%
combinaciones posibles en el poker son (52 C 5) = 2598960
2.1. Si se mezclan y reparten cartas al azar: Cuál es la probabilidad de obtener una escalera de color?
R: la probabilidad de que te salga escalera de color es del 0.0015%
2.2. Si se mezclan y reparten cartas al azar: Cuál es la probabilidad de obtener un poker?
R: la probabilidad de obtener poker es del 0.024%
2.3. Si se mezclan y reparten cartas al azar: Cuál es la probabilidad de obtener un full house?
R la probabilidad de obtener full house es del 0.14%
2.4. Si se mezclan y reparten cartas al azar: Cuál es la probabilidad de obtener una escalera?
R: la probabilidad de obtener una escalera simple es del 0.39%
2.5. Si se mezclan y reparten cartas al azar: Cuál es la probabilidad de obtener un trio?
R: la probabilidad de obtener un trio en una jugada es del 2.11%
2.6. Si se mezclan y reparten cartas al azar: Cuál es la probabilidad de obtener un par doble?
R: la probabilidad de obtener un par doble es del 4.75%
2.7. Si se mezclan y reparten cartas al azar: Cuál es la probabilidad de obtener un par?
R: la probabilidad de obtener un par simple es del 42.25%
2.8. Si se mezclan y reparten cartas al azar: Cuál es la probabilidad de no obtener ninguna de las jugadas anteriores?
R la probabilidad de no tener ninguna de las jugadas anteriores es del 50.3345%
\ No newline at end of file
package codigos
object Const {
val PALOS = arrayOf(
'S','D','H','C'
)
}
\ No newline at end of file
combinaciones posibles en el poker son (52 C 5) = 2598960
2.1. Si se mezclan y reparten cartas al azar: Cuál es la probabilidad de obtener una escalera de color?
R: la probabilidad de que te salga escalera de color es del 0.0015%
2.2. Si se mezclan y reparten cartas al azar: Cuál es la probabilidad de obtener un poker?
R: la probabilidad de obtener poker es del 0.024%
2.3. Si se mezclan y reparten cartas al azar: Cuál es la probabilidad de obtener un full house?
R la probabilidad de obtener full house es del 0.14%
2.4. Si se mezclan y reparten cartas al azar: Cuál es la probabilidad de obtener una escalera?
R: la probabilidad de obtener una escalera simple es del 0.39%
2.5. Si se mezclan y reparten cartas al azar: Cuál es la probabilidad de obtener un trio?
R: la probabilidad de obtener un trio en una jugada es del 2.11%
2.6. Si se mezclan y reparten cartas al azar: Cuál es la probabilidad de obtener un par doble?
R: la probabilidad de obtener un par doble es del 4.75%
2.7. Si se mezclan y reparten cartas al azar: Cuál es la probabilidad de obtener un par?
R: la probabilidad de obtener un par simple es del 42.25%
2.8. Si se mezclan y reparten cartas al azar: Cuál es la probabilidad de no obtener ninguna de las jugadas anteriores?
R la probabilidad de no tener ninguna de las jugadas anteriores es del 50.3345%
\ No newline at end of file
package codigos
/************Data class es una clase especial de KOTLIN que
* te abstrae de los getters y setters o implementa automaticamente**/
data class CartaJugada(val valor: Char, val palo: Char)
fun main() {
val jugada = arrayListOf<CartaJugada>()
println("Leer Jugada: ")
var CartaJugadasMesa : String
do {
CartaJugadasMesa = readLine()!!.toString().toUpperCase()
}while (Valido(CartaJugadasMesa))
/*********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]))
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)}")
}
fun Valido(CartaJugadasMesa : String) : Boolean{
var result = true
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])
}
}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])){
mantieneCorrecto = true
}
}
}
return mantieneCorrecto
}
fun analizaJugadaOrdenada(jugadaOrdenada : List<CartaJugada>): 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"
for (palos in jugadaOrdenada){
when(palos.palo){
'S' -> palosJugados[0]++
'C' -> palosJugados[1]++
'D' -> palosJugados[2]++
'H' -> palosJugados[3]++
}
}
for (valores in jugadaOrdenada){
when(valores.valor){
'A' -> valoresJugados[0]++
'2' -> valoresJugados[1]++
'3' -> valoresJugados[2]++
'4' -> valoresJugados[3]++
'5' -> valoresJugados[4]++
'6' -> valoresJugados[5]++
'7' -> valoresJugados[6]++
'8' -> valoresJugados[7]++
'9' -> valoresJugados[8]++
'T' -> valoresJugados[9]++
'J' -> valoresJugados[10]++
'Q' -> valoresJugados[11]++
'K' -> valoresJugados[12]++
}
}
for (palo in palosJugados){
if (palo == 5){
result = "COLOR"
for (position in valoresJugados.indices){
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
}else break
}
}
} // Jugadas posibles para 5 palos iguales
var tieneTrio = false
var cantDobles = 0
for (position in valoresJugados.indices) {
if (valoresJugados[position] == 4){
result = "POKER"
break
} else {
if (valoresJugados[position] == 3) tieneTrio = true
if (valoresJugados[position] == 2) cantDobles++
result = if ((cantDobles == 1) && tieneTrio) "FULL"
else if ((cantDobles == 0) && tieneTrio) "TRIO"
else if (cantDobles == 1) "PAREJA"
else if (cantDobles == 2) "PAREJA DOBLE"
else "CARTA ALTA"
if (valoresJugados[position] == 1 && position <= 9) {
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" 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 FIGURAS" else break
} else break
} // Controla para ESCALERA
}
}
return result
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment