Sha256: f3a1ad523478656db71ef335c426dfe75bc5f7cf84f203d2b501d0e7ff7f863f

Contents?: true

Size: 1.46 KB

Versions: 1

Compression:

Stored size: 1.46 KB

Contents

#! /usr/bin/env ruby
# coding: utf-8


#クイズを実行する。
# quizgame quiz.yaml
# データファイル quiz.yaml を引数で指定。
# デフォルトでは 10問実行。
#
# quizgame -n 20 quiz.yaml
#   問題数を 20問に変更。
#
# quizuame -c quiz.yaml
#   問題数ではなく、正解数が規定に達するまで続けるモード。
#
# quiz.yaml と同じディレクトリに quiz_weight.yaml を生成し、
# ここに優先度を記録する。
#
# quiz.yaml format:
#   # see example/*.yaml
#   requirement: "全体に共通する問題文。e.g., 英単語に直せ。"
#   problems:
#     p20120228a: # 問題 ID
#     - "1"       # 問題文
#     - "one"     # 解答
#     - "いち"    # 回答後の補足説明
#     p20120228b:
#     - "2"
#     - "two"
#     - "に"

require "pp"
require "optparse"

require "rubygems"
require "quizgame"

# option analysis
#default value
OPTIONS = { :norma => 10 }
op = OptionParser.new
op.on("-n num", "--norma=number", "Set number of norma."){ |val|
  OPTIONS[:norma] = val.to_i }
op.parse!(ARGV)

unless ARGV.size == 1
  puts "No quiz file indicated. Exit."
  exit
end

data = YAML.load_file(ARGV[0])
requirement = data["requirement"]
problems = {}
data["problems"].each do |id, ary|
  problems[id] = QuizGame::Problem.new(*ary)
end
#weight_yaml = ARGV[0].sub(/\.yaml$/, "_wts.yaml")
weight_yaml = ARGV[0].sub(/\.quiz$/, ".wts")

game = QuizGame.new(requirement, problems, weight_yaml)
game.run(OPTIONS[:norma])

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
quizgame-0.0.4 bin/quizgame