| # | Pattern | Your Answer | Correct | Copy |
|---|---|---|---|---|
| {{ i + 1 }} |
|
{{ row.yourAnswer }} | {{ row.correctAnswer }} |
Morse code is a compact alphabet built from dots and dashes. It matters because a small change in pattern changes the symbol completely, which makes recognition practice a real accuracy problem rather than a vague memory exercise. This package turns that recognition work into a repeatable visual quiz for letters, numbers, or a mixed set.
Instead of playing audio, the quiz renders each pattern as a clean dot-dash image and asks you to match it to the correct character. You choose the question pool, choose how many prompts to answer, optionally enter a seed, and then work through four-option questions until the result summary appears.
That makes the page useful for a few different study situations. A beginner can stay inside the letters-only pool until the common patterns stop feeling interchangeable. Someone revising for an exam or an amateur-radio study session can switch to the mixed set and use a fixed seed to recreate the same quiz later. A teacher can hand students the same seed and question count so everyone works from the same pattern order.
The result is more than a single score. After the last answer, the package shows correct and incorrect percentages, a row-by-row details table, a correct-versus-incorrect chart, and a JSON payload that includes the selected set, the seed, the score, the response rows, and the actual Morse patterns behind the correct answers.
The important limit is that this is visual recognition practice only. The code does not test sending rhythm, receiving live audio, or punctuation outside the built-in letter and number pools. A strong score here means you are recognizing the displayed patterns in this package. It does not automatically mean you can copy fast audio or send clean timing on air.
The first decision is the quiz set. The package treats letters, numbers, and the mixed pool as different study modes rather than cosmetic filters. Letters-only is the best fit when you are still building the alphabet. Numbers-only is useful when figures are the weak spot. The mixed pool is the closest thing to a short review drill because it pulls from the full built-in character set.
Question count is constrained by the pool you choose, so the package never asks for more unique prompts than the set can supply. A shorter run is helpful when you want quick repetition. A longer run is better when you want to expose confusion patterns, such as repeatedly mixing S and H or 6 and B.
| Quiz set | Built-in pool | Allowed question counts | Best use |
|---|---|---|---|
| Letters | A to Z | 5, 10, 15, 20, 26 | Alphabet drills and early recognition practice |
| Numbers | 0 to 9 | 5, 10 | Focused work on figure patterns |
| Letters + Numbers | A to Z and 0 to 9 | 10, 15, 20, 30, 36 | Mixed review and broader revision sessions |
The seed field matters whenever you need repeatability. With the same set, question count, and seed, the package rebuilds the same shuffled quiz order and the same answer-option ordering. That is useful for classroom comparisons, self-testing across days, or drilling the same mistakes without relying on memory alone. If you leave the seed empty, the package generates a fresh random source when the quiz starts.
Use the result views for different jobs. The details table is the best place to see which exact prompts you missed. The chart is only a quick balance view of correct versus incorrect answers. The JSON export is useful if you want a structured record of the run, including the selected set, the score, the rows, and the underlying pattern map.
A high percentage is most meaningful when you know what it was measured against. Ten correct answers in the numbers pool is a different achievement from ten correct answers in the full mixed pool. Always read the score together with the active set label, the question count, and the individual rows.
The character model is fixed in the script. The package defines Morse patterns for the twenty-six Latin letters and the ten digits, then builds three quiz sets from those same mappings. Each prompt is displayed as an inline SVG image created locally from the stored dot-dash string, so the quiz does not depend on remote image files or a server-side pattern renderer.
Question generation is deterministic when a seed is present. The code turns the seed text into a pseudo-random number stream, shuffles the selected pool, takes the requested number of characters, and then builds each question from one correct answer plus three distractors from the same pool. The options are shuffled again before the correct index is recorded. That means the seed controls both which prompts appear and where the correct answer sits in each four-option block.
Scoring is intentionally simple. Every question contributes either one point or zero. There is no time penalty, partial credit, or weighting for harder symbols. When the last answer is chosen, the package marks the quiz finished, calculates the correct percentage, derives the incorrect percentage as the remainder to one hundred, and populates the table, chart, and JSON views from the same response rows.
The result payload is also fully local. The JSON view stores the chosen set, the seed, the requested question count, the raw score, the percentage, the per-question rows, and a pattern map keyed by the correct characters. No dedicated backend is involved in producing or storing that payload. Privacy therefore depends mostly on whether you copy or share the exported results yourself.
| Symbol | Meaning in this package |
|---|---|
n |
Total number of questions in the run |
c_i |
1 when question i is answered correctly, otherwise 0 |
S |
Raw score shown in the summary box |
P |
Correct percentage |
W |
Incorrect percentage |
| Element | Rule | Why it matters here |
|---|---|---|
| Dot | Base timing unit | Defines the shortest signal element in standard Morse timing |
| Dash | Equal to three dots | Shows why some symbols are longer to hear or send than they are to glance at visually |
| Intra-character spacing | One dot between signals in the same character | Important for sending and audio copy, but not tested by this visual quiz |
| Inter-character spacing | Three dots between letters | Part of real transmission rhythm, not part of this package's scoring |
| Word spacing | Seven dots between words | Another live-traffic rule that sits outside this character-recognition drill |
| View | What it shows | Exports available |
|---|---|---|
| Details | Row-by-row answers, correct answers, and correctness state | CSV copy, CSV download, DOCX export, single-row copy |
| Answer Chart | Correct versus incorrect breakdown | PNG, WebP, JPEG, CSV |
| JSON | Set, seed, score, rows, and pattern map | Clipboard copy and JSON download |
The headline score tells you how many prompts you matched correctly in that specific run. The percentages turn that raw score into a quick summary, but they do not say anything about symbol speed, live-copy performance, or whether you would still recognize the same character under audio timing pressure.
The details table is where the useful diagnosis happens. If your mistakes cluster around symbols with similar shapes, such as E, I, and S, or around longer numeric patterns, the table will show that in a way the chart cannot. The chart only tells you how much was right or wrong overall.
The seed and set label also matter when you compare runs. An 80 percent score on ten number questions is not directly comparable to 80 percent on thirty mixed questions. Read the score, the active set, the question count, and the error rows together before deciding whether your recognition is actually improving.
A perfect result should be read as mastery of this package's current task: matching the displayed patterns to the available answer choices. It is encouraging, but it is still narrower than receiving timed code, copying whole words, or sending Morse with clean spacing.
A learner wants to check whether the same weak letters improve after two study sessions. They choose the letters set, keep the question count at 20, enter a memorable seed, and save the first result. On the next day they reuse the same settings, which recreates the same prompt order and option order, so the difference in score reflects recognition change rather than a different quiz.
An instructor wants every student to answer the same ten number questions. They distribute the set, count, and seed ahead of time. Each student then sees the same quiz build, which makes the exported results easier to compare because the same prompts were missed or answered correctly in the same positions.
A student who already knows the alphabet reasonably well switches to the mixed letters-plus-numbers set at 30 questions. The raw score is lower than the letters-only score, but the details table reveals that the main problem is not letters at all. It is confusion among longer number patterns. That tells the student where to focus next.
Yes, as long as the quiz set and question count also stay the same. The seed drives the prompt shuffle and the answer-option shuffle.
No. This package only quizzes the built-in letters A to Z, the digits 0 to 9, or the combined pool of those two sets.
No. The package tests visual recognition of rendered patterns, not listening speed, timing, spacing, or sending technique.
Yes. The details view supports CSV copy, CSV download, DOCX export, and row copy. The chart and JSON views also have their own export paths.