npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@pasciaks/lostwords-org-library

v1.0.81

Published

Lostwords.org - Word search generator and function library.

Downloads

26

Readme

@pasciaks/lostwords-org-library


Word search Puzzle Maker

Javascript library/function that will create a SQUARE word search puzzle.

Note: This code is from many years ago and just being added to npm and the related Github repository as a way to establish a growing, improved code base.

This is a backend NPM Package, using it requires running code using Node.Js (example/instructions at the end of this document)

Note: This library is configured for use as a backend Node.js function to be used server side. I will likely be creating a frontend library/module function in the future.

Note: Currently implemented cleanup and module javascript for use as a frontend function - More to do, check back soon.



# npm install

npm install @pasciaks/lostwords-org-library
// Simple Javascript usage

const { createManyPuzzles } = require("@pasciaks/lostwords-org-library");

let result = createManyPuzzles(1);

console.log("Puzzles:", result);

console.log("Puzzles Created:", result.length);
// Runkit usage example

let lwl = require("@pasciaks/lostwords-org-library");

console.log(lwl.createManyPuzzles(1));
// Configurable options for creating a word find with your words, etc.

let lwl = require("@pasciaks/lostwords-org-library");

//--------------------------------------------------------------------
// Use local variables to hold configured settings
//--------------------------------------------------------------------

// Number of rows and columns to build puzzle grid, for example 8
let global_squarePuzzleSize = 8;

// Number of bends in the words for hiding them.

// For example 0 (straight line hides)
// For example 2 (max of 2 bends)
// For example 999 (only 90 degree bends)
let global_p_bends = 0;

// Allow Diagonals - "yes" | "no"
let global_diagonals = "yes";

// Option for word hint generation.

// [A]ny, Randomly chooses one of the following
// [R]eversed,
// [S]crambled,
// [N]o Vowels,
// [F]irst Letter and blanks
// [D]efault shows the word;
let global_wordlistoption = "A";

// String title of the puzzle.
let global_title_name = "Title";

// Letter use/hide option - "U" | ""

// Using a "U" here means don't duplicate use of letters
let global_clueoption = "U";

// Fill in remaining letters of grid with selection given.

// "" - Use random letters from english alphabet in upper case
// "[WORDLETTERS]" - Use random letters from any letters from words hidden
// "1234ADFB" - Use random letters from provided list of letters
let global_blanks = "";

// Comma separated string of words to hide, upper case, no spaces
let global_p_words = "LOST,WORDS,SHELDON,NODE,JAVASCRIPT";

// String for post_msg title
let global_post_msg = "Puzzle Solved";

// String for pre_msg title
let global_pre_msg = "Good Luck";

//--------------------------------------------------------------------
// Set the settings
//--------------------------------------------------------------------

lwl.setGlobalOptionValue("global_squarePuzzleSize", global_squarePuzzleSize);
lwl.setGlobalOptionValue("global_p_bends", global_p_bends);
lwl.setGlobalOptionValue("global_diagonals", global_diagonals);
lwl.setGlobalOptionValue("global_wordlistoption", global_wordlistoption);
lwl.setGlobalOptionValue("global_title_name", global_title_name);
lwl.setGlobalOptionValue("global_clueoption", global_clueoption);
lwl.setGlobalOptionValue("global_blanks", global_blanks);
lwl.setGlobalOptionValue("global_p_words", global_p_words);
lwl.setGlobalOptionValue("global_post_msg", global_post_msg);
lwl.setGlobalOptionValue("global_pre_msg", global_pre_msg);

//--------------------------------------------------------------------
// Create the puzzle data by running the library
//--------------------------------------------------------------------

let result = lwl.createManyPuzzles(1);

console.log(result);

The p_data value holds the letters.

These letters can be used to create a square grid.

u c d y e d r n e t s e u t
y t x s r e e e t o e m m d
i r l d a r d o d t y t o n
r d h t r i j h d k S e t d
g s n h s a m p e D h h y y
e o a o t o n h i R a r n s
o k o i i w f m m W O t g h
a r d e t h n r y f u s g r
a e l d s t w r i n a i h t
e d h o r f l a a r t a t w
e w a i s y l l s n o T h a
l t s a t r m h L r S e a h
d n a r e o t r n O u l t s
r s o f n a e a h e o n o n

Puzzles: [
  {
    creator_id: 1,
    id: 1692831655194,
    creation_datetime: 1692831655194,
    title: 'Untitled Puzzle',
    p_pre_msg: 'Good Luck',
    p_post_msg: 'Puzzle Solved',
    p_rows: 14,
    p_cols: 14,
    p_data: 'UCDYEDRNETSEUTYTXSREEETOEMMDIRLDARDODTYTONRDHTRIJHDKSETDGSNHSAMPEDHHYYEOAOTONHIRARNSOKOIIWFMMWOTGHARDETHNRYFUSGRAELDSTWRINAIHTEDHORFLAARTATWEWAISYLLSNOTHALTSATRMHLRSEAHDNAREOTRNOULTSRSOFNAEAHEONON',
    p_bends: 9,
    p_words: [ 'LOST', 'WORDS' ],
    p_locations: [ '9,12,10,13,11,12,12,11', '10,7,11,7,10,6,10,5,11,4' ],
    p_failed: false,
    p_clues: [ 'r_TSOL', 'r_SDROW' ],
    p_wordoptions: 'B',
    p_clueoptions: 'U'
  }
]

QUICK-START - EXAMPLE

  • In the source code of this package, the folder named [module] has an implemented example of puzzle generation for frontend HTML/JavaScript use.

  • In the source code of this package, the folder named [examples] has an additional HTML, JavaScript Implementation of the word paths generator.

QUICK-START - EXAMPLE USAGE

NOTE: To use this code, generally, follow these instructions.

  • Create a folder/directory on your computer.

  • Open that directory in the bash terminal/command line.

  • Inside the terminal/command line, execute the following:


npm install @pasciaks/lostwords-org-library
  • Create a file in the same directory ( example.js )

  • Add the following code to the example.js file you created.

const { createManyPuzzles } = require("@pasciaks/lostwords-org-library");

let result = createManyPuzzles(1);

console.log("Puzzles:", result);

console.log("Puzzles Created:", result.length);
  • Save the .js file and run this example by executing the following in the same terminal.


node example.js


Additional links and examples for reference:

This website demonstrates use of the library. Demo Website.

This website demonstrates a revised word hiding algorithm. Word Hiding Example.

This website implements a full featured game using the library. Lostwords.org.

This GitHub is the repo for this NPM Package. implements a full featured game using the library. Lostwords-org-library.

This GitHub is the repo for a Java code-base for similar word hiding. lostwords-java.

Contribute and support this effort by donating to my cause. Contribute/Support.