« 二度植え | トップページ | 畑ログ2018年3月 »

2018年2月26日 (月)

覚えるクイズ #2

先日から取り組んでいる覚えるクイズの話。
システムの方に仕掛けをしたい。

  • 選択肢はシャッフルされる。
  • 選択肢を余分に記述しておくと、その中からランダムに出題される。
  • 間違えたら答えを表示する。
  • 一度正解した問題は、二度目は出題されにくい。
  • 間違えた問題は、もう一度出題されやすい。

クイズだと、このあたりは当然の機能だ。
ここまで記述するのに、C言語で600行ほど。
問題はテキストファイルだ。
テキストファイルだとカンニングできるが、覚えることが大切なので、むしろ問題を読んで覚えるのは大歓迎だ。

ところで、選択肢をシャッフルするアルゴリズムは、思ったより長くなった。
以下のアルゴリズムを試したのだが、

選択肢を順に入れた後、二つの選択肢を乱数で選んで交換×10回
4桁の値(0x1234~0x4321)を24個のテーブルにして乱数で並び順を決める
選択肢を乱数で順に選んでいく(使用済みなら次へスライド)

どれもそこそこ長いコードになってしまった。

これをテストに使う場合、カンニングを見破る仕掛けが欲しい。
問題文であるテキストファイルを見たり、インターネットで答えを調べるかもしれない。

そういったことを防ぐためには、解答までにかかった時間を記録したり、自身の窓が非アクティブになったかどうかを調べるのが簡単そうだ。

« 二度植え | トップページ | 畑ログ2018年3月 »

パソコン・インターネット」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック


この記事へのトラックバック一覧です: 覚えるクイズ #2:

« 二度植え | トップページ | 畑ログ2018年3月 »