UNPKG

@pasciaks/lostwords-org-library

Version:

Lostwords.org - Word search generator and function library.

233 lines (152 loc) 7.18 kB
# @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. --- ```bash # npm install npm install @pasciaks/lostwords-org-library ``` ```javascript // Simple Javascript usage const { createManyPuzzles } = require("@pasciaks/lostwords-org-library"); let result = createManyPuzzles(1); console.log("Puzzles:", result); console.log("Puzzles Created:", result.length); ``` ```javascript // Runkit usage example let lwl = require("@pasciaks/lostwords-org-library"); console.log(lwl.createManyPuzzles(1)); ``` ```javascript // 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); ``` ```js 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: ```bash 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. ```js 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. ```bash node example.js ``` --- # Additional links and examples for reference: This website demonstrates use of the library. [Demo Website](https://sheldon.pasciak.com/). This website demonstrates a revised word hiding algorithm. [Word Hiding Example](https://pasciak.com/word-hiding-algo.html). This website implements a full featured game using the library. [Lostwords.org](http://lostwords.org). This GitHub is the repo for this NPM Package. implements a full featured game using the library. [Lostwords-org-library](https://github.com/pasciaks/lostwords-org-library). This GitHub is the repo for a Java code-base for similar word hiding. [lostwords-java](https://github.com/pasciaks/lostwords-java). Contribute and support this effort by donating to my cause. [Contribute/Support](https://www.buymeacoffee.com/shelpasc).