Generate wordsearch and crossword puzzles using custom lists of words (and clues). Make them easy or hard, and print them to solve offline with paper and pencil!

Build word games using R. Ya hearrrd?
Features:
# install.packages("devtools")
devtools::install_github("anthonypileggi/worrrd")
Create your very own custom wordsearch! Worrrd.
library(worrrd)
# Simple wordsearch
words <- c("alligator", "crocodile", "squirrel", "swordfish", "german shepherd", "panda", "wolf")
x <- wordsearch(words, r = 20, c = 20)
#> Found positions for 7/7 words.
plot(x, solution = TRUE)

You can make it as hard as you want. Go bananas!
# All 50 States
library(datasets)
x <- wordsearch(state.name, r = 50, c = 50)
#> Found positions for 50/50 words.
plot(x, solution = TRUE, puzzle_size = 2, legend_size = 2)

If you want to make a pdf book full of wordsearch puzzles that is easily printed, you can provide a .yml file.
my_book.yaml
title: I made a wordsearch!
author: Unicorn Cupcake
type: wordsearch
rows: 20
cols: 20
pages:
- name: Fruity Fun
words: [apple, orange, banana, grapes, kiwi, strawberry, watermelon, lemon, lime]
- name: Animal Mayhem
words: [dog, cat, fish, wolf, horse, shark, crocodile, alligator, iguana]
image: "https://us.123rf.com/450wm/miceking/miceking1506/miceking150601500/40903456-stock-vector-lion-silhouette.jpg"
- name: Searchin in the USA
words: "`state.name`"
Then you can generate a pdf puzzle book.
book(input_file = "my_book.yaml", output_file = "my_puzzle_book")
Oh, you’re one of the more sophisticated types that craves a crossword puzzle? Worrrd.
words <- row.names(state.x77)
clues <- paste0(state.region, " state covering ", scales::comma(state.x77[, "Area"]), " square miles.")
x <- crossword(words, clues, r = 40, c = 40)
#> Found positions for 50/50 words.
x
#> Crossword Puzzle
#> Contains 50 clues.
#> There are 25 across and 25 down.
plot(x)

plot(x, solution = TRUE)
