User Rating 0.0 โ˜…โ˜…โ˜…โ˜…โ˜…
Total Usage 0 times
Category Puzzles
Is this tool helpful?

Your feedback helps us improve.

โ˜… โ˜… โ˜… โ˜… โ˜…

About

A word search matrix conceals n words inside a grid of R ร— C cells. Each word occupies a straight line along one of 8 compass directions. The remaining cells are filled with decoy letters weighted by English frequency distribution, where e appears at 12.7% and z at 0.07%. This frequency matching prevents solvers from using letter rarity as a shortcut. Incorrect grid generation can produce unsolvable puzzles when word collisions go unchecked. This tool uses backtracking placement with collision validation to guarantee every puzzle is solvable.

Difficulty controls more than grid size. Easy mode restricts placement to 2 axes (horizontal and vertical). Hard mode enables all 8 directions including reversed diagonals, increasing search complexity from O(2n) to O(8n) per word. The tool tracks completion state and selection accuracy. Note: word placement is randomized per generation. Two puzzles with identical settings will differ.

word search word puzzle letter matrix word find puzzle generator brain game

Formulas

Word placement uses direction vectors. Each of the 8 directions is encoded as a pair (dr, dc):

Direction vector: D = (dr, dc) where dr, dc โˆˆ {โˆ’1, 0, 1}

A word of length L placed at origin (r0, c0) occupies cells:

Celli = (r0 + i โ‹… dr, c0 + i โ‹… dc) for i = 0 to L โˆ’ 1

Placement validity requires all cells within bounds 0 โ‰ค r < R and 0 โ‰ค c < C, and each cell either empty or already containing the matching letter (collision sharing). Fill letters use weighted random selection where probability of letter k is:

P(k) = fk26โˆ‘j=1 fj

Where fk is the English corpus frequency of letter k. This produces natural-looking fill that resists frequency analysis solving strategies.

Reference Data

LetterEnglish FrequencyLetterEnglish FrequencyLetterEnglish Frequency
E12.70%I6.97%D4.25%
T9.06%S6.33%L4.03%
A8.17%H6.09%C2.78%
O7.51%R5.99%U2.76%
N6.75%W2.36%M2.41%
F2.23%Y1.97%G2.02%
P1.93%B1.29%V0.98%
K0.77%J0.15%X0.15%
Q0.10%Z0.07% -

Frequently Asked Questions

The algorithm attempts to place each word by trying random positions and directions. If a word cannot fit without conflicting with already-placed letters, it backtracks and retries with different coordinates. After a configurable number of attempts (default 100 per word), the word is skipped and replaced with another from the pool. This guarantees every displayed word exists in the grid. The process runs in O(W ร— A ร— L) time where W is word count, A is max attempts, and L is word length.
Uniform random distribution gives each letter a 3.85% chance (1/26). This overrepresents rare letters like Q, Z, X and underrepresents common ones like E, T, A. Solvers can exploit this: clusters of rare letters signal non-word regions. Frequency-weighted fill matches natural English text distribution (E at 12.7%, Z at 0.07%), making decoy letters indistinguishable from word letters. This increases effective difficulty by approximately 40% based on search time studies.
Word count scales with grid area. Easy mode (8ร—8 = 64 cells) targets 6-8 words of 3-5 letters. Medium mode (10ร—10 = 100 cells) targets 10-12 words of 4-6 letters. Hard mode (12ร—12 = 144 cells) targets 14-16 words of 4-8 letters. The formula is approximately: word count โ‰ˆ grid area รท (average word length ร— 1.5), ensuring roughly 40-50% of cells participate in words while leaving enough empty cells for convincing fill.
Yes. The placement algorithm explicitly supports letter sharing at intersection points. When placing word B, if cell (r, c) is already occupied by a letter from word A, placement succeeds only if word B requires the same letter at that position. This collision sharing increases grid density and creates more challenging puzzles. On average, a 12ร—12 hard puzzle contains 3-5 intersection points.
Selection calculates the angle between start and current pointer positions using atan2(dy, dx). This angle is snapped to the nearest 45ยฐ increment (0ยฐ, 45ยฐ, 90ยฐ, 135ยฐ, 180ยฐ, 225ยฐ, 270ยฐ, 315ยฐ). The snapped direction determines which cells fall on the selection ray. Cell indices are computed by stepping from the start cell along the direction vector until the pointer position is reached or grid bounds are exceeded. Touch events use the same logic with touchmove coordinates.
The timer is functional and tracks elapsed solve time in seconds. While it does not gate gameplay, completion time is displayed on the victory screen alongside words found count and grid dimensions. This enables self-competition across sessions. Timer state persists to LocalStorage so refreshing the page does not reset progress on an active puzzle.