Word Search
Find hidden words on a 12x12 grid across five bundled themes, with mouse and touch drag selection.
Written by Golam Rabbani, Founder & Lead Engineer
How to use this word search
- Pick a theme (Animals, Fruits, Countries, Space, or Sports) from the dropdown — the grid regenerates instantly.
- Drag with the mouse or finger from the first letter of a word to the last; valid lines are horizontal, vertical, or diagonal.
- If drag is awkward, click the first letter then click the last — the same straight-line rules apply.
- Words you find turn green in both the grid and the side list; the counter shows how many remain.
- Press New Puzzle or Restart for a fresh layout, or Copy Progress to put your found/remaining list on the clipboard.
About this word search
Word Search is the classic puzzle where target words are hidden inside a square of letters, oriented horizontally, vertically, or diagonally — forward or backward. This tool builds the puzzle from a bundled 10-word list per theme, all committed to lib/data/word-search-words.ts. For each word the generator tries up to 200 random placements (random starting cell and one of 8 directions) and keeps the first one that fits without conflicting with already-placed letters. Longer words are placed first so they have the easiest time finding space, and any unfilled cell is patched with a random uppercase letter so the puzzle does not leak its answers.
Selection is implemented as a "first cell + last cell" line check. The cells must form a straight horizontal, vertical, or 45° diagonal, and a match is accepted in either direction so reading a word backwards still counts. Once a match lands, the cells turn green permanently and the word is marked off the side list. If the generator could not place a word in 200 attempts it lists it under "Couldn't place" — pressing Restart usually finds room on the next shuffle.
Worked example: choose the Animals theme. The grid renders 12×12 with ten target words including TIGER, PANDA, KOALA, EAGLE, and WOLF. Spot a horizontal "TIGER" in row 4 and drag from the T to the R. The cells flash blue while you drag, then snap to permanent green when you release, and TIGER gets a green pill with a strikethrough in the side list. The counter goes from "Found: 0 / 10" to "Found: 1 / 10". Finish all ten and the result panel reads "All words found! You cleared the Animals puzzle".
FAQ
- How big is the grid?
- 12 columns by 12 rows. The size is fixed so the layout works on small phones and tablets without zoom.
- Where does the word list come from?
- Five themed lists ship in lib/data/word-search-words.ts (Animals, Fruits, Countries, Space, Sports). All entries are upper-case ASCII so the generator can fit them comfortably.
- Why does my drag sometimes not register?
- Drag only finalises if the start and end cells form a straight line (horizontal, vertical, or 45° diagonal). Off-axis drags release with no match. On touch screens, glide a fingertip across the cells; do not lift it until you reach the last letter.
- Why are some words listed as "Couldn't place"?
- The generator gives up after 200 placement attempts. If a long word collides with everything already placed, it goes into the skipped list. Pressing Restart usually fits all ten on the next try.
- Does it run on the server?
- No. The puzzle generator and the click handlers all run in your browser; no network traffic.
- Are reverse words allowed?
- Yes — selection accepts the word read forward or backward, and the 8-direction generator already places some words reversed.