#Probabilidad en el juego de Black Jack.
#Objetivo.
#Determinar probabilidades de que salgan cartas de un tipo en un mazo de cartas cuando se reparten al principio dos cartas.
#1. Cargar librerías.

library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
## 
## Attaching package: 'dplyr'

## The following objects are masked from 'package:stats':
## 
##     filter, lag

## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union

library(knitr)
library(gtools)

#2. Cargar las cartas con función previamente preparada

source("/home/brandon/Downloads/mis.funciones.r")

#3. Repartir y sumar puntos de las dos cartas

carta1 <- f.repartir.cartas()
carta2 <- f.repartir.cartas()
paste("La primera carta fue : ",carta1)
## [1] "La primera carta fue :  6"
## [1] "La primera carta fue :  Q"

paste("La Segunada carta fue : ",carta2)
## [1] "La Segunada carta fue :  10"
## [1] "La Segunada carta fue :  5"

#Suma de los puntos.

paste("La suma de los puntos es : ", f.determinar.puntos(carta1) + f.determinar.puntos(carta2))
## [1] "La suma de los puntos es :  16"
## [1] "La suma de los puntos es :  15"

#4. Determinar probabilidades
#4.1 ¿Cuál es la probabilidad de que salga exactamente el 7 de corazones rojos en la primer carta?

prob <- 1 / 52 * 100  # Porcentuales
paste("La probabilidad es ", round(prob,2), "%")
## [1] "La probabilidad es  1.92 %"
## [1] "La probabilidad es  1.92 %"

#4.2 ¿Cuál es la probabilidad de que salga un Rey de cualquier figura en la primer carta?

reyes <- length(mazo[which(mazo == 'K')])
prob <- reyes / 52 * 100
paste("La probabilidad es ", round(prob,2), "%")
## [1] "La probabilidad es  7.69 %"
## [1] "La probabilidad es  7.69 %"

#4.3. ¿Cuál es la probabilidad de que salga un As en la primer carta repartida?

As <- length(mazo[which(mazo == 'A')])
prob <- As / 52 * 100
paste("La probabilidad es ", round(prob,2), "%")
## [1] "La probabilidad es  7.69 %"
## [1] "La probabilidad es  7.69 %"

#4.4. ¿Cuál es la probabilidad de que en la primer carta se tengan 10 puntos?

Mas.de.Diez <- length(mazo[which(mazo == '10' | mazo == 'J' | mazo == 'Q' | mazo == 'K')])
prob <- Mas.de.Diez / 52 * 100
paste("La probabilidad es ", round(prob,2), "%")
## [1] "La probabilidad es  30.77 %"
## [1] "La probabilidad es  30.77 %"

#4.5. ¿Cuál es la la probabilidad de que la suma de las dos cartas sea exactamente 20?

 #   Repartimos

casos <- data.frame(permutations(13,2,baraja, repeats.allowed = TRUE))
names(casos) <- c("C1", "C2")

numero.casos <- nrow(casos)
n
## function () 
## {
##     length(peek_mask("n()")$current_rows())
## }
## <bytecode: 0x55822be3a160>
## <environment: namespace:dplyr>
## function () 
## {
##     length(peek_mask("n()")$current_rows())
## }
## <bytecode: 0x0000000015229e80>
## <environment: namespace:dplyr>

  #  Casos cuando.
   #     Si es A el valor es 11
    #    Si es J, Q K el valor es 10

casos <- casos %>%
  mutate(valor1 = ifelse (C1 == "A", 11, 
                          ifelse(C1 =="J" | C1 == "Q" | C1 == "K",
                                 10,as.numeric(C1)))) 
## Warning: Problem with `mutate()` input `valor1`.
## ℹ NAs introduced by coercion
## ℹ Input `valor1` is `ifelse(...)`.
## Warning in ifelse(C1 == "J" | C1 == "Q" | C1 == "K", 10, as.numeric(C1)): NAs
## introduced by coercion
## Warning: Problem with `mutate()` input `valor1`.
## i NAs introducidos por coerción
## i Input `valor1` is `ifelse(...)`.

## Warning in ifelse(C1 == "J" | C1 == "Q" | C1 == "K", 10, as.numeric(C1)): NAs
## introducidos por coerción

casos <- casos %>%
  mutate(valor2 = ifelse (C2 == "A", 11, 
                          ifelse(C2 =="J" | C2 == "Q" | C2 == "K",
                                 10,as.numeric(C2))))
## Warning: Problem with `mutate()` input `valor2`.
## ℹ NAs introduced by coercion
## ℹ Input `valor2` is `ifelse(...)`.
## Warning in ifelse(C2 == "J" | C2 == "Q" | C2 == "K", 10, as.numeric(C2)): NAs
## introduced by coercion
## Warning: Problem with `mutate()` input `valor2`.
## i NAs introducidos por coerción
## i Input `valor2` is `ifelse(...)`.

## Warning in ifelse(C2 == "J" | C2 == "Q" | C2 == "K", 10, as.numeric(C2)): NAs
## introducidos por coerción

casos <- casos %>%
  mutate(suma = valor1 + valor2)

    #Resultado.

casos.de.20 <- filter(casos, suma == 20)
veces <- nrow(casos.de.20)

paste("Casos en los que la suma sea 20: ", veces)
## [1] "Casos en los que la suma sea 20:  18"
## [1] "Casos en los que la suma sea 20:  18"

#4.6. ¿Cuál es la probabilidad de que en las dos cartas sumando sus puntos sea menor o igual que 10?

casos.de.10 <- filter(casos, suma <= 10)
veces.10 <- nrow(casos.de.20)

paste("Casos en los que la suma es menor o igual a 10: ", veces.10)
## [1] "Casos en los que la suma es menor o igual a 10:  18"
## [1] "Casos en los que la suma es menor o igual a 10:  18"

prob <- veces.10 / 52 * 100
paste("La probabilidad es ", round(prob,2), "%")
## [1] "La probabilidad es  34.62 %"
## [1] "La probabilidad es  34.62 %"

#4.7. ¿Cuál es la probabilidad de que en las dos cartas sea un valor menor a 5?

casos.de.5 <- filter(casos, suma < 5)
veces.5 <- nrow(casos.de.5)

paste("El número de casos probable para suma menor a 5 es:", veces.5)
## [1] "El número de casos probable para suma menor a 5 es: 1"
## [1] "El número de casos probable para suma menor a 5 es: 1"

prob <- veces.5 / 52 * 100
paste("La probabilidad es ", round(prob,2), "%")
## [1] "La probabilidad es  1.92 %"
## [1] "La probabilidad es  1.92 %"

#4.8. ¿Cuál de las combinaciones con la suma de los puntos de las cartas tiene la más alta probabilidad de salir?, es decir, 8, 9, 10, 11, 12…. Cuál puntuación de la suma de las dos cartas es la más frecuente?

tabla.probabilidad <- data.frame(transform(table(casos$suma)))
names(tabla.probabilidad) <- c('Suma', 'Frecuencia')
tabla.probabilidad %>% arrange(desc(Frecuencia))
##    Suma Frecuencia
## 1    20         18
## 2    13         16
## 3    12         15
## 4    14         15
## 5    15         14
## 6    16         13
## 7    17         12
## 8    18         11
## 9    19         10
## 10   11          8
## 11   21          8
## 12   10          7
## 13    9          6
## 14    8          5
## 15    7          4
## 16    6          3
## 17    5          2
## 18    4          1
## 19   22          1