quizgame 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGES CHANGED
@@ -1,5 +1,13 @@
1
- == Master (for 0.0.2)
1
+ = quizgame Changelog
2
+
3
+ == Master (for 0.0.4)
4
+
5
+ == Version 0.0.3
6
+ Adjust to WeightedPicker-0.1.0.
7
+
8
+ == Version 0.0.2
2
9
  bin/quizgame raise error when _wts.yaml includes a float weight.
10
+ fix the bug when NaN occur with quit when no problem is answered.
3
11
 
4
12
  == Version 0.0.1
5
13
  bugfix
data/Gemfile CHANGED
@@ -7,9 +7,10 @@ source "http://rubygems.org"
7
7
  # Include everything needed to run rake, tests, features, etc.
8
8
  group :development do
9
9
  gem "rdoc", "~> 3.12"
10
- gem "bundler", "~> 1.1.3"
10
+ gem "bundler", "~> 1.3.4"
11
11
  gem "jeweler", "~> 1.8.3"
12
12
  gem "simplecov", ">= 0"
13
13
  gem "builtinextension", ">= 0.0.0"
14
- gem "weightedpicker", ">= 0.0.0"
14
+ gem "weightedpicker", ">= 0.1.0"
15
+ #gem "psych", ">= 0"
15
16
  end
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.2
1
+ 0.0.3
data/bin/quizgame CHANGED
@@ -57,13 +57,6 @@ data["problems"].each do |id, ary|
57
57
  problems[id] = Problem.new(*ary)
58
58
  end
59
59
  weight_yaml = ARGV[0].sub(/\.yaml$/, "_wts.yaml")
60
- begin
61
- picker = WeightedPicker.new(weight_yaml, problems.keys)
62
- rescue WeightedPicker::InvalidWeightError
63
- puts "Error!"
64
- puts "#{weight_yaml} contains float weight. Use integers as weights."
65
- exit
66
- end
67
60
 
68
- game = QuizGame.new(requirement, problems, picker)
61
+ game = QuizGame.new(requirement, problems, weight_yaml)
69
62
  game.run(OPTIONS[:norma])
@@ -24,15 +24,28 @@ class QuizGame
24
24
  class QuizGame::NoQuizError < Exception; end
25
25
 
26
26
  # クイズデータを読み込む。
27
- def initialize(requirement, problems, picker)
27
+ def initialize(requirement, problems, picker_file)
28
28
  @requirement = requirement
29
29
  @problems = problems
30
- @picker = picker
30
+ @weight_file = picker_file
31
31
  end
32
32
 
33
33
  # 条件を満たすまでクイズを実行。
34
34
  # norma は終了条件の数
35
35
  def run(norma)
36
+ begin
37
+ picker = WeightedPicker.load_file @weight_file
38
+ picker.merge @problems.keys
39
+ rescue WeightedPicker::InvalidWeightError
40
+ puts "Error!"
41
+ puts "#{@weight_file} contains float weight. Use integers as weights."
42
+ exit
43
+ rescue Errno::ENOENT
44
+ #puts "TEST"
45
+ picker = WeightedPicker.new({})
46
+ picker.merge @problems.keys
47
+ end
48
+
36
49
  correct_count = 0
37
50
  problem_count = 0
38
51
  show_statement(norma)
@@ -41,7 +54,7 @@ class QuizGame
41
54
  start_time = Time.new
42
55
 
43
56
  while (problem_count < norma )
44
- id = @picker.pick
57
+ id = picker.pick
45
58
  problem = @problems[id]
46
59
 
47
60
  puts "-"*60
@@ -55,9 +68,9 @@ class QuizGame
55
68
  problem_count += 1
56
69
  if problem.correct?(input_str)
57
70
  correct_count += 1
58
- @picker.lighten(id)
71
+ picker.lighten(id)
59
72
  else
60
- @picker.weigh(id)
73
+ picker.weigh(id)
61
74
  end
62
75
 
63
76
  puts show_result(problem, input_str)
@@ -69,6 +82,8 @@ class QuizGame
69
82
  correct_count, problem_count, norma)
70
83
  end
71
84
 
85
+ File.open(@weight_file, "w"){|io| picker.dump(io) }
86
+
72
87
  puts "="*60
73
88
  sleep(0.35) #Visual effect. A little stop before showing results.
74
89
  if (correct_count == norma)
@@ -77,7 +92,12 @@ class QuizGame
77
92
 
78
93
  printf("result: [%d correct / %d problems]",
79
94
  correct_count, problem_count)
80
- printf(" %2d\%\n", (correct_count.to_f/ problem_count*100).to_i)
95
+
96
+ begin
97
+ printf(" %2d\%\n", (correct_count.to_f/ problem_count*100).to_i)
98
+ rescue FloatDomainError
99
+ puts " No problem is answered."
100
+ end
81
101
 
82
102
  print "Time: ", Time.now - start_time, "\n"
83
103
  end
data/quizgame.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "quizgame"
8
- s.version = "0.0.2"
8
+ s.version = "0.0.3"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["ippei94da"]
12
- s.date = "2012-07-13"
12
+ s.date = "2013-04-10"
13
13
  s.description = "This gem privide framework for quiz game. This gem can be used for spaced repetition study. The more frequently mistaken problems are given more frequently."
14
14
  s.email = "ippei94da@gmail.com"
15
15
  s.executables = ["quizgame"]
@@ -42,7 +42,7 @@ Gem::Specification.new do |s|
42
42
  s.homepage = "http://github.com/ippei94da/quizgame"
43
43
  s.licenses = ["MIT"]
44
44
  s.require_paths = ["lib"]
45
- s.rubygems_version = "1.8.11"
45
+ s.rubygems_version = "1.8.23"
46
46
  s.summary = "Framework for game with quiz format."
47
47
 
48
48
  if s.respond_to? :specification_version then
@@ -50,26 +50,26 @@ Gem::Specification.new do |s|
50
50
 
51
51
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
52
52
  s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
53
- s.add_development_dependency(%q<bundler>, ["~> 1.1.3"])
53
+ s.add_development_dependency(%q<bundler>, ["~> 1.3.4"])
54
54
  s.add_development_dependency(%q<jeweler>, ["~> 1.8.3"])
55
55
  s.add_development_dependency(%q<simplecov>, [">= 0"])
56
56
  s.add_development_dependency(%q<builtinextension>, [">= 0.0.0"])
57
- s.add_development_dependency(%q<weightedpicker>, [">= 0.0.0"])
57
+ s.add_development_dependency(%q<weightedpicker>, [">= 0.1.0"])
58
58
  else
59
59
  s.add_dependency(%q<rdoc>, ["~> 3.12"])
60
- s.add_dependency(%q<bundler>, ["~> 1.1.3"])
60
+ s.add_dependency(%q<bundler>, ["~> 1.3.4"])
61
61
  s.add_dependency(%q<jeweler>, ["~> 1.8.3"])
62
62
  s.add_dependency(%q<simplecov>, [">= 0"])
63
63
  s.add_dependency(%q<builtinextension>, [">= 0.0.0"])
64
- s.add_dependency(%q<weightedpicker>, [">= 0.0.0"])
64
+ s.add_dependency(%q<weightedpicker>, [">= 0.1.0"])
65
65
  end
66
66
  else
67
67
  s.add_dependency(%q<rdoc>, ["~> 3.12"])
68
- s.add_dependency(%q<bundler>, ["~> 1.1.3"])
68
+ s.add_dependency(%q<bundler>, ["~> 1.3.4"])
69
69
  s.add_dependency(%q<jeweler>, ["~> 1.8.3"])
70
70
  s.add_dependency(%q<simplecov>, [">= 0"])
71
71
  s.add_dependency(%q<builtinextension>, [">= 0.0.0"])
72
- s.add_dependency(%q<weightedpicker>, [">= 0.0.0"])
72
+ s.add_dependency(%q<weightedpicker>, [">= 0.1.0"])
73
73
  end
74
74
  end
75
75
 
@@ -23,8 +23,7 @@ class TC_QuizGame < Test::Unit::TestCase
23
23
  "p1" => Problem.new( "1", "one", "いち" ),
24
24
  "p2" => Problem.new( "2", "two", "に" )
25
25
  }
26
- wp = WeightedPicker.new(QUIZ_FILE, ["p1", "p2"])
27
- @qg00 = QuizGame.new(requirement, problems, wp)
26
+ @qg00 = QuizGame.new(requirement, problems, QUIZ_FILE)
28
27
  end
29
28
 
30
29
  def teardown
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: quizgame
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-07-13 00:00:00.000000000 Z
12
+ date: 2013-04-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rdoc
16
- requirement: &76458570 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,21 +21,31 @@ dependencies:
21
21
  version: '3.12'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *76458570
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: '3.12'
25
30
  - !ruby/object:Gem::Dependency
26
31
  name: bundler
27
- requirement: &76457990 !ruby/object:Gem::Requirement
32
+ requirement: !ruby/object:Gem::Requirement
28
33
  none: false
29
34
  requirements:
30
35
  - - ~>
31
36
  - !ruby/object:Gem::Version
32
- version: 1.1.3
37
+ version: 1.3.4
33
38
  type: :development
34
39
  prerelease: false
35
- version_requirements: *76457990
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: 1.3.4
36
46
  - !ruby/object:Gem::Dependency
37
47
  name: jeweler
38
- requirement: &76457280 !ruby/object:Gem::Requirement
48
+ requirement: !ruby/object:Gem::Requirement
39
49
  none: false
40
50
  requirements:
41
51
  - - ~>
@@ -43,10 +53,15 @@ dependencies:
43
53
  version: 1.8.3
44
54
  type: :development
45
55
  prerelease: false
46
- version_requirements: *76457280
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: 1.8.3
47
62
  - !ruby/object:Gem::Dependency
48
63
  name: simplecov
49
- requirement: &76456750 !ruby/object:Gem::Requirement
64
+ requirement: !ruby/object:Gem::Requirement
50
65
  none: false
51
66
  requirements:
52
67
  - - ! '>='
@@ -54,10 +69,15 @@ dependencies:
54
69
  version: '0'
55
70
  type: :development
56
71
  prerelease: false
57
- version_requirements: *76456750
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
58
78
  - !ruby/object:Gem::Dependency
59
79
  name: builtinextension
60
- requirement: &76487640 !ruby/object:Gem::Requirement
80
+ requirement: !ruby/object:Gem::Requirement
61
81
  none: false
62
82
  requirements:
63
83
  - - ! '>='
@@ -65,18 +85,28 @@ dependencies:
65
85
  version: 0.0.0
66
86
  type: :development
67
87
  prerelease: false
68
- version_requirements: *76487640
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: 0.0.0
69
94
  - !ruby/object:Gem::Dependency
70
95
  name: weightedpicker
71
- requirement: &76487140 !ruby/object:Gem::Requirement
96
+ requirement: !ruby/object:Gem::Requirement
72
97
  none: false
73
98
  requirements:
74
99
  - - ! '>='
75
100
  - !ruby/object:Gem::Version
76
- version: 0.0.0
101
+ version: 0.1.0
77
102
  type: :development
78
103
  prerelease: false
79
- version_requirements: *76487140
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: 0.1.0
80
110
  description: This gem privide framework for quiz game. This gem can be used for spaced
81
111
  repetition study. The more frequently mistaken problems are given more frequently.
82
112
  email: ippei94da@gmail.com
@@ -122,7 +152,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
122
152
  version: '0'
123
153
  segments:
124
154
  - 0
125
- hash: 975847731
155
+ hash: -593133475
126
156
  required_rubygems_version: !ruby/object:Gem::Requirement
127
157
  none: false
128
158
  requirements:
@@ -131,7 +161,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
131
161
  version: '0'
132
162
  requirements: []
133
163
  rubyforge_project:
134
- rubygems_version: 1.8.11
164
+ rubygems_version: 1.8.23
135
165
  signing_key:
136
166
  specification_version: 3
137
167
  summary: Framework for game with quiz format.