--- title: "interleaved-bootwar" output: rmarkdown::html_vignette vignette: > %\VignetteIndexEntry{interleaved-bootwar} %\VignetteEngine{knitr::rmarkdown} %\VignetteEncoding{UTF-8} --- ```{r, include = FALSE} knitr::opts_chunk$set( collapse = TRUE, comment = "#>" ) ``` This vignette shows how to play bootwar using an interleaved deck built with an anonymous function. An interleaved deck gives users the ability to sample cards from different distributions for different players. ### Initialization: Initialization is the same as for a standard 52 card deck or an anonymous deck. ```{r} # Load bootwar library(bootwar) # Set up vectors for computer and player's cards and values comp_cv <- vector(mode = "character") comp_vv <- vector(mode = "numeric") plyr_cv <- vector(mode = "character") plyr_vv <- vector(mode = "numeric") ``` ### Define Custom Deck Use the deck_of_cards parameter of shuffle_deck() to define a different custom deck of cards for each player by using an anonymous function to return a list of decks. ```{r} seed <- 123 set.seed(seed) # Shuffle the deck ideck <- mmcards::shuffle_deck( deck_of_cards = function(x) {list(as.integer(stats::runif(26, 25, 50)), as.integer(stats::runif(26, 35, 55)))}, seed = seed ) head(ideck) ``` The rest of the workflow follows the same structure as the README. ### Play the First Round: ```{r} rres <- play_round(cdeck = ideck, plyr_cv = plyr_cv, plyr_vv = plyr_vv, comp_cv = comp_cv, comp_vv = comp_vv) ``` ### Continue the Game for Four More Rounds: ```{r} for (i in 1:4) { rres <- play_round(cdeck = rres$updated_deck, plyr_cv = rres$plyr_cv, plyr_vv = rres$plyr_vv, comp_cv = rres$comp_cv, comp_vv = rres$comp_vv) } # Ensure 10 cards have been dealt nrow(rres$updated_deck) ``` ### Analyze the Game: ```{r} gres <- analyze_game(plyr_vv = rres$plyr_vv, comp_vv = rres$comp_vv, mode = "pt", nboot = 1000, seed = 150, conf.level = 0.05) # Display game results gres$winner gres$bootstrap_results$effect.size gres$bootstrap_results$ci.effect.size gres$bootstrap_results$p.value ```