word-ladder-gen
v1.0.1
Published
Generate and solve word ladder puzzles
Maintainers
Readme
word-ladder-gen
Generate and solve word ladder puzzles.
Install
npm install word-ladder-genUsage
import { generate, solve, validate_word } from 'word-ladder-gen';generate() - Generate a random puzzle:
generate({ length: 4, minSteps: 3, maxSteps: 5 }){
"word1": "cold",
"word2": "warm",
"word1freqrank": 412,
"word2freqrank": 309,
"minSteps": 4,
"optimalSolution": ["cold", "cord", "card", "ward", "warm"]
}solve() - Solve a specific puzzle:
solve('head', 'tail'){
"word1": "head",
"word2": "tail",
"word1freqrank": 87,
"word2freqrank": 497,
"minSteps": 5,
"optimalSolution": ["head", "heal", "teal", "tell", "tall", "tail"]
}validate_word() - Check if word exists:
validate_word('test') // true
validate_word('test', 4) // true (checks 4-letter dictionary only)
validate_word('xyzq') // falseAPI
generate(options)
| Option | Default | Description |
|--------|---------|-------------|
| length | 4 | Word length (4, 5, or 6) |
| minSteps | 2 | Minimum solution steps |
| maxSteps | 10 | Maximum solution steps |
| frequency | 2000 | Use top N most common words |
Dictionary sizes: 3,903 (4-letter), 8,636 (5-letter), 15,232 (6-letter).
Returns puzzle object or null if no valid puzzle found.
solve(word1, word2)
Returns shortest path between two words, or null if unsolvable.
validate_word(word, length?)
Returns true if word exists in dictionary.
Graph Data
Pre-computed adjacency graphs are exported for direct access:
import { graph4, graph5, graph6 } from 'word-ladder-gen';
graph4['cold'] // → ['bold', 'fold', 'gold', 'hold', 'mold', 'sold', 'told', 'cod', 'cola', 'cole', 'colt', 'cols']Each graph maps words to arrays of valid one-letter transformations.
License
MIT
