quizgame 0.0.0

Sign up to get free protection for your applications and to get access to all the features.
data/.document ADDED
@@ -0,0 +1,5 @@
1
+ lib/**/*.rb
2
+ bin/*
3
+ -
4
+ features/**/*.feature
5
+ LICENSE.txt
data/Gemfile ADDED
@@ -0,0 +1,13 @@
1
+ source "http://rubygems.org"
2
+ # Add dependencies required to use your gem here.
3
+ # Example:
4
+ # gem "activesupport", ">= 2.3.5"
5
+
6
+ # Add dependencies to develop your gem here.
7
+ # Include everything needed to run rake, tests, features, etc.
8
+ group :development do
9
+ gem "rdoc", "~> 3.12"
10
+ gem "bundler", "~> 1.1.3"
11
+ gem "jeweler", "~> 1.8.3"
12
+ gem "simplecov", ">= 0"
13
+ end
data/LICENSE.txt ADDED
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2012 ippei94da
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,2 @@
1
+ quizgame
2
+ ========
data/README.rdoc ADDED
@@ -0,0 +1,19 @@
1
+ = quizgame
2
+
3
+ Description goes here.
4
+
5
+ == Contributing to quizgame
6
+
7
+ * Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet.
8
+ * Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it.
9
+ * Fork the project.
10
+ * Start a feature/bugfix branch.
11
+ * Commit and push until you are happy with your contribution.
12
+ * Make sure to add tests for it. This is important so I don't break it in a future version unintentionally.
13
+ * Please try not to mess with the Rakefile, version, or history. If you want to have your own version, or is otherwise necessary, that is fine, but please isolate to its own commit so I can cherry-pick around it.
14
+
15
+ == Copyright
16
+
17
+ Copyright (c) 2012 ippei94da. See LICENSE.txt for
18
+ further details.
19
+
data/Rakefile ADDED
@@ -0,0 +1,53 @@
1
+ # encoding: utf-8
2
+
3
+ require 'rubygems'
4
+ require 'bundler'
5
+ begin
6
+ Bundler.setup(:default, :development)
7
+ rescue Bundler::BundlerError => e
8
+ $stderr.puts e.message
9
+ $stderr.puts "Run `bundle install` to install missing gems"
10
+ exit e.status_code
11
+ end
12
+ require 'rake'
13
+
14
+ require 'jeweler'
15
+ Jeweler::Tasks.new do |gem|
16
+ # gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
17
+ gem.name = "quizgame"
18
+ gem.homepage = "http://github.com/ippei94da/quizgame"
19
+ gem.license = "MIT"
20
+ gem.summary = %Q{Framework for game with quiz format.}
21
+ gem.description = %Q{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.}
22
+ gem.email = "ippei94da@gmail.com"
23
+ gem.authors = ["ippei94da"]
24
+ # dependencies defined in Gemfile
25
+ end
26
+ Jeweler::RubygemsDotOrgTasks.new
27
+
28
+ require 'rake/testtask'
29
+ Rake::TestTask.new(:test) do |test|
30
+ test.libs << 'lib' << 'test'
31
+ test.pattern = 'test/**/test_*.rb'
32
+ test.verbose = true
33
+ end
34
+
35
+ #require 'rcov/rcovtask'
36
+ #Rcov::RcovTask.new do |test|
37
+ # test.libs << 'test'
38
+ # test.pattern = 'test/**/test_*.rb'
39
+ # test.verbose = true
40
+ # test.rcov_opts << '--exclude "gems/*"'
41
+ #end
42
+
43
+ task :default => :test
44
+
45
+ require 'rdoc/task'
46
+ Rake::RDocTask.new do |rdoc|
47
+ version = File.exist?('VERSION') ? File.read('VERSION') : ""
48
+
49
+ rdoc.rdoc_dir = 'rdoc'
50
+ rdoc.title = "quizgame #{version}"
51
+ rdoc.rdoc_files.include('README*')
52
+ rdoc.rdoc_files.include('lib/**/*.rb')
53
+ end
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 0.0.0
data/bin/quizgame ADDED
@@ -0,0 +1,65 @@
1
+ #! /usr/bin/env ruby
2
+ # coding: utf-8
3
+
4
+
5
+ #クイズを実行する。
6
+ # quizgame quiz.yaml
7
+ # データファイル quiz.yaml を引数で指定。
8
+ # デフォルトでは 10問実行。
9
+ #
10
+ # quizgame -n 20 quiz.yaml
11
+ # 問題数を 20問に変更。
12
+ #
13
+ # quizuame -c quiz.yaml
14
+ # 問題数ではなく、正解数が規定に達するまで続けるモード。
15
+ #
16
+ # quiz.yaml と同じディレクトリに quiz_weight.yaml を生成し、
17
+ # ここに優先度を記録する。
18
+ #
19
+ # quiz.yaml format
20
+ # requirement: "全体に共通する問題文。e.g., 英単語に直せ。"
21
+ # problems:
22
+ # p20120228a: # 問題 ID
23
+ # - "1" # 問題文
24
+ # - "one" # 解答
25
+ # - "いち" # 回答後の補足説明
26
+ # p20120228b:
27
+ # - "2"
28
+ # - "two"
29
+ # - "に"
30
+
31
+ require "pp"
32
+ require "optparse"
33
+
34
+ require "rubygems"
35
+ gem "quizgame"
36
+ require "quizgame/quizgame.rb"
37
+ require "quizgame/problem.rb"
38
+
39
+ # option analysis
40
+ #default value
41
+ OPTIONS = { :norma => 10 }
42
+ op = OptionParser.new
43
+ op.on("-n num", "--norma=number", "Set number of norma."){ |val|
44
+ OPTIONS[:norma] = val.to_i }
45
+ op.parse!(ARGV)
46
+
47
+ unless ARGV.size == 1
48
+ puts "No quiz file indicated. Exit."
49
+ exit
50
+ end
51
+
52
+ data = YAML.load_file(ARGV[0])
53
+ #pp data
54
+ requirement = data["requirement"]
55
+ problems = {}
56
+ data["problems"].each do |id, ary|
57
+ problems[id] = Problem.new(*ary)
58
+ end
59
+ picker = WeightedPicker.new(ARGV[0].sub(/\.yaml$/, "_wts.yaml"), problems.keys)
60
+
61
+ #pp requirement
62
+ #pp problems
63
+ #pp picker
64
+ game = QuizGame.new(requirement, problems, picker)
65
+ game.run(OPTIONS[:norma])
@@ -0,0 +1,16 @@
1
+ ---
2
+ requirement: Answer the result.
3
+
4
+ problems:
5
+ p20120613a:
6
+ - 3-2
7
+ - "1"
8
+ - supplement1
9
+ p20120613b:
10
+ - 4-2
11
+ - "2"
12
+ - supplement2
13
+ p20120613c:
14
+ - 1*3
15
+ - "3"
16
+ - supplement3
@@ -0,0 +1,403 @@
1
+ requirement: '[百人一首]上の句の決まり字に対して、下の句の決まり字を答えよ'
2
+
3
+ problems:
4
+ p20120612_001:
5
+ - あきのたのかりほのいほのとまをあらみ
6
+ - わがころもではつゆにぬれつつ
7
+ - '歌番号( 1)'
8
+ p20120612_002:
9
+ - はるすぎてなつきにけらししろたへの
10
+ - ころもほすてふあまのかぐやま
11
+ - '歌番号( 2)'
12
+ p20120612_003:
13
+ - あしびきのやまどりのをのしだりをの
14
+ - ながながしよをひとりかもねむ
15
+ - '歌番号( 3)'
16
+ p20120612_004:
17
+ - たごのうらにうちいでてみればしろたへの
18
+ - ふじのたかねにゆきはふりつつ
19
+ - '歌番号( 4)'
20
+ p20120612_005:
21
+ - おくやまにもみぢふみわけなくしかの
22
+ - こゑきくときぞあきはかなしき
23
+ - '歌番号( 5)'
24
+ p20120612_006:
25
+ - かささぎのわたせるはしにおくしもの
26
+ - しろきをみればよぞふけにける
27
+ - '歌番号( 6)'
28
+ p20120612_007:
29
+ - あまのはらふりさけみればかすがなる
30
+ - みかさのやまにいでしつきかも
31
+ - '歌番号( 7)'
32
+ p20120612_008:
33
+ - わがいほはみやこのたつみしかぞすむ
34
+ - よをうぢやまとひとはいふなり
35
+ - '歌番号( 8)'
36
+ p20120612_009:
37
+ - はなのいろはうつりにけりないたづらに
38
+ - わがみよにふるながめせしまに
39
+ - '歌番号( 9)'
40
+ p20120612_010:
41
+ - これやこのゆくもかへるもわかれては
42
+ - しるもしらぬもあふさかのせき
43
+ - '歌番号( 10)'
44
+ p20120612_011:
45
+ - わたのはらやそしまかけてこぎいでぬと
46
+ - ひとにはつげよあまのつりぶね
47
+ - '歌番号( 11)'
48
+ p20120612_012:
49
+ - あまつかぜくものかよひぢふきとぢよ
50
+ - をとめのすがたしばしとどめむ
51
+ - '歌番号( 12)'
52
+ p20120612_013:
53
+ - つくばねのみねよりおつるみなのがは
54
+ - こひぞつもりてふちとなりぬる
55
+ - '歌番号( 13)'
56
+ p20120612_014:
57
+ - みちのくのしのぶもぢずりたれゆゑに
58
+ - みだれそめにしわれならなくに
59
+ - '歌番号( 14)'
60
+ p20120612_015:
61
+ - きみがためはるののにいでてわかなつむ
62
+ - わがころもでにゆきはふりつつ
63
+ - '歌番号( 15)'
64
+ p20120612_016:
65
+ - たちわかれいなばのやまのみねにおふる
66
+ - まつとしきかばいまかへりこむ
67
+ - '歌番号( 16)'
68
+ p20120612_017:
69
+ - ちはやぶるかみよもきかずたつたがは
70
+ - からくれなゐにみづくくるとは
71
+ - '歌番号( 17)'
72
+ p20120612_018:
73
+ - すみのえのきしによるなみよるさへや
74
+ - ゆめのかよひぢひとめよくらむ
75
+ - '歌番号( 18)'
76
+ p20120612_019:
77
+ - なにはがたみじかきあしのふしのまも
78
+ - あはでこのよをすぐしてよとや
79
+ - '歌番号( 19)'
80
+ p20120612_020:
81
+ - わびぬればいまはたおなじなにはなる
82
+ - みをつくしてもあはむとぞおもふ
83
+ - '歌番号( 20)'
84
+ p20120612_021:
85
+ - いまこむといひしばかりにながつきの
86
+ - ありあけのつきをまちいでつるか
87
+ - '歌番号( 21)'
88
+ p20120612_022:
89
+ - ふくからにあきのくさきのしをるれば
90
+ - むべやまかぜをあらしといふらむ
91
+ - '歌番号( 22)'
92
+ p20120612_023:
93
+ - つきみればちぢにものこそかなしけれ
94
+ - わがみひとつのあきにはあらねど
95
+ - '歌番号( 23)'
96
+ p20120612_024:
97
+ - このたびはぬさもとりあへずたむけやま
98
+ - もみぢのにしきかみのまにまに
99
+ - '歌番号( 24)'
100
+ p20120612_025:
101
+ - なにしおはばあふさかやまのさねかづら
102
+ - ひとにしられでくるよしもがな
103
+ - '歌番号( 25)'
104
+ p20120612_026:
105
+ - をぐらやまみねのもみぢばこころあらば
106
+ - いまひとたびのみゆきまたなむ
107
+ - '歌番号( 26)'
108
+ p20120612_027:
109
+ - みかのはらわきてながるるいづみがは
110
+ - いつみきとてかこひしかるらむ
111
+ - '歌番号( 27)'
112
+ p20120612_028:
113
+ - やまざとはふゆぞさびしさまさりける
114
+ - ひとめもくさもかれぬとおもへば
115
+ - '歌番号( 28)'
116
+ p20120612_029:
117
+ - こころあてにをらばやをらむはつしもの
118
+ - おきまどはせるしらぎくのはな
119
+ - '歌番号( 29)'
120
+ p20120612_030:
121
+ - ありあけのつれなくみえしわかれより
122
+ - あかつきばかりうきものはなし
123
+ - '歌番号( 30)'
124
+ p20120612_031:
125
+ - あさぼらけありあけのつきとみるまでに
126
+ - よしののさとにふれるしらゆき
127
+ - '歌番号( 31)'
128
+ p20120612_032:
129
+ - やまがはにかぜのかけたるしがらみは
130
+ - ながれもあへぬもみぢなりけり
131
+ - '歌番号( 32)'
132
+ p20120612_033:
133
+ - ひさかたのひかりのどけきはるのひに
134
+ - しづこころなくはなのちるらむ
135
+ - '歌番号( 33)'
136
+ p20120612_034:
137
+ - たれをかもしるひとにせむたかさごの
138
+ - まつもむかしのともならなくに
139
+ - '歌番号( 34)'
140
+ p20120612_035:
141
+ - ひとはいさこころもしらずふるさとは
142
+ - はなぞむかしのかににほひける
143
+ - '歌番号( 35)'
144
+ p20120612_036:
145
+ - なつのよはまだよひながらあけぬるを
146
+ - くものいづこにつきやどるらむ
147
+ - '歌番号( 36)'
148
+ p20120612_037:
149
+ - しらつゆにかぜのふきしくあきののは
150
+ - つらぬきとめぬたまぞちりける
151
+ - '歌番号( 37)'
152
+ p20120612_038:
153
+ - わすらるるみをばおもはずちかひてし
154
+ - ひとのいのちのをしくもあるかな
155
+ - '歌番号( 38)'
156
+ p20120612_039:
157
+ - あさぢふのをののしのはらしのぶれど
158
+ - あまりてなどかひとのこひしき
159
+ - '歌番号( 39)'
160
+ p20120612_040:
161
+ - しのぶれどいろにいでにけりわがこひは
162
+ - ものやおもふとひとのとふまで
163
+ - '歌番号( 40)'
164
+ p20120612_041:
165
+ - こひすてふわがなはまだきたちにけり
166
+ - ひとしれずこそおもひそめしか
167
+ - '歌番号( 41)'
168
+ p20120612_042:
169
+ - ちぎりきなかたみにそでをしぼりつつ
170
+ - すゑのまつやまなみこさじとは
171
+ - '歌番号( 42)'
172
+ p20120612_043:
173
+ - あひみてののちのこころにくらぶれば
174
+ - むかしはものをおもはざりけり
175
+ - '歌番号( 43)'
176
+ p20120612_044:
177
+ - あふことのたえてしなくばなかなかに
178
+ - ひとをもみをもうらみざらまし
179
+ - '歌番号( 44)'
180
+ p20120612_045:
181
+ - あはれともいふべきひとはおもほえで
182
+ - みのいたづらになりぬべきかな
183
+ - '歌番号( 45)'
184
+ p20120612_046:
185
+ - ゆらのとをわたるふなびとかぢをたえ
186
+ - ゆくへもしらぬこひのみちかな
187
+ - '歌番号( 46)'
188
+ p20120612_047:
189
+ - やへむぐらしげれるやどのさびしきに
190
+ - ひとこそみえねあきはきにけり
191
+ - '歌番号( 47)'
192
+ p20120612_048:
193
+ - かぜをいたみいはうつなみのおのれのみ
194
+ - くだけてものをおもふころかな
195
+ - '歌番号( 48)'
196
+ p20120612_049:
197
+ - みかきもりゑじのたくひのよるはもえて
198
+ - ひるはきえつつものをこそおもへ
199
+ - '歌番号( 49)'
200
+ p20120612_050:
201
+ - きみがためをしからざりしいのちさへ
202
+ - ながくもがなとおもひけるかな
203
+ - '歌番号( 50)'
204
+ p20120612_051:
205
+ - かくとだにえやはいぶきのさしもぐさ
206
+ - さしもしらじなもゆるおもひを
207
+ - '歌番号( 51)'
208
+ p20120612_052:
209
+ - あけぬればくるるものとはしりながら
210
+ - なほうらめしきあさぼらけかな
211
+ - '歌番号( 52)'
212
+ p20120612_053:
213
+ - なげきつつひとりぬるよのあくるまは
214
+ - いかにひさしきものとかはしる
215
+ - '歌番号( 53)'
216
+ p20120612_054:
217
+ - わすれじのゆくすゑまではかたければ
218
+ - けふをかぎりのいのちともがな
219
+ - '歌番号( 54)'
220
+ p20120612_055:
221
+ - たきのおとはたえてひさしくなりぬれど
222
+ - なこそながれてなほきこえけれ
223
+ - '歌番号( 55)'
224
+ p20120612_056:
225
+ - あらざらむこのよのほかのおもひでに
226
+ - いまひとたびのあふこともがな
227
+ - '歌番号( 56)'
228
+ p20120612_057:
229
+ - めぐりあひてみしやそれともわかぬまに
230
+ - くもがくれにしよはのつきかな
231
+ - '歌番号( 57)'
232
+ p20120612_058:
233
+ - ありまやまゐなのささはらかぜふけば
234
+ - いでそよひとをわすれやはする
235
+ - '歌番号( 58)'
236
+ p20120612_059:
237
+ - やすらはでねなましものをさよふけて
238
+ - かたぶくまでのつきをみしかな
239
+ - '歌番号( 59)'
240
+ p20120612_060:
241
+ - おほえやまいくののみちのとほければ
242
+ - まだふみもみずあまのはしだて
243
+ - '歌番号( 60)'
244
+ p20120612_061:
245
+ - いにしへのならのみやこのやへざくら
246
+ - けふここのへににほひぬるかな
247
+ - '歌番号( 61)'
248
+ p20120612_062:
249
+ - よをこめてとりのそらねははかるとも
250
+ - よにあふさかのせきはゆるさじ
251
+ - '歌番号( 62)'
252
+ p20120612_063:
253
+ - いまはただおもひたえなむとばかりを
254
+ - ひとづてならでいふよしもがな
255
+ - '歌番号( 63)'
256
+ p20120612_064:
257
+ - あさぼらけうぢのかはぎりたえだえに
258
+ - あらはれわたるせぜのあじろぎ
259
+ - '歌番号( 64)'
260
+ p20120612_065:
261
+ - うらみわびほさぬそでだにあるものを
262
+ - こひにくちなむなこそをしけれ
263
+ - '歌番号( 65)'
264
+ p20120612_066:
265
+ - もろともにあはれとおもへやまざくら
266
+ - はなよりほかにしるひともなし
267
+ - '歌番号( 66)'
268
+ p20120612_067:
269
+ - はるのよのゆめばかりなるたまくらに
270
+ - かひなくたたむなこそをしけれ
271
+ - '歌番号( 67)'
272
+ p20120612_068:
273
+ - こころにもあらでうきよにながらへば
274
+ - こひしかるべきよはのつきかな
275
+ - '歌番号( 68)'
276
+ p20120612_069:
277
+ - あらしふくみむろのやまのもみぢばは
278
+ - たつたのかはのにしきなりけり
279
+ - '歌番号( 69)'
280
+ p20120612_070:
281
+ - さびしさにやどをたちいでてながむれば
282
+ - いづくもおなじあきのゆふぐれ
283
+ - '歌番号( 70)'
284
+ p20120612_071:
285
+ - ゆふさればかどたのいなばおとづれて
286
+ - あしのまろやにあきかぜぞふく
287
+ - '歌番号( 71)'
288
+ p20120612_072:
289
+ - おとにきくたかしのはまのあだなみは
290
+ - かけじやそでのぬれもこそすれ
291
+ - '歌番号( 72)'
292
+ p20120612_073:
293
+ - たかさごのをのへのさくらさきにけり
294
+ - とやまのかすみたたずもあらなむ
295
+ - '歌番号( 73)'
296
+ p20120612_074:
297
+ - うかりけるひとをはつせのやまおろしよ
298
+ - はげしかれとはいのらぬものを
299
+ - '歌番号( 74)'
300
+ p20120612_075:
301
+ - ちぎりおきしさせもがつゆをいのちにて
302
+ - あはれことしのあきもいぬめり
303
+ - '歌番号( 75)'
304
+ p20120612_076:
305
+ - わたのはらこぎいでてみればひさかたの
306
+ - くもゐにまがふおきつしらなみ
307
+ - '歌番号( 76)'
308
+ p20120612_077:
309
+ - せをはやみいはにせかるるたきがはの
310
+ - われてもすゑにあはむとぞおもふ
311
+ - '歌番号( 77)'
312
+ p20120612_078:
313
+ - あはぢしまかよふちどりのなくこゑに
314
+ - いくよねざめぬすまのせきもり
315
+ - '歌番号( 78)'
316
+ p20120612_079:
317
+ - あきかぜにたなびくくものたえまより
318
+ - もれいづるつきのかげのさやけさ
319
+ - '歌番号( 79)'
320
+ p20120612_080:
321
+ - ながからむこころもしらずくろかみの
322
+ - みだれてけさはものをこそおもへ
323
+ - '歌番号( 80)'
324
+ p20120612_081:
325
+ - ほととぎすなきつるかたをながむれば
326
+ - ただありあけのつきぞのこれる
327
+ - '歌番号( 81)'
328
+ p20120612_082:
329
+ - おもひわびさてもいのちはあるものを
330
+ - うきにたへぬはなみだなりけり
331
+ - '歌番号( 82)'
332
+ p20120612_083:
333
+ - よのなかよみちこそなけれおもひいる
334
+ - やまのおくにもしかぞなくなる
335
+ - '歌番号( 83)'
336
+ p20120612_084:
337
+ - ながらへばまたこのごろやしのばれむ
338
+ - うしとみしよぞいまはこひしき
339
+ - '歌番号( 84)'
340
+ p20120612_085:
341
+ - よもすがらものおもふころはあけやらで
342
+ - ねやのひまさへつれなかりけり
343
+ - '歌番号( 85)'
344
+ p20120612_086:
345
+ - なげけとてつきやはものをおもはする
346
+ - かこちがほなるわがなみだかな
347
+ - '歌番号( 86)'
348
+ p20120612_087:
349
+ - むらさめのつゆもまだひぬまきのはに
350
+ - きりたちのぼるあきのゆふぐれ
351
+ - '歌番号( 87)'
352
+ p20120612_088:
353
+ - なにはえのあしのかりねのひとよゆゑ
354
+ - みをつくしてやこひわたるべき
355
+ - '歌番号( 88)'
356
+ p20120612_089:
357
+ - たまのをよたえなばたえねながらへば
358
+ - しのぶることのよわりもぞする
359
+ - '歌番号( 89)'
360
+ p20120612_090:
361
+ - みせばやなをじまのあまのそでだにも
362
+ - ぬれにぞぬれしいろはかはらず
363
+ - '歌番号( 90)'
364
+ p20120612_091:
365
+ - きりぎりすなくやしもよのさむしろに
366
+ - ころもかたしきひとりかもねむ
367
+ - '歌番号( 91)'
368
+ p20120612_092:
369
+ - わがそではしほひにみえぬおきのいしの
370
+ - ひとこそしらねかわくまもなし
371
+ - '歌番号( 92)'
372
+ p20120612_093:
373
+ - よのなかはつねにもがもななぎさこぐ
374
+ - あまのをぶねのつなでかなしも
375
+ - '歌番号( 93)'
376
+ p20120612_094:
377
+ - みよしののやまのあきかぜさよふけて
378
+ - ふるさとさむくころもうつなり
379
+ - '歌番号( 94)'
380
+ p20120612_095:
381
+ - おほけなくうきよのたみにおほふかな
382
+ - わがたつそまにすみぞめのそで
383
+ - '歌番号( 95)'
384
+ p20120612_096:
385
+ - はなさそふあらしのにはのゆきならで
386
+ - ふりゆくものはわがみなりけり
387
+ - '歌番号( 96)'
388
+ p20120612_097:
389
+ - こぬひとをまつほのうらのゆふなぎに
390
+ - やくやもしほのみもこがれつつ
391
+ - '歌番号( 97)'
392
+ p20120612_098:
393
+ - かぜそよぐならのをがはのゆふぐれは
394
+ - みそぎぞなつのしるしなりける
395
+ - '歌番号( 98)'
396
+ p20120612_099:
397
+ - ひともをしひともうらめしあぢきなく
398
+ - よをおもふゆゑにものおもふみは
399
+ - '歌番号( 99)'
400
+ p20120612_100:
401
+ - ももしきやふるきのきばのしのぶにも
402
+ - なほあまりあるむかしなりけり
403
+ - '歌番号(100)'
@@ -0,0 +1,403 @@
1
+ requirement: '[百人一首]上の句の決まり字に対して、下の句の決まり字を答えよ)'
2
+
3
+ problems:
4
+ p20120612_001:
5
+ - あきの
6
+ - わがころもでは
7
+ - '歌番号( 1)'
8
+ p20120612_002:
9
+ - はるす
10
+ - ころも
11
+ - '歌番号( 2)'
12
+ p20120612_003:
13
+ - あし
14
+ - ながな
15
+ - '歌番号( 3)'
16
+ p20120612_004:
17
+ - たご
18
+ - ふじ
19
+ - '歌番号( 4)'
20
+ p20120612_005:
21
+ - おく
22
+ - こゑ
23
+ - '歌番号( 5)'
24
+ p20120612_006:
25
+ - かさ
26
+ - しろ
27
+ - '歌番号( 6)'
28
+ p20120612_007:
29
+ - あまの
30
+ - みか
31
+ - '歌番号( 7)'
32
+ p20120612_008:
33
+ - わがい
34
+ - よをう
35
+ - '歌番号( 8)'
36
+ p20120612_009:
37
+ - はなの
38
+ - わがみよ
39
+ - '歌番号( 9)'
40
+ p20120612_010:
41
+ - これ
42
+ - しる
43
+ - '歌番号( 10)'
44
+ p20120612_011:
45
+ - わたのはらや
46
+ - ひとには
47
+ - '歌番号( 11)'
48
+ p20120612_012:
49
+ - あまつ
50
+ - を
51
+ - '歌番号( 12)'
52
+ p20120612_013:
53
+ - つく
54
+ - こひぞ
55
+ - '歌番号( 13)'
56
+ p20120612_014:
57
+ - みち
58
+ - みだれそ
59
+ - '歌番号( 14)'
60
+ p20120612_015:
61
+ - きみがためは
62
+ - わがころもでに
63
+ - '歌番号( 15)'
64
+ p20120612_016:
65
+ - たち
66
+ - まつと
67
+ - '歌番号( 16)'
68
+ p20120612_017:
69
+ - ちは
70
+ - から
71
+ - '歌番号( 17)'
72
+ p20120612_018:
73
+ - す
74
+ - ゆめ
75
+ - '歌番号( 18)'
76
+ p20120612_019:
77
+ - なにはが
78
+ - あはで
79
+ - '歌番号( 19)'
80
+ p20120612_020:
81
+ - わび
82
+ - みをつくしても
83
+ - '歌番号( 20)'
84
+ p20120612_021:
85
+ - いまこ
86
+ - あり
87
+ - '歌番号( 21)'
88
+ p20120612_022:
89
+ - ふ
90
+ - むべ
91
+ - '歌番号( 22)'
92
+ p20120612_023:
93
+ - つき
94
+ - わがみひ
95
+ - '歌番号( 23)'
96
+ p20120612_024:
97
+ - この
98
+ - もみ
99
+ - '歌番号( 24)'
100
+ p20120612_025:
101
+ - なにし
102
+ - ひとにし
103
+ - '歌番号( 25)'
104
+ p20120612_026:
105
+ - をぐ
106
+ - いまひとたびのみ
107
+ - '歌番号( 26)'
108
+ p20120612_027:
109
+ - みかの
110
+ - いつ
111
+ - '歌番号( 27)'
112
+ p20120612_028:
113
+ - やまざ
114
+ - ひとめ
115
+ - '歌番号( 28)'
116
+ p20120612_029:
117
+ - こころあ
118
+ - お
119
+ - '歌番号( 29)'
120
+ p20120612_030:
121
+ - ありあ
122
+ - あか
123
+ - '歌番号( 30)'
124
+ p20120612_031:
125
+ - あさぼらけあ
126
+ - よし
127
+ - '歌番号( 31)'
128
+ p20120612_032:
129
+ - やまが
130
+ - ながれ
131
+ - '歌番号( 32)'
132
+ p20120612_033:
133
+ - ひさ
134
+ - しづ
135
+ - '歌番号( 33)'
136
+ p20120612_034:
137
+ - たれ
138
+ - まつも
139
+ - '歌番号( 34)'
140
+ p20120612_035:
141
+ - ひとは
142
+ - はなぞ
143
+ - '歌番号( 35)'
144
+ p20120612_036:
145
+ - なつ
146
+ - くもの
147
+ - '歌番号( 36)'
148
+ p20120612_037:
149
+ - しら
150
+ - つ
151
+ - '歌番号( 37)'
152
+ p20120612_038:
153
+ - わすら
154
+ - ひとの
155
+ - '歌番号( 38)'
156
+ p20120612_039:
157
+ - あさぢ
158
+ - あまり
159
+ - '歌番号( 39)'
160
+ p20120612_040:
161
+ - しの
162
+ - もの
163
+ - '歌番号( 40)'
164
+ p20120612_041:
165
+ - こひ
166
+ - ひとし
167
+ - '歌番号( 41)'
168
+ p20120612_042:
169
+ - ちぎりき
170
+ - す
171
+ - '歌番号( 42)'
172
+ p20120612_043:
173
+ - あひ
174
+ - むか
175
+ - '歌番号( 43)'
176
+ p20120612_044:
177
+ - あふこ
178
+ - ひとを
179
+ - '歌番号( 44)'
180
+ p20120612_045:
181
+ - あはれ
182
+ - みの
183
+ - '歌番号( 45)'
184
+ p20120612_046:
185
+ - ゆら
186
+ - ゆく
187
+ - '歌番号( 46)'
188
+ p20120612_047:
189
+ - やへ
190
+ - ひとこそみ
191
+ - '歌番号( 47)'
192
+ p20120612_048:
193
+ - かぜを
194
+ - くだ
195
+ - '歌番号( 48)'
196
+ p20120612_049:
197
+ - みかき
198
+ - ひる
199
+ - '歌番号( 49)'
200
+ p20120612_050:
201
+ - きみがためを
202
+ - ながく
203
+ - '歌番号( 50)'
204
+ p20120612_051:
205
+ - かく
206
+ - さ
207
+ - '歌番号( 51)'
208
+ p20120612_052:
209
+ - あけ
210
+ - なほう
211
+ - '歌番号( 52)'
212
+ p20120612_053:
213
+ - なげき
214
+ - いか
215
+ - '歌番号( 53)'
216
+ p20120612_054:
217
+ - わすれ
218
+ - けふを
219
+ - '歌番号( 54)'
220
+ p20120612_055:
221
+ - たき
222
+ - なこ
223
+ - '歌番号( 55)'
224
+ p20120612_056:
225
+ - あらざ
226
+ - いまひとたびのあ
227
+ - '歌番号( 56)'
228
+ p20120612_057:
229
+ - め
230
+ - くもが
231
+ - '歌番号( 57)'
232
+ p20120612_058:
233
+ - ありま
234
+ - いで
235
+ - '歌番号( 58)'
236
+ p20120612_059:
237
+ - やす
238
+ - かた
239
+ - '歌番号( 59)'
240
+ p20120612_060:
241
+ - おほえ
242
+ - まだ
243
+ - '歌番号( 60)'
244
+ p20120612_061:
245
+ - いに
246
+ - けふこ
247
+ - '歌番号( 61)'
248
+ p20120612_062:
249
+ - よを
250
+ - よに
251
+ - '歌番号( 62)'
252
+ p20120612_063:
253
+ - いまは
254
+ - ひとづ
255
+ - '歌番号( 63)'
256
+ p20120612_064:
257
+ - あさぼらけう
258
+ - あら
259
+ - '歌番号( 64)'
260
+ p20120612_065:
261
+ - うら
262
+ - こひに
263
+ - '歌番号( 65)'
264
+ p20120612_066:
265
+ - もろ
266
+ - はなよ
267
+ - '歌番号( 66)'
268
+ p20120612_067:
269
+ - はるの
270
+ - かひ
271
+ - '歌番号( 67)'
272
+ p20120612_068:
273
+ - こころに
274
+ - こひし
275
+ - '歌番号( 68)'
276
+ p20120612_069:
277
+ - あらし
278
+ - たつ
279
+ - '歌番号( 69)'
280
+ p20120612_070:
281
+ - さ
282
+ - いづ
283
+ - '歌番号( 70)'
284
+ p20120612_071:
285
+ - ゆふ
286
+ - あし
287
+ - '歌番号( 71)'
288
+ p20120612_072:
289
+ - おと
290
+ - かけ
291
+ - '歌番号( 72)'
292
+ p20120612_073:
293
+ - たか
294
+ - と
295
+ - '歌番号( 73)'
296
+ p20120612_074:
297
+ - うか
298
+ - はげ
299
+ - '歌番号( 74)'
300
+ p20120612_075:
301
+ - ちぎりお
302
+ - あはれ
303
+ - '歌番号( 75)'
304
+ p20120612_076:
305
+ - わたのはらこ
306
+ - くもゐ
307
+ - '歌番号( 76)'
308
+ p20120612_077:
309
+ - せ
310
+ - われても
311
+ - '歌番号( 77)'
312
+ p20120612_078:
313
+ - あはぢ
314
+ - いく
315
+ - '歌番号( 78)'
316
+ p20120612_079:
317
+ - あきか
318
+ - もれ
319
+ - '歌番号( 79)'
320
+ p20120612_080:
321
+ - ながか
322
+ - みだれて
323
+ - '歌番号( 80)'
324
+ p20120612_081:
325
+ - ほ
326
+ - ただ
327
+ - '歌番号( 81)'
328
+ p20120612_082:
329
+ - おも
330
+ - うき
331
+ - '歌番号( 82)'
332
+ p20120612_083:
333
+ - よのなかよ
334
+ - やま
335
+ - '歌番号( 83)'
336
+ p20120612_084:
337
+ - ながら
338
+ - うし
339
+ - '歌番号( 84)'
340
+ p20120612_085:
341
+ - よも
342
+ - ね
343
+ - '歌番号( 85)'
344
+ p20120612_086:
345
+ - なげけ
346
+ - かこ
347
+ - '歌番号( 86)'
348
+ p20120612_087:
349
+ - む
350
+ - き
351
+ - '歌番号( 87)'
352
+ p20120612_088:
353
+ - なにはえ
354
+ - みをつくしてや
355
+ - '歌番号( 88)'
356
+ p20120612_089:
357
+ - たま
358
+ - しの
359
+ - '歌番号( 89)'
360
+ p20120612_090:
361
+ - みせ
362
+ - ぬ
363
+ - '歌番号( 90)'
364
+ p20120612_091:
365
+ - きり
366
+ - ころも
367
+ - '歌番号( 91)'
368
+ p20120612_092:
369
+ - わがそ
370
+ - ひとこそし
371
+ - '歌番号( 92)'
372
+ p20120612_093:
373
+ - よのなかは
374
+ - あまの
375
+ - '歌番号( 93)'
376
+ p20120612_094:
377
+ - みよ
378
+ - ふる
379
+ - '歌番号( 94)'
380
+ p20120612_095:
381
+ - おほけ
382
+ - わがた
383
+ - '歌番号( 95)'
384
+ p20120612_096:
385
+ - はなさ
386
+ - ふり
387
+ - '歌番号( 96)'
388
+ p20120612_097:
389
+ - こぬ
390
+ - やく
391
+ - '歌番号( 97)'
392
+ p20120612_098:
393
+ - かぜそ
394
+ - みそ
395
+ - '歌番号( 98)'
396
+ p20120612_099:
397
+ - ひとも
398
+ - よをお
399
+ - '歌番号( 99)'
400
+ p20120612_100:
401
+ - もも
402
+ - なほあ
403
+ - '歌番号(100)'
@@ -0,0 +1,90 @@
1
+ #! /usr/bin/env ruby
2
+ # coding: utf-8
3
+
4
+ require "rubygems"
5
+ gem "builtinextension"
6
+ require "string_color.rb"
7
+ require "string_mismatch.rb"
8
+
9
+ #Class for one item of quizes.
10
+ #This class does not print to stdout.
11
+ #That should be done by class that deal with interface.
12
+ #
13
+ #quizId was deplicated. quizStr will work so.
14
+ #
15
+ #QuizGame ライブラリでは問題文の構造として以下のようなモデルを考えている。
16
+ # 1. 以下の英単語を日本語単語に訳せ。
17
+ # (1) dog
18
+ # (2) cat
19
+ #
20
+ # 2. 以下の日本語単語を英単語に訳せ。
21
+ # (1) 牛
22
+ # (2) 馬
23
+ #
24
+ # 1. や 2. に続く文は requirement、属する小問全てに対する要求。
25
+ # (1) や (2) に続くのは question、 実際に対処する要素。
26
+ # これらに対する解答は answer
27
+ # 正否に関わらない補足情報が supplement
28
+ #この用語を使う。
29
+ #
30
+ #requirement を Problem 内では保持しない。
31
+ #多くの場合、上位の構造で保持して同種の問題を繰り返すものだから。
32
+ class Problem
33
+ attr_reader :question, :answer, :supplement
34
+
35
+ def initialize( question, answer, supplement = nil )
36
+ @question = question
37
+ @answer = answer
38
+ @supplement = supplement
39
+ end
40
+
41
+ #問題文を表示。
42
+ #Problem 側がこのメソッドを持つことについて。
43
+ #問題が必ずしも文でないことがあるため。
44
+ #たとえばヒアリングの問題なんかでは、
45
+ #Problem クラスインスタンスがその再生方法などを持っているべきだ。
46
+ def exhibit_question( io = STDOUT )
47
+ io.puts @question
48
+ end
49
+
50
+ #problem の supplement があれば、それを出力。
51
+ #なければ何もせず処理を返す。
52
+ def show_supplement( io = STDOUT )
53
+ return if ( @supplement == nil )
54
+
55
+ io.puts "[supplement]"
56
+ io.puts " #{@supplement}"
57
+ end
58
+
59
+ #正誤判定。
60
+ #正誤判定は Problem 内で行う。
61
+ #Problem のサブクラスで正誤判定条件を変更できる。
62
+ #MEMO: 今のところ ignorecase しているが、本来は厳密に一致せんとあかん。
63
+ def correct?( data )
64
+ return true if /^#{@answer}$/i =~ data
65
+ return false
66
+ end
67
+
68
+ #@answer と str を比較して、
69
+ #正しい部分はデフォルト色、間違った部分は強調色で表示する
70
+ #文字列を生成。
71
+ #正しい部分は、先頭から連続して一致する部分と定義。
72
+ #後ろの一致とかは実装が難しい。
73
+ #str が @answer より短ければ同じ長さになるように末尾に _ を補う。
74
+ def emphasize_wrong( str )
75
+ index = @answer.mismatch( str )
76
+
77
+ #index が nil、すなわち @answer と str が完全に一致しているとき、そのまま返す。
78
+ return str unless index
79
+
80
+ #差があれば間違い以降を赤字にして返す。
81
+ correct_part = str[0..( index - 1 )]
82
+ wrong_part = str[index .. (-1) ]
83
+
84
+ #str が短ければ同じ長さになるように末尾に _ を補う。
85
+ wrong_part += "_" * ( @answer.size - str.size ) if ( @answer.size > str.size )
86
+
87
+ return ( correct_part + wrong_part.color( :red ) )
88
+ end
89
+
90
+ end
@@ -0,0 +1,124 @@
1
+ #! /usr/bin/env ruby
2
+ # coding: utf-8
3
+
4
+ require "rubygems"
5
+ gem "builtinextension"
6
+ require "string_color.rb"
7
+ require "string_mismatch.rb"
8
+
9
+ gem "weightedpicker"
10
+ require "weightedpicker.rb"
11
+
12
+ require "quizgame/problem.rb"
13
+ require "yaml"
14
+
15
+ include Math
16
+
17
+ # クイズゲームを管理・実行するクラス。
18
+ class QuizGame
19
+ QUIT_STR = "q"
20
+ #NEXT_STR = ""
21
+ NUM_EMPTY_LINE = 8
22
+ #MINIMUM_INTERVAL = 10 #同じ問題を再出題する最短の interval
23
+
24
+ class QuizGame::NoQuizError < Exception; end
25
+
26
+ # クイズデータを読み込む。
27
+ def initialize(requirement, problems, picker)
28
+ @requirement = requirement
29
+ @problems = problems
30
+ @picker = picker
31
+ end
32
+
33
+ # 条件を満たすまでクイズを実行。
34
+ # norma は終了条件の数
35
+ def run(norma)
36
+ correct_count = 0
37
+ problem_count = 0
38
+ show_statement(norma)
39
+ puts "Requirement: ", @requirement
40
+
41
+ start_time = Time.new
42
+
43
+ while (problem_count < norma )
44
+ id = @picker.pick
45
+ problem = @problems[id]
46
+
47
+ puts "-"*60
48
+ print "[Q.#{problem_count+1}, #{id}] "
49
+ problem.exhibit_question
50
+
51
+ input_str = user_input
52
+ (puts "-- Interrupted --"; break) if (input_str == QUIT_STR)
53
+ #(puts "-- Next --"; next) if (input_str == NEXT_STR)
54
+
55
+ problem_count += 1
56
+ if problem.correct?(input_str)
57
+ correct_count += 1
58
+ @picker.lighten(id)
59
+ else
60
+ @picker.weigh(id)
61
+ end
62
+
63
+ puts show_result(problem, input_str)
64
+ puts problem.show_supplement
65
+ #pp correct_count
66
+ #pp problem_count
67
+ #pp @norma
68
+ printf( "[%d correct / %d problems / %d norma]\n",
69
+ correct_count, problem_count, norma)
70
+ end
71
+
72
+ puts "="*60
73
+ sleep(0.35) #Visual effect. A little stop before showing results.
74
+ if (correct_count == norma)
75
+ show_great
76
+ end
77
+
78
+ printf("result: [%d correct / %d problems]",
79
+ correct_count, problem_count)
80
+ printf(" %2d\%\n", (correct_count.to_f/ problem_count*100).to_i)
81
+
82
+ print "Time: ", Time.now - start_time, "\n"
83
+ end
84
+
85
+ private
86
+
87
+ #ゲーム開始前に情報を提示。
88
+ def show_statement(norma, io = $stdout)
89
+ io.puts "#{QUIT_STR}[Enter] for immediately quit."
90
+ io.puts
91
+ io.puts "This program has #{@problems.size} problems."
92
+ io.print "Norma: " + norma.to_s.color(:green) + " "
93
+ io.puts "problems."
94
+ end
95
+
96
+ def user_input(input = STDIN, output = $stdout)
97
+ output.print "\n" * NUM_EMPTY_LINE
98
+ output.print "input: "
99
+ return input.gets.chomp!
100
+ end
101
+
102
+ #
103
+ def show_result(problem, str, io = $stdout)
104
+ if (problem.correct?(str) == false)
105
+ io.puts "×: ".color(:red) + problem.emphasize_wrong(str)
106
+ end
107
+ io.puts "○: #{problem.answer}"
108
+ end
109
+
110
+
111
+ def show_great
112
+ print "\n"
113
+ great = Array.new
114
+ puts "■■■■■□■■■■■□■■■■■□■■■■■□■■■■■□■□■".color(:red )
115
+ puts "■□□□□□■□□□■□■□□□□□■□□□■□□□■□□□■□■".color(:yellow)
116
+ puts "■□■■■□■■■■■□■■■■■□■■■■■□□□■□□□■□■".color(:green )
117
+ puts "■□□□■□■□□■□□■□□□□□■□□□■□□□■□□□□□□".color(:cyan )
118
+ puts "■■■■■□■□□□■□■■■■■□■□□□■□□□■□□□■□■".color(:blue )
119
+ puts
120
+ puts "All answers are correct!"
121
+ puts
122
+ end
123
+
124
+ end
data/lib/quizgame.rb ADDED
File without changes
data/test/helper.rb ADDED
@@ -0,0 +1,17 @@
1
+ require 'rubygems'
2
+ require 'bundler'
3
+ begin
4
+ Bundler.setup(:default, :development)
5
+ rescue Bundler::BundlerError => e
6
+ $stderr.puts e.message
7
+ $stderr.puts "Run `bundle install` to install missing gems"
8
+ exit e.status_code
9
+ end
10
+ require 'test/unit'
11
+
12
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
13
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
14
+ require 'quizgame'
15
+
16
+ class Test::Unit::TestCase
17
+ end
@@ -0,0 +1,7 @@
1
+ require 'helper'
2
+
3
+ class TestQuizgame < Test::Unit::TestCase
4
+ def test_something_for_real
5
+ flunk "hey buddy, you should probably rename this file and start testing for real"
6
+ end
7
+ end
metadata ADDED
@@ -0,0 +1,113 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: quizgame
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - ippei94da
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-06-13 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rdoc
16
+ requirement: &81673750 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: '3.12'
22
+ type: :development
23
+ prerelease: false
24
+ version_requirements: *81673750
25
+ - !ruby/object:Gem::Dependency
26
+ name: bundler
27
+ requirement: &81672530 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ~>
31
+ - !ruby/object:Gem::Version
32
+ version: 1.1.3
33
+ type: :development
34
+ prerelease: false
35
+ version_requirements: *81672530
36
+ - !ruby/object:Gem::Dependency
37
+ name: jeweler
38
+ requirement: &81671900 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ~>
42
+ - !ruby/object:Gem::Version
43
+ version: 1.8.3
44
+ type: :development
45
+ prerelease: false
46
+ version_requirements: *81671900
47
+ - !ruby/object:Gem::Dependency
48
+ name: simplecov
49
+ requirement: &81671160 !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ type: :development
56
+ prerelease: false
57
+ version_requirements: *81671160
58
+ description: This gem privide framework for quiz game. This gem can be used for spaced
59
+ repetition study. The more frequently mistaken problems are given more frequently.
60
+ email: ippei94da@gmail.com
61
+ executables:
62
+ - quizgame
63
+ extensions: []
64
+ extra_rdoc_files:
65
+ - LICENSE.txt
66
+ - README.md
67
+ - README.rdoc
68
+ files:
69
+ - .document
70
+ - Gemfile
71
+ - LICENSE.txt
72
+ - README.md
73
+ - README.rdoc
74
+ - Rakefile
75
+ - VERSION
76
+ - bin/quizgame
77
+ - example/arithmetic.yaml
78
+ - example/hyakuninIsshuLong.yaml
79
+ - example/hyakuninIsshuShort.yaml
80
+ - lib/quizgame.rb
81
+ - lib/quizgame/problem.rb
82
+ - lib/quizgame/quizgame.rb
83
+ - test/helper.rb
84
+ - test/test_quizgame.rb
85
+ homepage: http://github.com/ippei94da/quizgame
86
+ licenses:
87
+ - MIT
88
+ post_install_message:
89
+ rdoc_options: []
90
+ require_paths:
91
+ - lib
92
+ required_ruby_version: !ruby/object:Gem::Requirement
93
+ none: false
94
+ requirements:
95
+ - - ! '>='
96
+ - !ruby/object:Gem::Version
97
+ version: '0'
98
+ segments:
99
+ - 0
100
+ hash: 953911631
101
+ required_rubygems_version: !ruby/object:Gem::Requirement
102
+ none: false
103
+ requirements:
104
+ - - ! '>='
105
+ - !ruby/object:Gem::Version
106
+ version: '0'
107
+ requirements: []
108
+ rubyforge_project:
109
+ rubygems_version: 1.8.11
110
+ signing_key:
111
+ specification_version: 3
112
+ summary: Framework for game with quiz format.
113
+ test_files: []