Functie om één ronde te draaien
Laten we nu de functie uit de vorige oefening gebruiken en één overkoepelende functie schrijven, evaluate_first_roll, om één ronde Craps te voltooien. Zoals je in de voorbeeldcode hieronder ziet, neemt deze functie de eerste worp van de shooter als input en gaat van daaruit verder. De functies roll_dice en roll_after_point zijn alvast voor je ingeladen.
Deze oefening maakt deel uit van de cursus
Kanspuzzels in R
Oefeninstructies
- Gebruik de operator
%in%om te controleren of de worp een 7 of 11 is; dat levert direct winst op. - Gebruik de operator
%in%om te controleren of de worp een 2, 3 of 12 is; dat betekent direct verlies. - Als er een point is vastgesteld, ga dan door met gooien totdat ofwel het point opnieuw wordt gegooid (winst), of een 7 wordt gegooid (verlies).
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
evaluate_first_roll <- function(roll){
# Check whether the first roll gives an immediate win
if(___){
won <- TRUE
}
# Check whether the first roll gives an immediate loss
if(___){
won <- FALSE
}
if(roll %in% c(4,5,6,8,9,10) ){
# Roll until the point or a 7 is rolled and store the win/lose outcome
won <- ___
}
return(won)
}