Make a Game in R

Recently I found a interesting R package call nessy which allows you to create a simple game driven by shiny. Thus. I tried a little bit about this package. Making a interactive app in R is promising in the files like teaching, presentation and visualization.

Finally, I created the following shiny app:


jscode <- "shinyjs.closeWindow = function() { window.close(); }"
ui <- cartridge(
  title = "{Memorize the Names!}",
  subtitle = "Do you have some names to memorize in few minutes? Try this game!",
    title = "Names you want to memorize (i.e. Jonathan, Lesa)"
    title = "Add a Name",
    text_input(id = "name1", label = "Name", placeholder = "Jonathan Templin"),
    text_input(id = "key", label = "Keys", placeholder = "Iowa/DCM"),
    button_primary(id = "add", "Add")
  button_success(id = "play", "Play the Game"),
  extendShinyjs(text = jscode, functions = c("closeWindow")),
  button_error(id = "close", "Close Window"),
  # Game pages

server <- function(input, output, session) {
  names <- reactiveValues(
    oldnames = "",
    allnames = NULL,
    allkeys = NULL
  observeEvent(input$add, {
    names$oldnames = paste(names$oldnames, "<br>", input$name1, "  <==>  ", input$key)
    names$allnames = c(names$allnames, input$name1)
    names$allkeys = c(names$allkeys, input$key)
    output$namelist <- renderText(names$oldnames)
  observeEvent(input$play, {
    selectedkey <- sample(names$allkeys, 1)
    selectedname <- names$allnames[names$allkeys == selectedkey]
    output$gamepage <- renderUI({
        paste("Key:", selectedkey),
        text_input(id = "guessname", label = "Guess a Name", placeholder = "Jonathan")

  observeEvent(input$close, {

shiny::shinyApp(ui, server)

The game is like this:

Jihong Zhang, M.S.
Jihong Zhang, M.S.
Ph.D. Candidate

My research interests mainly focus on the Bayesian Diagnostic Classification Models (DCMs) - a special kind of Item Response Model and the model checking method, as applied in the psychological, educational, and social sciences. I seek to improve the utility of advanced psychometric modeling and provide easy-to-use tools or software for researchers.