Add crossword puzzle item type

Admin enters Across/Down words and clues; server auto-generates the grid
using a backtracking placement algorithm (longest-first, intersection-based).
Students fill in the interactive grid with click-to-select, direction toggle,
arrow-key navigation, and Tab-to-next-word. Auto-graded per word on submit,
with correct/wrong color highlighting on the results view. Includes a print
worksheet option for blank paper practice.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Nate EmmertandClaude Sonnet 4.6 committed 2026-08-01 17:56:46 -04:00
1 parent 60bfe3ca4a
commit 682534a061
6 files changed
+680 -6

No files matched your search

+21
View File
@@ -130,6 +130,7 @@
<option value="spelling_practice">✏️ Spelling Practice</option>
<option value="spelling_test">⭐ Spelling Test</option>
<option value="matching">🔤 Matching</option>
<option value="crossword">⬛ Crossword</option>
<option value="flashcards">🗂️ Flashcards</option>
</select>
</label>
@@ -247,6 +248,26 @@
<button type="button" id="ie-add-pair" class="secondary">+ Add pair</button>
</div>
<div id="ie-field-crossword" class="ie-field" hidden>
<div class="cw-entry-cols">
<div>
<h3 style="margin-bottom:.5rem">Across clues</h3>
<div id="ie-across-clues"></div>
<button type="button" id="ie-add-across" class="secondary small">+ Add across clue</button>
</div>
<div>
<h3 style="margin-bottom:.5rem">Down clues</h3>
<div id="ie-down-clues"></div>
<button type="button" id="ie-add-down" class="secondary small">+ Add down clue</button>
</div>
</div>
<div style="margin-top:1rem;display:flex;gap:.75rem;align-items:center;flex-wrap:wrap">
<button type="button" id="ie-crossword-generate" class="secondary">⚡ Generate crossword</button>
<span id="ie-crossword-status" class="hint"></span>
</div>
<div id="ie-crossword-preview" style="margin-top:.75rem;overflow-x:auto"></div>
</div>
<div id="ie-field-spelling" class="ie-field">
<label>Word list <select id="ie-list"></select></label>
</div>