Skip to main content

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

Found: 0 / 10

Words to find (Animals):

  • CAT
  • DOG
  • LION
  • TIGER
  • ZEBRA
  • PANDA
  • KOALA
  • BEAR
  • WOLF
  • EAGLE

How to use this word search

  1. Pick a theme (Animals, Fruits, Countries, Space, or Sports) from the dropdown — the grid regenerates instantly.
  2. Drag with the mouse or finger from the first letter of a word to the last; valid lines are horizontal, vertical, or diagonal.
  3. If drag is awkward, click the first letter then click the last — the same straight-line rules apply.
  4. Words you find turn green in both the grid and the side list; the counter shows how many remain.
  5. 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.