@pasciaks/lostwords-org-library
Version:
Lostwords.org - Word search generator and function library.
233 lines (152 loc) • 7.18 kB
Markdown
---
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.
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 @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'
}
]
```
- 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.
- 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
```
---
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).