Question includes []solution

master
Bel LaPointe 2023-04-07 11:31:31 -06:00
parent fd1d06db73
commit e81de97e8b
3 changed files with 98 additions and 96 deletions

View File

@ -21,9 +21,10 @@ type (
Close()
}
Question struct {
Q Renderable
Clues []Renderable
Tags []IDT
Q Renderable
Solution []Renderable
Clues []Renderable
Tags []IDT
}
Answer struct {
Q IDQ

5
testdata/tofugu.sh vendored
View File

@ -2,10 +2,11 @@ for f in tofugu.d/*-0.png; do
qid=${f##*/}
qid=${qid%-*}
tags=${qid#*-}
printf ' %s: {"q":"%s", "clues":["%s", "%s"], "tags": ["%s"]}'"\n" \
printf ' %s: {"q":"%s", "clues":["%s"], "tags": ["%s"], "solution": ["%s"]}'"\n" \
$qid \
img:./testdata/$f \
img:./testdata/${f%-0.png}-1.png \
$tags \
${qid%%-*} \
$tags
done

182
testdata/tofugu.yaml vendored
View File

@ -1,96 +1,96 @@
knowledge:
questions:
a-hiragana: {"q":"img:./testdata/tofugu.d/a-hiragana-0.png", "clues":["img:./testdata/tofugu.d/a-hiragana-1.png", "a"], "tags": ["hiragana"]}
a-katakana: {"q":"img:./testdata/tofugu.d/a-katakana-0.png", "clues":["img:./testdata/tofugu.d/a-katakana-1.png", "a"], "tags": ["katakana"]}
chi-hiragana: {"q":"img:./testdata/tofugu.d/chi-hiragana-0.png", "clues":["img:./testdata/tofugu.d/chi-hiragana-1.png", "chi"], "tags": ["hiragana"]}
chi-katakana: {"q":"img:./testdata/tofugu.d/chi-katakana-0.png", "clues":["img:./testdata/tofugu.d/chi-katakana-1.png", "chi"], "tags": ["katakana"]}
e-hiragana: {"q":"img:./testdata/tofugu.d/e-hiragana-0.png", "clues":["img:./testdata/tofugu.d/e-hiragana-1.png", "e"], "tags": ["hiragana"]}
e-katakana: {"q":"img:./testdata/tofugu.d/e-katakana-0.png", "clues":["img:./testdata/tofugu.d/e-katakana-1.png", "e"], "tags": ["katakana"]}
ha-hiragana: {"q":"img:./testdata/tofugu.d/ha-hiragana-0.png", "clues":["img:./testdata/tofugu.d/ha-hiragana-1.png", "ha"], "tags": ["hiragana"]}
ha-katakana: {"q":"img:./testdata/tofugu.d/ha-katakana-0.png", "clues":["img:./testdata/tofugu.d/ha-katakana-1.png", "ha"], "tags": ["katakana"]}
he-hiragana: {"q":"img:./testdata/tofugu.d/he-hiragana-0.png", "clues":["img:./testdata/tofugu.d/he-hiragana-1.png", "he"], "tags": ["hiragana"]}
he-katakana: {"q":"img:./testdata/tofugu.d/he-katakana-0.png", "clues":["img:./testdata/tofugu.d/he-katakana-1.png", "he"], "tags": ["katakana"]}
hi-hiragana: {"q":"img:./testdata/tofugu.d/hi-hiragana-0.png", "clues":["img:./testdata/tofugu.d/hi-hiragana-1.png", "hi"], "tags": ["hiragana"]}
hi-katakana: {"q":"img:./testdata/tofugu.d/hi-katakana-0.png", "clues":["img:./testdata/tofugu.d/hi-katakana-1.png", "hi"], "tags": ["katakana"]}
ho-hiragana: {"q":"img:./testdata/tofugu.d/ho-hiragana-0.png", "clues":["img:./testdata/tofugu.d/ho-hiragana-1.png", "ho"], "tags": ["hiragana"]}
ho-katakana: {"q":"img:./testdata/tofugu.d/ho-katakana-0.png", "clues":["img:./testdata/tofugu.d/ho-katakana-1.png", "ho"], "tags": ["katakana"]}
hufu-hiragana: {"q":"img:./testdata/tofugu.d/hufu-hiragana-0.png", "clues":["img:./testdata/tofugu.d/hufu-hiragana-1.png", "hufu"], "tags": ["hiragana"]}
hufu-katakana: {"q":"img:./testdata/tofugu.d/hufu-katakana-0.png", "clues":["img:./testdata/tofugu.d/hufu-katakana-1.png", "hufu"], "tags": ["katakana"]}
i-hiragana: {"q":"img:./testdata/tofugu.d/i-hiragana-0.png", "clues":["img:./testdata/tofugu.d/i-hiragana-1.png", "i"], "tags": ["hiragana"]}
i-katakana: {"q":"img:./testdata/tofugu.d/i-katakana-0.png", "clues":["img:./testdata/tofugu.d/i-katakana-1.png", "i"], "tags": ["katakana"]}
ka-hiragana: {"q":"img:./testdata/tofugu.d/ka-hiragana-0.png", "clues":["img:./testdata/tofugu.d/ka-hiragana-1.png", "ka"], "tags": ["hiragana"]}
ka-katakana: {"q":"img:./testdata/tofugu.d/ka-katakana-0.png", "clues":["img:./testdata/tofugu.d/ka-katakana-1.png", "ka"], "tags": ["katakana"]}
ke-hiragana: {"q":"img:./testdata/tofugu.d/ke-hiragana-0.png", "clues":["img:./testdata/tofugu.d/ke-hiragana-1.png", "ke"], "tags": ["hiragana"]}
ke-katakana: {"q":"img:./testdata/tofugu.d/ke-katakana-0.png", "clues":["img:./testdata/tofugu.d/ke-katakana-1.png", "ke"], "tags": ["katakana"]}
ki-hiragana: {"q":"img:./testdata/tofugu.d/ki-hiragana-0.png", "clues":["img:./testdata/tofugu.d/ki-hiragana-1.png", "ki"], "tags": ["hiragana"]}
ki-katakana: {"q":"img:./testdata/tofugu.d/ki-katakana-0.png", "clues":["img:./testdata/tofugu.d/ki-katakana-1.png", "ki"], "tags": ["katakana"]}
ko-hiragana: {"q":"img:./testdata/tofugu.d/ko-hiragana-0.png", "clues":["img:./testdata/tofugu.d/ko-hiragana-1.png", "ko"], "tags": ["hiragana"]}
ko-katakana: {"q":"img:./testdata/tofugu.d/ko-katakana-0.png", "clues":["img:./testdata/tofugu.d/ko-katakana-1.png", "ko"], "tags": ["katakana"]}
ku-hiragana: {"q":"img:./testdata/tofugu.d/ku-hiragana-0.png", "clues":["img:./testdata/tofugu.d/ku-hiragana-1.png", "ku"], "tags": ["hiragana"]}
ma-hiragana: {"q":"img:./testdata/tofugu.d/ma-hiragana-0.png", "clues":["img:./testdata/tofugu.d/ma-hiragana-1.png", "ma"], "tags": ["hiragana"]}
ma-katakana: {"q":"img:./testdata/tofugu.d/ma-katakana-0.png", "clues":["img:./testdata/tofugu.d/ma-katakana-1.png", "ma"], "tags": ["katakana"]}
me-hiragana: {"q":"img:./testdata/tofugu.d/me-hiragana-0.png", "clues":["img:./testdata/tofugu.d/me-hiragana-1.png", "me"], "tags": ["hiragana"]}
me-katakana: {"q":"img:./testdata/tofugu.d/me-katakana-0.png", "clues":["img:./testdata/tofugu.d/me-katakana-1.png", "me"], "tags": ["katakana"]}
mi-hiragana: {"q":"img:./testdata/tofugu.d/mi-hiragana-0.png", "clues":["img:./testdata/tofugu.d/mi-hiragana-1.png", "mi"], "tags": ["hiragana"]}
mi-katakana: {"q":"img:./testdata/tofugu.d/mi-katakana-0.png", "clues":["img:./testdata/tofugu.d/mi-katakana-1.png", "mi"], "tags": ["katakana"]}
mo-hiragana: {"q":"img:./testdata/tofugu.d/mo-hiragana-0.png", "clues":["img:./testdata/tofugu.d/mo-hiragana-1.png", "mo"], "tags": ["hiragana"]}
mo-katakana: {"q":"img:./testdata/tofugu.d/mo-katakana-0.png", "clues":["img:./testdata/tofugu.d/mo-katakana-1.png", "mo"], "tags": ["katakana"]}
mu-hiragana: {"q":"img:./testdata/tofugu.d/mu-hiragana-0.png", "clues":["img:./testdata/tofugu.d/mu-hiragana-1.png", "mu"], "tags": ["hiragana"]}
mu-katakana: {"q":"img:./testdata/tofugu.d/mu-katakana-0.png", "clues":["img:./testdata/tofugu.d/mu-katakana-1.png", "mu"], "tags": ["katakana"]}
n-hiragana: {"q":"img:./testdata/tofugu.d/n-hiragana-0.png", "clues":["img:./testdata/tofugu.d/n-hiragana-1.png", "n"], "tags": ["hiragana"]}
n-katakana: {"q":"img:./testdata/tofugu.d/n-katakana-0.png", "clues":["img:./testdata/tofugu.d/n-katakana-1.png", "n"], "tags": ["katakana"]}
na-hiragana: {"q":"img:./testdata/tofugu.d/na-hiragana-0.png", "clues":["img:./testdata/tofugu.d/na-hiragana-1.png", "na"], "tags": ["hiragana"]}
na-katakana: {"q":"img:./testdata/tofugu.d/na-katakana-0.png", "clues":["img:./testdata/tofugu.d/na-katakana-1.png", "na"], "tags": ["katakana"]}
ne-hiragana: {"q":"img:./testdata/tofugu.d/ne-hiragana-0.png", "clues":["img:./testdata/tofugu.d/ne-hiragana-1.png", "ne"], "tags": ["hiragana"]}
ne-katakana: {"q":"img:./testdata/tofugu.d/ne-katakana-0.png", "clues":["img:./testdata/tofugu.d/ne-katakana-1.png", "ne"], "tags": ["katakana"]}
ni-hiragana: {"q":"img:./testdata/tofugu.d/ni-hiragana-0.png", "clues":["img:./testdata/tofugu.d/ni-hiragana-1.png", "ni"], "tags": ["hiragana"]}
ni-katakana: {"q":"img:./testdata/tofugu.d/ni-katakana-0.png", "clues":["img:./testdata/tofugu.d/ni-katakana-1.png", "ni"], "tags": ["katakana"]}
no-hiragana: {"q":"img:./testdata/tofugu.d/no-hiragana-0.png", "clues":["img:./testdata/tofugu.d/no-hiragana-1.png", "no"], "tags": ["hiragana"]}
no-katakana: {"q":"img:./testdata/tofugu.d/no-katakana-0.png", "clues":["img:./testdata/tofugu.d/no-katakana-1.png", "no"], "tags": ["katakana"]}
nu-hiragana: {"q":"img:./testdata/tofugu.d/nu-hiragana-0.png", "clues":["img:./testdata/tofugu.d/nu-hiragana-1.png", "nu"], "tags": ["hiragana"]}
nu-katakana: {"q":"img:./testdata/tofugu.d/nu-katakana-0.png", "clues":["img:./testdata/tofugu.d/nu-katakana-1.png", "nu"], "tags": ["katakana"]}
o-hiragana: {"q":"img:./testdata/tofugu.d/o-hiragana-0.png", "clues":["img:./testdata/tofugu.d/o-hiragana-1.png", "o"], "tags": ["hiragana"]}
o-katakana: {"q":"img:./testdata/tofugu.d/o-katakana-0.png", "clues":["img:./testdata/tofugu.d/o-katakana-1.png", "o"], "tags": ["katakana"]}
or-katakana: {"q":"img:./testdata/tofugu.d/or-katakana-0.png", "clues":["img:./testdata/tofugu.d/or-katakana-1.png", "or"], "tags": ["katakana"]}
ra-hiragana: {"q":"img:./testdata/tofugu.d/ra-hiragana-0.png", "clues":["img:./testdata/tofugu.d/ra-hiragana-1.png", "ra"], "tags": ["hiragana"]}
ra-katakana: {"q":"img:./testdata/tofugu.d/ra-katakana-0.png", "clues":["img:./testdata/tofugu.d/ra-katakana-1.png", "ra"], "tags": ["katakana"]}
re-hiragana: {"q":"img:./testdata/tofugu.d/re-hiragana-0.png", "clues":["img:./testdata/tofugu.d/re-hiragana-1.png", "re"], "tags": ["hiragana"]}
re-katakana: {"q":"img:./testdata/tofugu.d/re-katakana-0.png", "clues":["img:./testdata/tofugu.d/re-katakana-1.png", "re"], "tags": ["katakana"]}
ri-hiragana: {"q":"img:./testdata/tofugu.d/ri-hiragana-0.png", "clues":["img:./testdata/tofugu.d/ri-hiragana-1.png", "ri"], "tags": ["hiragana"]}
ri-katakana: {"q":"img:./testdata/tofugu.d/ri-katakana-0.png", "clues":["img:./testdata/tofugu.d/ri-katakana-1.png", "ri"], "tags": ["katakana"]}
ro-hiragana: {"q":"img:./testdata/tofugu.d/ro-hiragana-0.png", "clues":["img:./testdata/tofugu.d/ro-hiragana-1.png", "ro"], "tags": ["hiragana"]}
ro-katakana: {"q":"img:./testdata/tofugu.d/ro-katakana-0.png", "clues":["img:./testdata/tofugu.d/ro-katakana-1.png", "ro"], "tags": ["katakana"]}
ru-hiragana: {"q":"img:./testdata/tofugu.d/ru-hiragana-0.png", "clues":["img:./testdata/tofugu.d/ru-hiragana-1.png", "ru"], "tags": ["hiragana"]}
ru-katakana: {"q":"img:./testdata/tofugu.d/ru-katakana-0.png", "clues":["img:./testdata/tofugu.d/ru-katakana-1.png", "ru"], "tags": ["katakana"]}
sa-hiragana: {"q":"img:./testdata/tofugu.d/sa-hiragana-0.png", "clues":["img:./testdata/tofugu.d/sa-hiragana-1.png", "sa"], "tags": ["hiragana"]}
sa-katakana: {"q":"img:./testdata/tofugu.d/sa-katakana-0.png", "clues":["img:./testdata/tofugu.d/sa-katakana-1.png", "sa"], "tags": ["katakana"]}
se-hiragana: {"q":"img:./testdata/tofugu.d/se-hiragana-0.png", "clues":["img:./testdata/tofugu.d/se-hiragana-1.png", "se"], "tags": ["hiragana"]}
se-katakana: {"q":"img:./testdata/tofugu.d/se-katakana-0.png", "clues":["img:./testdata/tofugu.d/se-katakana-1.png", "se"], "tags": ["katakana"]}
shi-hiragana: {"q":"img:./testdata/tofugu.d/shi-hiragana-0.png", "clues":["img:./testdata/tofugu.d/shi-hiragana-1.png", "shi"], "tags": ["hiragana"]}
shi-katakana: {"q":"img:./testdata/tofugu.d/shi-katakana-0.png", "clues":["img:./testdata/tofugu.d/shi-katakana-1.png", "shi"], "tags": ["katakana"]}
so-hiragana: {"q":"img:./testdata/tofugu.d/so-hiragana-0.png", "clues":["img:./testdata/tofugu.d/so-hiragana-1.png", "so"], "tags": ["hiragana"]}
so-katakana: {"q":"img:./testdata/tofugu.d/so-katakana-0.png", "clues":["img:./testdata/tofugu.d/so-katakana-1.png", "so"], "tags": ["katakana"]}
su-hiragana: {"q":"img:./testdata/tofugu.d/su-hiragana-0.png", "clues":["img:./testdata/tofugu.d/su-hiragana-1.png", "su"], "tags": ["hiragana"]}
su-katakana: {"q":"img:./testdata/tofugu.d/su-katakana-0.png", "clues":["img:./testdata/tofugu.d/su-katakana-1.png", "su"], "tags": ["katakana"]}
ta-hiragana: {"q":"img:./testdata/tofugu.d/ta-hiragana-0.png", "clues":["img:./testdata/tofugu.d/ta-hiragana-1.png", "ta"], "tags": ["hiragana"]}
ta-katakana: {"q":"img:./testdata/tofugu.d/ta-katakana-0.png", "clues":["img:./testdata/tofugu.d/ta-katakana-1.png", "ta"], "tags": ["katakana"]}
te-hiragana: {"q":"img:./testdata/tofugu.d/te-hiragana-0.png", "clues":["img:./testdata/tofugu.d/te-hiragana-1.png", "te"], "tags": ["hiragana"]}
te-katakana: {"q":"img:./testdata/tofugu.d/te-katakana-0.png", "clues":["img:./testdata/tofugu.d/te-katakana-1.png", "te"], "tags": ["katakana"]}
to-hiragana: {"q":"img:./testdata/tofugu.d/to-hiragana-0.png", "clues":["img:./testdata/tofugu.d/to-hiragana-1.png", "to"], "tags": ["hiragana"]}
to-katakana: {"q":"img:./testdata/tofugu.d/to-katakana-0.png", "clues":["img:./testdata/tofugu.d/to-katakana-1.png", "to"], "tags": ["katakana"]}
tsu-hiragana: {"q":"img:./testdata/tofugu.d/tsu-hiragana-0.png", "clues":["img:./testdata/tofugu.d/tsu-hiragana-1.png", "tsu"], "tags": ["hiragana"]}
tsu-katakana: {"q":"img:./testdata/tofugu.d/tsu-katakana-0.png", "clues":["img:./testdata/tofugu.d/tsu-katakana-1.png", "tsu"], "tags": ["katakana"]}
u-hiragana: {"q":"img:./testdata/tofugu.d/u-hiragana-0.png", "clues":["img:./testdata/tofugu.d/u-hiragana-1.png", "u"], "tags": ["hiragana"]}
wa-hiragana: {"q":"img:./testdata/tofugu.d/wa-hiragana-0.png", "clues":["img:./testdata/tofugu.d/wa-hiragana-1.png", "wa"], "tags": ["hiragana"]}
wa-katakana: {"q":"img:./testdata/tofugu.d/wa-katakana-0.png", "clues":["img:./testdata/tofugu.d/wa-katakana-1.png", "wa"], "tags": ["katakana"]}
wo-hiragana: {"q":"img:./testdata/tofugu.d/wo-hiragana-0.png", "clues":["img:./testdata/tofugu.d/wo-hiragana-1.png", "wo"], "tags": ["hiragana"]}
wo-katakana: {"q":"img:./testdata/tofugu.d/wo-katakana-0.png", "clues":["img:./testdata/tofugu.d/wo-katakana-1.png", "wo"], "tags": ["katakana"]}
ya-hiragana: {"q":"img:./testdata/tofugu.d/ya-hiragana-0.png", "clues":["img:./testdata/tofugu.d/ya-hiragana-1.png", "ya"], "tags": ["hiragana"]}
ya-katakana: {"q":"img:./testdata/tofugu.d/ya-katakana-0.png", "clues":["img:./testdata/tofugu.d/ya-katakana-1.png", "ya"], "tags": ["katakana"]}
yo-hiragana: {"q":"img:./testdata/tofugu.d/yo-hiragana-0.png", "clues":["img:./testdata/tofugu.d/yo-hiragana-1.png", "yo"], "tags": ["hiragana"]}
yo-katakana: {"q":"img:./testdata/tofugu.d/yo-katakana-0.png", "clues":["img:./testdata/tofugu.d/yo-katakana-1.png", "yo"], "tags": ["katakana"]}
yu-hiragana: {"q":"img:./testdata/tofugu.d/yu-hiragana-0.png", "clues":["img:./testdata/tofugu.d/yu-hiragana-1.png", "yu"], "tags": ["hiragana"]}
yu-katakana: {"q":"img:./testdata/tofugu.d/yu-katakana-0.png", "clues":["img:./testdata/tofugu.d/yu-katakana-1.png", "yu"], "tags": ["katakana"]}
a-hiragana: {"q":"img:./testdata/tofugu.d/a-hiragana-0.png", "clues":["img:./testdata/tofugu.d/a-hiragana-1.png"], "tags": ["hiragana"], "solution": ["a"]}
a-katakana: {"q":"img:./testdata/tofugu.d/a-katakana-0.png", "clues":["img:./testdata/tofugu.d/a-katakana-1.png"], "tags": ["katakana"], "solution": ["a"]}
chi-hiragana: {"q":"img:./testdata/tofugu.d/chi-hiragana-0.png", "clues":["img:./testdata/tofugu.d/chi-hiragana-1.png"], "tags": ["hiragana"], "solution": ["chi"]}
chi-katakana: {"q":"img:./testdata/tofugu.d/chi-katakana-0.png", "clues":["img:./testdata/tofugu.d/chi-katakana-1.png"], "tags": ["katakana"], "solution": ["chi"]}
e-hiragana: {"q":"img:./testdata/tofugu.d/e-hiragana-0.png", "clues":["img:./testdata/tofugu.d/e-hiragana-1.png"], "tags": ["hiragana"], "solution": ["e"]}
e-katakana: {"q":"img:./testdata/tofugu.d/e-katakana-0.png", "clues":["img:./testdata/tofugu.d/e-katakana-1.png"], "tags": ["katakana"], "solution": ["e"]}
ha-hiragana: {"q":"img:./testdata/tofugu.d/ha-hiragana-0.png", "clues":["img:./testdata/tofugu.d/ha-hiragana-1.png"], "tags": ["hiragana"], "solution": ["ha"]}
ha-katakana: {"q":"img:./testdata/tofugu.d/ha-katakana-0.png", "clues":["img:./testdata/tofugu.d/ha-katakana-1.png"], "tags": ["katakana"], "solution": ["ha"]}
he-hiragana: {"q":"img:./testdata/tofugu.d/he-hiragana-0.png", "clues":["img:./testdata/tofugu.d/he-hiragana-1.png"], "tags": ["hiragana"], "solution": ["he"]}
he-katakana: {"q":"img:./testdata/tofugu.d/he-katakana-0.png", "clues":["img:./testdata/tofugu.d/he-katakana-1.png"], "tags": ["katakana"], "solution": ["he"]}
hi-hiragana: {"q":"img:./testdata/tofugu.d/hi-hiragana-0.png", "clues":["img:./testdata/tofugu.d/hi-hiragana-1.png"], "tags": ["hiragana"], "solution": ["hi"]}
hi-katakana: {"q":"img:./testdata/tofugu.d/hi-katakana-0.png", "clues":["img:./testdata/tofugu.d/hi-katakana-1.png"], "tags": ["katakana"], "solution": ["hi"]}
ho-hiragana: {"q":"img:./testdata/tofugu.d/ho-hiragana-0.png", "clues":["img:./testdata/tofugu.d/ho-hiragana-1.png"], "tags": ["hiragana"], "solution": ["ho"]}
ho-katakana: {"q":"img:./testdata/tofugu.d/ho-katakana-0.png", "clues":["img:./testdata/tofugu.d/ho-katakana-1.png"], "tags": ["katakana"], "solution": ["ho"]}
hufu-hiragana: {"q":"img:./testdata/tofugu.d/hufu-hiragana-0.png", "clues":["img:./testdata/tofugu.d/hufu-hiragana-1.png"], "tags": ["hiragana"], "solution": ["hufu"]}
hufu-katakana: {"q":"img:./testdata/tofugu.d/hufu-katakana-0.png", "clues":["img:./testdata/tofugu.d/hufu-katakana-1.png"], "tags": ["katakana"], "solution": ["hufu"]}
i-hiragana: {"q":"img:./testdata/tofugu.d/i-hiragana-0.png", "clues":["img:./testdata/tofugu.d/i-hiragana-1.png"], "tags": ["hiragana"], "solution": ["i"]}
i-katakana: {"q":"img:./testdata/tofugu.d/i-katakana-0.png", "clues":["img:./testdata/tofugu.d/i-katakana-1.png"], "tags": ["katakana"], "solution": ["i"]}
ka-hiragana: {"q":"img:./testdata/tofugu.d/ka-hiragana-0.png", "clues":["img:./testdata/tofugu.d/ka-hiragana-1.png"], "tags": ["hiragana"], "solution": ["ka"]}
ka-katakana: {"q":"img:./testdata/tofugu.d/ka-katakana-0.png", "clues":["img:./testdata/tofugu.d/ka-katakana-1.png"], "tags": ["katakana"], "solution": ["ka"]}
ke-hiragana: {"q":"img:./testdata/tofugu.d/ke-hiragana-0.png", "clues":["img:./testdata/tofugu.d/ke-hiragana-1.png"], "tags": ["hiragana"], "solution": ["ke"]}
ke-katakana: {"q":"img:./testdata/tofugu.d/ke-katakana-0.png", "clues":["img:./testdata/tofugu.d/ke-katakana-1.png"], "tags": ["katakana"], "solution": ["ke"]}
ki-hiragana: {"q":"img:./testdata/tofugu.d/ki-hiragana-0.png", "clues":["img:./testdata/tofugu.d/ki-hiragana-1.png"], "tags": ["hiragana"], "solution": ["ki"]}
ki-katakana: {"q":"img:./testdata/tofugu.d/ki-katakana-0.png", "clues":["img:./testdata/tofugu.d/ki-katakana-1.png"], "tags": ["katakana"], "solution": ["ki"]}
ko-hiragana: {"q":"img:./testdata/tofugu.d/ko-hiragana-0.png", "clues":["img:./testdata/tofugu.d/ko-hiragana-1.png"], "tags": ["hiragana"], "solution": ["ko"]}
ko-katakana: {"q":"img:./testdata/tofugu.d/ko-katakana-0.png", "clues":["img:./testdata/tofugu.d/ko-katakana-1.png"], "tags": ["katakana"], "solution": ["ko"]}
ku-hiragana: {"q":"img:./testdata/tofugu.d/ku-hiragana-0.png", "clues":["img:./testdata/tofugu.d/ku-hiragana-1.png"], "tags": ["hiragana"], "solution": ["ku"]}
ma-hiragana: {"q":"img:./testdata/tofugu.d/ma-hiragana-0.png", "clues":["img:./testdata/tofugu.d/ma-hiragana-1.png"], "tags": ["hiragana"], "solution": ["ma"]}
ma-katakana: {"q":"img:./testdata/tofugu.d/ma-katakana-0.png", "clues":["img:./testdata/tofugu.d/ma-katakana-1.png"], "tags": ["katakana"], "solution": ["ma"]}
me-hiragana: {"q":"img:./testdata/tofugu.d/me-hiragana-0.png", "clues":["img:./testdata/tofugu.d/me-hiragana-1.png"], "tags": ["hiragana"], "solution": ["me"]}
me-katakana: {"q":"img:./testdata/tofugu.d/me-katakana-0.png", "clues":["img:./testdata/tofugu.d/me-katakana-1.png"], "tags": ["katakana"], "solution": ["me"]}
mi-hiragana: {"q":"img:./testdata/tofugu.d/mi-hiragana-0.png", "clues":["img:./testdata/tofugu.d/mi-hiragana-1.png"], "tags": ["hiragana"], "solution": ["mi"]}
mi-katakana: {"q":"img:./testdata/tofugu.d/mi-katakana-0.png", "clues":["img:./testdata/tofugu.d/mi-katakana-1.png"], "tags": ["katakana"], "solution": ["mi"]}
mo-hiragana: {"q":"img:./testdata/tofugu.d/mo-hiragana-0.png", "clues":["img:./testdata/tofugu.d/mo-hiragana-1.png"], "tags": ["hiragana"], "solution": ["mo"]}
mo-katakana: {"q":"img:./testdata/tofugu.d/mo-katakana-0.png", "clues":["img:./testdata/tofugu.d/mo-katakana-1.png"], "tags": ["katakana"], "solution": ["mo"]}
mu-hiragana: {"q":"img:./testdata/tofugu.d/mu-hiragana-0.png", "clues":["img:./testdata/tofugu.d/mu-hiragana-1.png"], "tags": ["hiragana"], "solution": ["mu"]}
mu-katakana: {"q":"img:./testdata/tofugu.d/mu-katakana-0.png", "clues":["img:./testdata/tofugu.d/mu-katakana-1.png"], "tags": ["katakana"], "solution": ["mu"]}
n-hiragana: {"q":"img:./testdata/tofugu.d/n-hiragana-0.png", "clues":["img:./testdata/tofugu.d/n-hiragana-1.png"], "tags": ["hiragana"], "solution": ["n"]}
n-katakana: {"q":"img:./testdata/tofugu.d/n-katakana-0.png", "clues":["img:./testdata/tofugu.d/n-katakana-1.png"], "tags": ["katakana"], "solution": ["n"]}
na-hiragana: {"q":"img:./testdata/tofugu.d/na-hiragana-0.png", "clues":["img:./testdata/tofugu.d/na-hiragana-1.png"], "tags": ["hiragana"], "solution": ["na"]}
na-katakana: {"q":"img:./testdata/tofugu.d/na-katakana-0.png", "clues":["img:./testdata/tofugu.d/na-katakana-1.png"], "tags": ["katakana"], "solution": ["na"]}
ne-hiragana: {"q":"img:./testdata/tofugu.d/ne-hiragana-0.png", "clues":["img:./testdata/tofugu.d/ne-hiragana-1.png"], "tags": ["hiragana"], "solution": ["ne"]}
ne-katakana: {"q":"img:./testdata/tofugu.d/ne-katakana-0.png", "clues":["img:./testdata/tofugu.d/ne-katakana-1.png"], "tags": ["katakana"], "solution": ["ne"]}
ni-hiragana: {"q":"img:./testdata/tofugu.d/ni-hiragana-0.png", "clues":["img:./testdata/tofugu.d/ni-hiragana-1.png"], "tags": ["hiragana"], "solution": ["ni"]}
ni-katakana: {"q":"img:./testdata/tofugu.d/ni-katakana-0.png", "clues":["img:./testdata/tofugu.d/ni-katakana-1.png"], "tags": ["katakana"], "solution": ["ni"]}
no-hiragana: {"q":"img:./testdata/tofugu.d/no-hiragana-0.png", "clues":["img:./testdata/tofugu.d/no-hiragana-1.png"], "tags": ["hiragana"], "solution": ["no"]}
no-katakana: {"q":"img:./testdata/tofugu.d/no-katakana-0.png", "clues":["img:./testdata/tofugu.d/no-katakana-1.png"], "tags": ["katakana"], "solution": ["no"]}
nu-hiragana: {"q":"img:./testdata/tofugu.d/nu-hiragana-0.png", "clues":["img:./testdata/tofugu.d/nu-hiragana-1.png"], "tags": ["hiragana"], "solution": ["nu"]}
nu-katakana: {"q":"img:./testdata/tofugu.d/nu-katakana-0.png", "clues":["img:./testdata/tofugu.d/nu-katakana-1.png"], "tags": ["katakana"], "solution": ["nu"]}
o-hiragana: {"q":"img:./testdata/tofugu.d/o-hiragana-0.png", "clues":["img:./testdata/tofugu.d/o-hiragana-1.png"], "tags": ["hiragana"], "solution": ["o"]}
o-katakana: {"q":"img:./testdata/tofugu.d/o-katakana-0.png", "clues":["img:./testdata/tofugu.d/o-katakana-1.png"], "tags": ["katakana"], "solution": ["o"]}
or-katakana: {"q":"img:./testdata/tofugu.d/or-katakana-0.png", "clues":["img:./testdata/tofugu.d/or-katakana-1.png"], "tags": ["katakana"], "solution": ["or"]}
ra-hiragana: {"q":"img:./testdata/tofugu.d/ra-hiragana-0.png", "clues":["img:./testdata/tofugu.d/ra-hiragana-1.png"], "tags": ["hiragana"], "solution": ["ra"]}
ra-katakana: {"q":"img:./testdata/tofugu.d/ra-katakana-0.png", "clues":["img:./testdata/tofugu.d/ra-katakana-1.png"], "tags": ["katakana"], "solution": ["ra"]}
re-hiragana: {"q":"img:./testdata/tofugu.d/re-hiragana-0.png", "clues":["img:./testdata/tofugu.d/re-hiragana-1.png"], "tags": ["hiragana"], "solution": ["re"]}
re-katakana: {"q":"img:./testdata/tofugu.d/re-katakana-0.png", "clues":["img:./testdata/tofugu.d/re-katakana-1.png"], "tags": ["katakana"], "solution": ["re"]}
ri-hiragana: {"q":"img:./testdata/tofugu.d/ri-hiragana-0.png", "clues":["img:./testdata/tofugu.d/ri-hiragana-1.png"], "tags": ["hiragana"], "solution": ["ri"]}
ri-katakana: {"q":"img:./testdata/tofugu.d/ri-katakana-0.png", "clues":["img:./testdata/tofugu.d/ri-katakana-1.png"], "tags": ["katakana"], "solution": ["ri"]}
ro-hiragana: {"q":"img:./testdata/tofugu.d/ro-hiragana-0.png", "clues":["img:./testdata/tofugu.d/ro-hiragana-1.png"], "tags": ["hiragana"], "solution": ["ro"]}
ro-katakana: {"q":"img:./testdata/tofugu.d/ro-katakana-0.png", "clues":["img:./testdata/tofugu.d/ro-katakana-1.png"], "tags": ["katakana"], "solution": ["ro"]}
ru-hiragana: {"q":"img:./testdata/tofugu.d/ru-hiragana-0.png", "clues":["img:./testdata/tofugu.d/ru-hiragana-1.png"], "tags": ["hiragana"], "solution": ["ru"]}
ru-katakana: {"q":"img:./testdata/tofugu.d/ru-katakana-0.png", "clues":["img:./testdata/tofugu.d/ru-katakana-1.png"], "tags": ["katakana"], "solution": ["ru"]}
sa-hiragana: {"q":"img:./testdata/tofugu.d/sa-hiragana-0.png", "clues":["img:./testdata/tofugu.d/sa-hiragana-1.png"], "tags": ["hiragana"], "solution": ["sa"]}
sa-katakana: {"q":"img:./testdata/tofugu.d/sa-katakana-0.png", "clues":["img:./testdata/tofugu.d/sa-katakana-1.png"], "tags": ["katakana"], "solution": ["sa"]}
se-hiragana: {"q":"img:./testdata/tofugu.d/se-hiragana-0.png", "clues":["img:./testdata/tofugu.d/se-hiragana-1.png"], "tags": ["hiragana"], "solution": ["se"]}
se-katakana: {"q":"img:./testdata/tofugu.d/se-katakana-0.png", "clues":["img:./testdata/tofugu.d/se-katakana-1.png"], "tags": ["katakana"], "solution": ["se"]}
shi-hiragana: {"q":"img:./testdata/tofugu.d/shi-hiragana-0.png", "clues":["img:./testdata/tofugu.d/shi-hiragana-1.png"], "tags": ["hiragana"], "solution": ["shi"]}
shi-katakana: {"q":"img:./testdata/tofugu.d/shi-katakana-0.png", "clues":["img:./testdata/tofugu.d/shi-katakana-1.png"], "tags": ["katakana"], "solution": ["shi"]}
so-hiragana: {"q":"img:./testdata/tofugu.d/so-hiragana-0.png", "clues":["img:./testdata/tofugu.d/so-hiragana-1.png"], "tags": ["hiragana"], "solution": ["so"]}
so-katakana: {"q":"img:./testdata/tofugu.d/so-katakana-0.png", "clues":["img:./testdata/tofugu.d/so-katakana-1.png"], "tags": ["katakana"], "solution": ["so"]}
su-hiragana: {"q":"img:./testdata/tofugu.d/su-hiragana-0.png", "clues":["img:./testdata/tofugu.d/su-hiragana-1.png"], "tags": ["hiragana"], "solution": ["su"]}
su-katakana: {"q":"img:./testdata/tofugu.d/su-katakana-0.png", "clues":["img:./testdata/tofugu.d/su-katakana-1.png"], "tags": ["katakana"], "solution": ["su"]}
ta-hiragana: {"q":"img:./testdata/tofugu.d/ta-hiragana-0.png", "clues":["img:./testdata/tofugu.d/ta-hiragana-1.png"], "tags": ["hiragana"], "solution": ["ta"]}
ta-katakana: {"q":"img:./testdata/tofugu.d/ta-katakana-0.png", "clues":["img:./testdata/tofugu.d/ta-katakana-1.png"], "tags": ["katakana"], "solution": ["ta"]}
te-hiragana: {"q":"img:./testdata/tofugu.d/te-hiragana-0.png", "clues":["img:./testdata/tofugu.d/te-hiragana-1.png"], "tags": ["hiragana"], "solution": ["te"]}
te-katakana: {"q":"img:./testdata/tofugu.d/te-katakana-0.png", "clues":["img:./testdata/tofugu.d/te-katakana-1.png"], "tags": ["katakana"], "solution": ["te"]}
to-hiragana: {"q":"img:./testdata/tofugu.d/to-hiragana-0.png", "clues":["img:./testdata/tofugu.d/to-hiragana-1.png"], "tags": ["hiragana"], "solution": ["to"]}
to-katakana: {"q":"img:./testdata/tofugu.d/to-katakana-0.png", "clues":["img:./testdata/tofugu.d/to-katakana-1.png"], "tags": ["katakana"], "solution": ["to"]}
tsu-hiragana: {"q":"img:./testdata/tofugu.d/tsu-hiragana-0.png", "clues":["img:./testdata/tofugu.d/tsu-hiragana-1.png"], "tags": ["hiragana"], "solution": ["tsu"]}
tsu-katakana: {"q":"img:./testdata/tofugu.d/tsu-katakana-0.png", "clues":["img:./testdata/tofugu.d/tsu-katakana-1.png"], "tags": ["katakana"], "solution": ["tsu"]}
u-hiragana: {"q":"img:./testdata/tofugu.d/u-hiragana-0.png", "clues":["img:./testdata/tofugu.d/u-hiragana-1.png"], "tags": ["hiragana"], "solution": ["u"]}
wa-hiragana: {"q":"img:./testdata/tofugu.d/wa-hiragana-0.png", "clues":["img:./testdata/tofugu.d/wa-hiragana-1.png"], "tags": ["hiragana"], "solution": ["wa"]}
wa-katakana: {"q":"img:./testdata/tofugu.d/wa-katakana-0.png", "clues":["img:./testdata/tofugu.d/wa-katakana-1.png"], "tags": ["katakana"], "solution": ["wa"]}
wo-hiragana: {"q":"img:./testdata/tofugu.d/wo-hiragana-0.png", "clues":["img:./testdata/tofugu.d/wo-hiragana-1.png"], "tags": ["hiragana"], "solution": ["wo"]}
wo-katakana: {"q":"img:./testdata/tofugu.d/wo-katakana-0.png", "clues":["img:./testdata/tofugu.d/wo-katakana-1.png"], "tags": ["katakana"], "solution": ["wo"]}
ya-hiragana: {"q":"img:./testdata/tofugu.d/ya-hiragana-0.png", "clues":["img:./testdata/tofugu.d/ya-hiragana-1.png"], "tags": ["hiragana"], "solution": ["ya"]}
ya-katakana: {"q":"img:./testdata/tofugu.d/ya-katakana-0.png", "clues":["img:./testdata/tofugu.d/ya-katakana-1.png"], "tags": ["katakana"], "solution": ["ya"]}
yo-hiragana: {"q":"img:./testdata/tofugu.d/yo-hiragana-0.png", "clues":["img:./testdata/tofugu.d/yo-hiragana-1.png"], "tags": ["hiragana"], "solution": ["yo"]}
yo-katakana: {"q":"img:./testdata/tofugu.d/yo-katakana-0.png", "clues":["img:./testdata/tofugu.d/yo-katakana-1.png"], "tags": ["katakana"], "solution": ["yo"]}
yu-hiragana: {"q":"img:./testdata/tofugu.d/yu-hiragana-0.png", "clues":["img:./testdata/tofugu.d/yu-hiragana-1.png"], "tags": ["hiragana"], "solution": ["yu"]}
yu-katakana: {"q":"img:./testdata/tofugu.d/yu-katakana-0.png", "clues":["img:./testdata/tofugu.d/yu-katakana-1.png"], "tags": ["katakana"], "solution": ["yu"]}
users:
breel:
resolution: 100