Le but de ce challenge est d’implémenter from scratch le jeu du Black Jack. Je vous invite donc à lire les règles du jeu. Pour ce premier challenge uniquement je vais vous aider pour le départ. Ainsi nous allons commencer à écrire tous ensemble du code. Pour les prochains challenges, vous vous débrouillerez tout seul comme des grands.
playBlackJack <- function(){
## un bon etudiant commente son code
## Dans le black jack on se fiche pas mal
## de la famille donc on utilise que la valeur
## pour la suite
## Une fonction utile plus tard
afficheJeu <- function()
print(mains[1:tour,])
jeu <- rep(c("As", 2:10, "Valet", "Dame", "Roi"), 4)
jeu <- sample(jeu, 52)
mains <- matrix(NA, 52, 2)
colnames(mains) <- c("Croupier", "Joueur")
mains[1:2,1:2] <- jeu[1:4]
jeu <- jeu[-(1:4)]
tour <- 2
afficheJeu()
## Commencons a jouer
tour <- 3
while (TRUE){
veuxCarte <- readline("Carte ? (Carte / Non) : ")
if (veuxCarte == "Non")
break
else if (veuxCarte == "Carte"){
mains[tour, 2] <- jeu[1]
jeu <- jeu[-1]
tour <- tour + 1
afficheJeu()
point.joueur <- calculPoint(mains[,2])
if (point.joueur > 21)
break
} else
cat("T'es serieux la... Tu sais pas lire cretin")
}
tour.save <- tour
## Le croupier joue
tour <- 3
while (TRUE){
nb.point <- calculPoint(mains[,1])
if (nb.point < 17){
mains[tour, 1] <- jeu[1]
jeu <- jeu[-1]
tour <- tour + 1
afficheJeu()
} else
break
}
mains <- mains[1:max(tour.save, tour),]
return(mains)
}
calculPoint <- function(main){
main[main %in% c("Valet", "Dame", "Roi")] <- 10
sub.main <- as.numeric(main[main != "As"])
sub.tot <- sum(sub.main, na.rm = TRUE)
main[main == "As"] <- ifelse(sub.tot > 10, 1, 11)
return(sum(as.numeric(main), na.rm = TRUE))
}
Et le script R
source("BlackJack.R")
toto <- playBlackJack()