quizgame 0.0.2 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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.