wordpuzzle

1.0.0 • Public • Published

wordPuzzle

Kind: global class

new wordPuzzle()

Create a words puzzle game

wordPuzzle.wordList

Kind: instance property of wordPuzzle

Param Type Description
wordList Array.<string> copy and sort the words by length, inserting words into the puzzle from longest to shortest works out the best

wordPuzzle.placeWordInPuzzle(puzzle, opts, word) ⇒ boolean

Adds the specified word to the puzzle by finding all of the possible locations where the word will fit and then randomly selecting one

Kind: instance method of wordPuzzle Returns: boolean - true if the word was successfully placed, false otherwise

Param Type Description
puzzle Array.<Array> current state of the puzzle
opts Object controls whether or not word overlap should be maximized
word string word to fit into the puzzle

wordPuzzle.newPuzzle([wordList], [options]) ⇒ Array.<Array>

Kind: instance method of wordPuzzle

Param Type Default
[wordList] Array.<string> this.wordList
[options] Object this.opts

wordPuzzle.newPuzzleLax(opts)

Wrapper around newPuzzle allowing to find a solution without some words

Kind: instance method of wordPuzzle

Param Type Description
opts Object options to use for this puzzle

wordPuzzle.solve(puzzle, words) ⇒ Array.<{x: number, y: number, orientation: string, word: string, overlap: number}>

Returns the starting location and orientation of the specified words within the puzzle. Any words that are not found are returned in the notFound array

Kind: instance method of wordPuzzle Access: public

Param Type
puzzle Array.<Array>
words Array.<string>

wordPuzzle.print(puzzle) ⇒ string

Outputs a puzzle to the console, useful for debugging

Kind: instance method of wordPuzzle Returns: string - formatted string representing the puzzle

Param Type Description
puzzle Array.<Array> current state of the puzzle

wordPuzzle.drawPuzzle([domElem], [puzzle])

Draws the puzzle by inserting rows of buttons into the DOM Element

Kind: instance method of wordPuzzle

Param Type Default
[domElem] HTMLElement this.domElem
[puzzle] Array.<Array> this.finalPuzzle

wordPuzzle.setEventHandlers([domElem])

Set the event handlers that will trigger the recognition of the words

Kind: instance method of wordPuzzle

Param Type Default
[domElem] HTMLElement this.domElem

wordPuzzle.wordPuzzle

Kind: static class of wordPuzzle

new wordPuzzle(words, domElem, [opts])

Creates an instance of wordPuzzle.

Param Type Default Description
words Array.<string> list of words to include in the puzzle
domElem HTMLElement HTML DOM Element that will contain the game
[opts] Object {} game options
[opts.lang] string define the letters set to use, depending on the words language, must be the ISO 639-1 language code, default: EN
[opts.heigth] number desired height of the puzzle, default: smallest possible
[opts.width] number desired width of the puzzle, default: smallest possible
[opts.orientations] Array.<string> allOrientations list the authorized orientations in which the words can be formed, default: allOrientations
[opts.fillBlanks] boolean true do the game must fill the spaces not used to form a word with random letters, default: true
[opts.allowExtraBlanks] boolean true can the game add additional blanks, default: true
[opts.maxAttempts] number 3 number of tries before increasing puzzle size, default: 3
[opts.maxGridGrowth] number 10 number of puzzle grid increases, default: 10
[opts.preferOverlap] boolean true maximize word overlap or not, default: true
[opts.debug] boolean false wether or not to print the puzzle to the console, default: false

Readme

Keywords

Package Sidebar

Install

npm i wordpuzzle

Weekly Downloads

0

Version

1.0.0

License

none

Unpacked Size

48.6 kB

Total Files

4

Last publish

Collaborators

  • ctrlaltdev