読者です 読者をやめる 読者になる 読者になる

kiyo_hikoのブログ

メモ+日記?

Javaでクイズ暗記ツール作成(10)

パネル形式を完成させた。
次に○✕形式を作るつもりだったけれども、単純な○✕ではなくて画像選択があったのを忘れていて、仕様とか考えたいから後回しにすることにした。


先にクイズ履歴の機能を拡張し、回答履歴を兼ねるようにした。
正解なら○不正解なら✕、未回答なら?が表示されるし、それらをクリックするとその問題にジャンプするから、✕マークの付いたボタンをクリックすれば、すぐさま復習できるって寸法だ。

f:id:kiyo_hiko:20130830052623p:plain:w400


回答履歴の構成をメモっておくと、大体こんな感じで↓

  • 履歴クラスはクイズオブジェクトと、enum(回答状態○、✕、?のSAN値)を持つ2要素タプル。
  • タプルはパラメーター化された型として適当に作った。
  • 回答するか、または画面上の「*」(新規出題)をクリックするたびに、履歴クラスを型パラメーターにもつ、Dequeへの委譲クラスであるQuizHistoryクラスに履歴のインスタンスを積んでく。
  • QuizHistoryクラスはクイズローダーのインスタンスも保持 (addメソッドを呼んで複数のローダーを持てる) していて、次のようなメソッドを持つ:
    • first
    • back
    • next
    • create
  • ローダーが使われるのはcreateが呼ばれたとき。loader.nextで新規出題をもらってきて、同時にenumに?を入れて履歴オブジェクトの新規インスタンスを作成し、これを返す。


…書いててめんどくさくなってきた。
まあとにかくこれで履歴管理はほぼ完成。仮にさらに高望みするとしたら、以下が考えられるけど保留。

  • 正解したら履歴に入れない

ただし、まぐれで正解してしまうとそれでは復習にならなくて困ってしまうだろうから、多分別の機構を作ってなんとかすると思う。

  • 問題文の冒頭5文字ぐらいをどこかに出すか、ツールチップに入れる

これで履歴をさらに見やすくなりそうだけど画面にスペースがないし、ツールチップではタブレット操作時に手軽に見れないという。

ところでツール名

脳内でいろいろと凝った名前を考えていたけど、もう「きよツール」でいい気がしてきた。

宇宙天文検定始まってるらしい

ランキング上位に入っときたい。
検定過去最高は全国2位だしなにかしら全一になりてえな。