timequiz 0.2.1 → 0.2.2

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1b4ed1f632bbabb31d030be947ec4aae28b0c0f9d58b3235f6556241b498c278
4
- data.tar.gz: 646ccff003ccbe5968ed8c4a166902fc8ea07450e600e4c74e881f1bc1523ecd
3
+ metadata.gz: daea9447b170a102d8da289d83d0a3308e7978ffd6398f685b3ba38c1a9b8a3e
4
+ data.tar.gz: 6d5c7ef90601c861f2c5af709cf6db654e76f7a21b6ef17c5e09889b9aa6e35c
5
5
  SHA512:
6
- metadata.gz: 3f9a0b262a708759f9842e94efbaa736d92cf53d9c9950dbe454b18ea45b9eb4c3d9fe26ab3ee70874f25a59050dc73af1745b292d64b6f377e30e88807d60fb
7
- data.tar.gz: 0e4e35c8f87c4c9a69f9cde7efebc31cf5582172eaaa6a3c75e08c596ca6a75e09b560f08a15d9e1788b78b4fe297574634a3f42c8c439195842f2cea747d63b
6
+ metadata.gz: eb8af1641167be90a179d1a659172ec38ebbaeae264c0aa0b32eeb878c1330cab038e8ffcc900c343105297e8265bf28006b8aee7349400a45651bc54fd83824
7
+ data.tar.gz: bfd0f786ec2df827c1ceb40968c13fe34c70ddab9c7fca3a1d5fb9fbc00ae3f95fba21ed441dd653ac93c7dda8e85592c3138f7611c3c1d00b4188338e92f618
@@ -4,442 +4,132 @@
4
4
  <head>
5
5
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6
6
  <meta name="generator" content="Docutils 0.21.2: https://docutils.sourceforge.io/" />
7
- <title>Timequiz</title>
7
+ <title>TIMEQUIZ</title>
8
8
  <style type="text/css">
9
9
 
10
10
  /*
11
- :Author: David Goodger (goodger@python.org)
12
- :Id: $Id: html4css1.css 9511 2024-01-13 09:50:07Z milde $
13
- :Copyright: This stylesheet has been placed in the public domain.
11
+ :Author: Michael Uplawski
12
+ :Contact: michael.uplawski@uplawski.eu
13
+ :License: WTFPL 2.0, see http://www.wtfpl.net/about/
14
14
 
15
- Default cascading style sheet for the HTML output of Docutils.
16
- Despite the name, some widely supported CSS2 features are used.
17
-
18
- See https://docutils.sourceforge.io/docs/howto/html-stylesheets.html for how to
19
- customize this style sheet.
15
+ Stylesheet for use with Docutils.
20
16
  */
21
17
 
22
- /* used to remove borders from tables and images */
23
- .borderless, table.borderless td, table.borderless th {
24
- border: 0 }
25
-
26
- table.borderless td, table.borderless th {
27
- /* Override padding for "table.docutils td" with "! important".
28
- The right padding separates the table cells. */
29
- padding: 0 0.5em 0 0 ! important }
30
-
31
- .first {
32
- /* Override more specific margin styles with "! important". */
33
- margin-top: 0 ! important }
34
-
35
- .last, .with-subtitle {
36
- margin-bottom: 0 ! important }
37
-
38
- .hidden {
39
- display: none }
40
-
41
- .subscript {
42
- vertical-align: sub;
43
- font-size: smaller }
44
-
45
- .superscript {
46
- vertical-align: super;
47
- font-size: smaller }
48
-
49
- a.toc-backref {
50
- text-decoration: none ;
51
- color: black }
52
-
53
- blockquote.epigraph {
54
- margin: 2em 5em ; }
55
-
56
- dl.docutils dd {
57
- margin-bottom: 0.5em }
58
-
59
- object[type="image/svg+xml"], object[type="application/x-shockwave-flash"] {
60
- overflow: hidden;
61
- }
62
-
63
- /* Uncomment (and remove this text!) to get bold-faced definition list terms
64
- dl.docutils dt {
65
- font-weight: bold }
66
- */
67
-
68
- div.abstract {
69
- margin: 2em 5em }
70
-
71
- div.abstract p.topic-title {
72
- font-weight: bold ;
73
- text-align: center }
74
-
75
- div.admonition, div.attention, div.caution, div.danger, div.error,
76
- div.hint, div.important, div.note, div.tip, div.warning {
77
- margin: 2em ;
78
- border: medium outset ;
79
- padding: 1em }
80
-
81
- div.admonition p.admonition-title, div.hint p.admonition-title,
82
- div.important p.admonition-title, div.note p.admonition-title,
83
- div.tip p.admonition-title {
84
- font-weight: bold ;
85
- font-family: sans-serif }
86
-
87
- div.attention p.admonition-title, div.caution p.admonition-title,
88
- div.danger p.admonition-title, div.error p.admonition-title,
89
- div.warning p.admonition-title, .code .error {
90
- color: red ;
91
- font-weight: bold ;
92
- font-family: sans-serif }
93
-
94
- /* Uncomment (and remove this text!) to get reduced vertical space in
95
- compound paragraphs.
96
- div.compound .compound-first, div.compound .compound-middle {
97
- margin-bottom: 0.5em }
98
-
99
- div.compound .compound-last, div.compound .compound-middle {
100
- margin-top: 0.5em }
101
- */
102
-
103
- div.dedication {
104
- margin: 2em 5em ;
105
- text-align: center ;
106
- font-style: italic }
107
-
108
- div.dedication p.topic-title {
109
- font-weight: bold ;
110
- font-style: normal }
111
-
112
- div.figure {
113
- margin-left: 2em ;
114
- margin-right: 2em }
115
-
116
- div.footer, div.header {
117
- clear: both;
118
- font-size: smaller }
119
-
120
- div.line-block {
121
- display: block ;
122
- margin-top: 1em ;
123
- margin-bottom: 1em }
124
-
125
- div.line-block div.line-block {
126
- margin-top: 0 ;
127
- margin-bottom: 0 ;
128
- margin-left: 1.5em }
129
-
130
- div.sidebar {
131
- margin: 0 0 0.5em 1em ;
132
- border: medium outset ;
133
- padding: 1em ;
134
- background-color: #ffffee ;
135
- width: 40% ;
136
- float: right ;
137
- clear: right }
138
-
139
- div.sidebar p.rubric {
140
- font-family: sans-serif ;
141
- font-size: medium }
142
-
143
- div.system-messages {
144
- margin: 5em }
145
-
146
- div.system-messages h1 {
147
- color: red }
148
-
149
- div.system-message {
150
- border: medium outset ;
151
- padding: 1em }
152
-
153
- div.system-message p.system-message-title {
154
- color: red ;
155
- font-weight: bold }
156
-
157
- div.topic {
158
- margin: 2em }
159
-
160
- h1.section-subtitle, h2.section-subtitle, h3.section-subtitle,
161
- h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
162
- margin-top: 0.4em }
163
-
164
- h1.title {
165
- text-align: center }
166
-
167
- h2.subtitle {
168
- text-align: center }
169
-
170
- hr.docutils {
171
- width: 75% }
172
-
173
- img.align-left, .figure.align-left, object.align-left, table.align-left {
174
- clear: left ;
175
- float: left ;
176
- margin-right: 1em }
177
-
178
- img.align-right, .figure.align-right, object.align-right, table.align-right {
179
- clear: right ;
180
- float: right ;
181
- margin-left: 1em }
18
+ /* The defaults for docutils */
19
+ @import url(html4css1.css);
182
20
 
183
- img.align-center, .figure.align-center, object.align-center {
184
- display: block;
185
- margin-left: auto;
186
- margin-right: auto;
21
+ body {
22
+ background-color:#200030;
23
+ font-family: Verdana,Helvetica,Univers;
24
+ color:#f0f0f0;
25
+ color:#f0f0f0;
187
26
  }
188
27
 
189
- table.align-center {
190
- margin-left: auto;
191
- margin-right: auto;
28
+ h1 {color:cyan;font-size:1.5em;}
29
+ h1.title {color:#a0a0f0;font-size:2em;}
30
+ h2 {color:#ffffa0;}
31
+
32
+ p, ul.simple, ol.simple, dt {margin-left:2em;}
33
+ p.first {font-weight:bold;}
34
+ dd {margin-left:4em;}
35
+ td {color:#f0f080;}
36
+
37
+ /* correct left margin of nested block tags*/
38
+ dd p, li p {margin-left:0;}
39
+ dd * ul {margin-left:0 ! important; }
40
+ dd ul {margin-left:0 ! important; }
41
+ dd dl dt, dd dl dd {margin-left:0 ! important;}
42
+ dt {font-weight:bold;}
43
+ dt, dd {color:#f0f0f0}
44
+
45
+ tt.docutils {color:#000080;
46
+ background-color:#a080a0;
47
+ padding-left:3px;
48
+ padding-right:3px;
49
+ white-space:nowrap;
192
50
  }
193
51
 
194
- .align-left {
195
- text-align: left }
52
+ a.external {color:#ff90ff;}
196
53
 
197
- .align-center {
198
- clear: both ;
199
- text-align: center }
200
-
201
- .align-right {
202
- text-align: right }
203
-
204
- /* reset inner alignment in figures */
205
- div.align-right {
206
- text-align: inherit }
207
-
208
- /* div.align-center * { */
209
- /* text-align: left } */
210
-
211
- .align-top {
212
- vertical-align: top }
213
-
214
- .align-middle {
215
- vertical-align: middle }
216
-
217
- .align-bottom {
218
- vertical-align: bottom }
219
-
220
- ol.simple, ul.simple {
221
- margin-bottom: 1em }
222
-
223
- ol.arabic {
224
- list-style: decimal }
225
-
226
- ol.loweralpha {
227
- list-style: lower-alpha }
228
-
229
- ol.upperalpha {
230
- list-style: upper-alpha }
231
-
232
- ol.lowerroman {
233
- list-style: lower-roman }
234
-
235
- ol.upperroman {
236
- list-style: upper-roman }
237
-
238
- p.attribution {
239
- text-align: right ;
240
- margin-left: 50% }
241
-
242
- p.caption {
243
- font-style: italic }
244
-
245
- p.credits {
246
- font-style: italic ;
247
- font-size: smaller }
248
-
249
- p.label {
250
- white-space: nowrap }
251
-
252
- p.rubric {
253
- font-weight: bold ;
254
- font-size: larger ;
255
- color: maroon ;
256
- text-align: center }
257
-
258
- p.sidebar-title {
259
- font-family: sans-serif ;
260
- font-weight: bold ;
261
- font-size: larger }
262
-
263
- p.sidebar-subtitle {
264
- font-family: sans-serif ;
265
- font-weight: bold }
266
-
267
- p.topic-title {
268
- font-weight: bold }
269
-
270
- pre.address {
271
- margin-bottom: 0 ;
272
- margin-top: 0 ;
273
- font: inherit }
274
-
275
- pre.literal-block, pre.doctest-block, pre.math, pre.code {
276
- margin-left: 2em ;
277
- margin-right: 2em }
278
-
279
- pre.code .ln { color: gray; } /* line numbers */
280
- pre.code, code { background-color: #eeeeee }
281
- pre.code .comment, code .comment { color: #5C6576 }
282
- pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
283
- pre.code .literal.string, code .literal.string { color: #0C5404 }
284
- pre.code .name.builtin, code .name.builtin { color: #352B84 }
285
- pre.code .deleted, code .deleted { background-color: #DEB0A1}
286
- pre.code .inserted, code .inserted { background-color: #A3D289}
287
-
288
- span.classifier {
289
- font-family: sans-serif ;
290
- font-style: oblique }
291
-
292
- span.classifier-delimiter {
293
- font-family: sans-serif ;
294
- font-weight: bold }
295
-
296
- span.interpreted {
297
- font-family: sans-serif }
298
-
299
- span.option {
300
- white-space: nowrap }
301
-
302
- span.pre {
303
- white-space: pre }
304
-
305
- span.problematic, pre.problematic {
306
- color: red }
307
-
308
- span.section-subtitle {
309
- /* font-size relative to parent (h1..h6 element) */
310
- font-size: 80% }
311
-
312
- table.citation {
313
- border-left: solid 1px gray;
314
- margin-left: 1px }
315
-
316
- table.docinfo {
317
- margin: 2em 4em }
318
-
319
- table.docutils {
320
- margin-top: 0.5em ;
321
- margin-bottom: 0.5em }
322
-
323
- table.footnote {
324
- border-left: solid 1px black;
325
- margin-left: 1px }
326
-
327
- table.docutils td, table.docutils th,
328
- table.docinfo td, table.docinfo th {
329
- padding-left: 0.5em ;
330
- padding-right: 0.5em ;
331
- vertical-align: top }
332
-
333
- table.docutils th.field-name, table.docinfo th.docinfo-name {
334
- font-weight: bold ;
335
- text-align: left ;
336
- white-space: nowrap ;
337
- padding-left: 0 }
338
-
339
- /* "booktabs" style (no vertical lines) */
340
- table.docutils.booktabs {
341
- border: 0px;
342
- border-top: 2px solid;
343
- border-bottom: 2px solid;
344
- border-collapse: collapse;
345
- }
346
- table.docutils.booktabs * {
347
- border: 0px;
54
+ blockquote {background-color:#ffc090;
55
+ padding:0.5em;
56
+ border-radius:0.5em;
348
57
  }
349
- table.docutils.booktabs th {
350
- border-bottom: thin solid;
351
- text-align: left;
352
- }
353
-
354
- h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
355
- h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
356
- font-size: 100% }
357
58
 
358
- ul.auto-toc {
359
- list-style-type: none }
360
59
 
361
60
  </style>
362
61
  </head>
363
62
  <body>
364
63
  <div class="document" id="timequiz">
365
64
  <h1 class="title">TIMEQUIZ</h1>
366
- <h2 class="subtitle" id="play-a-history-quiz-game">play a history quiz game</h2>
65
+ <h2 class="subtitle" id="play-a-history-quiz-game">Play a history-quiz game</h2>
367
66
 
368
67
  <div class="section" id="synopsis">
369
68
  <h1>SYNOPSIS</h1>
370
69
  <p>timequiz [options]</p>
371
- <p>Called without any option, the game is started with the events that are included
372
- in the installed program package. There are not many.</p>
70
+ <p>Run timequiz without any options to begin a quiz using the default set of
71
+ historical events—the provided collection is modest in size.</p>
373
72
  </div>
374
73
  <div class="section" id="description">
375
74
  <h1>DESCRIPTION</h1>
376
- <p>The general idea is to put historical events in the right order. In the
377
- beginning, a limited number of events (3 at the time of this writing) is
378
- presented and you have to indicate the right order of these events. All the
379
- following rounds will confront you with just 1 additional event and you must
380
- find for the new event the right spot in the previously ordered list, i.e.
381
- after one of the listed events or earlier than any of the known events. After
382
- each round, the first one inclusive, your performance is evaluated. You can
383
- then choose to continue with a new event or, if you like, read a short
384
- description of any of the events, already in the list.</p>
385
- <p>The game continues in this way until you push the 'q' button to quit or until
386
- a maximal number of events (currently 15) have been handled.</p>
387
- <div class="section" id="you-do-not-need-to-know-it-all">
388
- <h2>You do not need to know it all</h2>
389
- <p>Beware that to win a round, it is oftentimes not necessary to really know the
390
- date of an event. Pure logic and reasonable guesses may be sufficient to find
391
- the right spot within a historical context or to exclude events as too far in
392
- the past or future of the currently handled event. Reading the descriptive
393
- comments to an event may later help you get different events into context.</p>
75
+ <p>The game presents a limited number of historical events (currently three) in
76
+ random order. Your task is to correctly arrange them chronologically. In each
77
+ subsequent round, a single new event appears—you must place it in the correct
78
+ position relative to the previously ordered events (either before one of the
79
+ listed events or later).</p>
80
+ <p>After every round—including the first—your performance is assessed. You may
81
+ then choose to proceed with another event or review the brief description of
82
+ any event already in the sequence.</p>
83
+ <p>The game continues until you press q to quit or until the maximum of 15 events
84
+ have been played.</p>
85
+ <div class="section" id="you-dont-need-to-know-every-date">
86
+ <h2>YOU DON’T NEED TO KNOW EVERY DATE</h2>
87
+ <p>Winning often does not require exact historical knowledge. Instead, logical
88
+ reasoning or educated guesses—eliminating events that are clearly too early or
89
+ too late—usually suffices. Reading the event descriptions may also help you
90
+ situate other events in historical context later on.</p>
394
91
  </div>
395
92
  </div>
396
- <div class="section" id="options-not-needed-to-play-the-game">
397
- <h1>OPTIONS (not needed to play the game)</h1>
93
+ <div class="section" id="options-not-needed-to-play">
94
+ <h1>OPTIONS (not needed to play)</h1>
398
95
  <p><strong>-a, --add</strong> Add a new event to the game</p>
399
- <p><strong>-e, --event</strong> [EVENT] Name of the new event</p>
400
- <p><strong>-y, --year</strong> [YEAR] Year of the new event</p>
401
- <p><strong>-b, --background</strong> [INFO] Background information for the new event</p>
402
- <p><strong>-f, --file</strong> [FILE] The file, where events are read from or written to</p>
403
- <p><strong>-d, --debug</strong> Be verbose</p>
404
- <p><strong>-v, --version</strong> Show program version</p>
405
- <p><strong>-h, --help</strong> Show a help text</p>
96
+ <p><strong>-e, --event</strong> [EVENT] Provide a name of the new event</p>
97
+ <p><strong>-y, --year</strong> [YEAR] Specify the year of the new event</p>
98
+ <p><strong>-b, --background</strong> [INFO] Supply background information for the new event</p>
99
+ <p><strong>-f, --file</strong> [FILE] Specify the file for reading/writing events</p>
100
+ <p><strong>-d, --debug</strong> Enable verbose debug output</p>
101
+ <p><strong>-v, --version</strong> Display program version</p>
102
+ <p><strong>-h, --help</strong> Show help message</p>
406
103
  <div class="section" id="the-options-in-detail">
407
104
  <h2>The Options in detail:</h2>
408
105
  <dl class="docutils">
409
106
  <dt>-a --add</dt>
410
- <dd>This option imposes that -e, -y, and -f be given, too. In consequence, it
411
- will be considered superfluous and removed in future versions of the program.</dd>
412
- <dt>-e --event</dt>
413
- <dd>Name the event to add to the events-file. For this option to take effect, -a,
414
- -y and -f are needed, too. Beware to enclose the value with quotes, like in, e.g.
415
- --event &quot;Some guy was born and something broke&quot;</dd>
416
- <dt>-y --year</dt>
417
- <dd>Is followed by a year, like -y 1244</dd>
418
- <dt>-b --background</dt>
419
- <dd>Should be used to provide background-information to an event. While this
420
- option is ... optional, the information will help solving quizzes and may be
421
- educative to the player... do not abuse, though.
422
- Example: -b &quot;The phenomenon was bearing no significance whatsoever&quot;</dd>
423
- <dt>-f --file</dt>
424
- <dd>Name the “events-file” which will be used for either creating the quizzes
425
- randomly or adding events to an existing list of events. The file must be
426
- readable to serve for a quiz and writable to accept new events. If it does
427
- not exist, it is created and some exemplary events are included on top.
428
- Example: --file ~/my_history_quiz</dd>
107
+ <dd>Requires -e, -y, and -f. This redundancy may be removed in future versions.</dd>
108
+ <dt>-e --event [EVENT]</dt>
109
+ <dd>The name of the event to add. Requires --add, --year, and --file. Use quotes
110
+ for multi-word events, e.g., --event &quot;Some Guy Was Born and Something Broke&quot;.</dd>
111
+ <dt>-y --year [YEAR]</dt>
112
+ <dd>The year of the event, e.g., -y 1244.</dd>
113
+ <dt>-b --background [INFO]</dt>
114
+ <dd>Optional context to help with the quiz—use sparingly. For example: -b &quot;The
115
+ phenomenon was of no significance whatsoever&quot;.</dd>
116
+ <dt>-f --file [FILE]</dt>
117
+ <dd>Path to the events file used for quizzes or for adding new events. If the file
118
+ does not exist, it is created with some sample events. It must be readable for
119
+ quizzes and writable for additions.</dd>
429
120
  <dt>-d --debug</dt>
430
- <dd>Be verbose. This switches on the output of debug-messages that have been left
431
- in the program code. Probably useless.</dd>
121
+ <dd>Enables verbose debugging output. Mainly useful for developers.</dd>
432
122
  <dt>-v --version</dt>
433
- <dd>Shows the program version</dd>
123
+ <dd>Display the current version of the program.</dd>
434
124
  <dt>-h --help</dt>
435
- <dd>Shows the option-summary.</dd>
125
+ <dd>Show this list of options and usage instructions.</dd>
436
126
  </dl>
437
127
  </div>
438
128
  </div>
439
129
  <div class="section" id="game-example">
440
130
  <h1>GAME EXAMPLE</h1>
441
- <p>Calling timequiz without arguments on the command-line, you are confronted with
442
- three arbitrary, historical events, like in the following screen:</p>
131
+ <p>Launching timequiz with no options displays three random historical events,
132
+ prompting:</p>
443
133
  <table border="1" class="docutils">
444
134
  <colgroup>
445
135
  <col width="100%" />
@@ -456,12 +146,10 @@ three arbitrary, historical events, like in the following screen:</p>
456
146
  </tr>
457
147
  </tbody>
458
148
  </table>
459
- <p>You type in the three numbers in the order that you consider chronologically
460
- correct, like &quot;321&quot; (you do not have to push return after each number). The
461
- game will respond by showing you the correct order of events with the
462
- corresponding years and an evaluation of your input. You are also prompted to
463
- decide if you want to play with a new arbitrary event or first be shown some
464
- information about the listed events:</p>
149
+ <p>Enter your sequence (e.g., 321) without needing to press Enter after each
150
+ number. The game then shows the correct order with years and evaluates your
151
+ input. You’ll be asked if you wish to continue with a new event or view more
152
+ info on the listed events.</p>
465
153
  <table border="1" class="docutils">
466
154
  <colgroup>
467
155
  <col width="100%" />
@@ -471,7 +159,11 @@ information about the listed events:</p>
471
159
  </tr>
472
160
  </tbody>
473
161
  </table>
474
- <p>If you push 'a', a new event is shown:</p>
162
+ <p>To continue:</p>
163
+ <p>Press a number to view an event’s details,</p>
164
+ <p>a to add a new random event, or</p>
165
+ <p>q to quit.</p>
166
+ <p>If you choose a, here’s how the next prompt may appear:</p>
475
167
  <table border="1" class="docutils">
476
168
  <colgroup>
477
169
  <col width="100%" />
@@ -483,33 +175,25 @@ information about the listed events:</p>
483
175
  </tr>
484
176
  </tbody>
485
177
  </table>
486
- <p>You can now decide, which of the three previous events precedes the death of
487
- the Italian painter and either put in the (current) number of that previous
488
- event or the number 0 (zero) if you consider that Lorenzo Lotto died well
489
- before any of the other events (which would, of course, be false in the
490
- example). You have to push the return-button after your input, as it can
491
- contain an arbitrary number of ciphers, later in the game.</p>
178
+ <p>You must then enter the corresponding number or 0 if you believe that the event
179
+ occurred before all listed events (which, in this case, would be historically
180
+ inaccurate). Press Enter to submit your answer.</p>
492
181
  </div>
493
- <div class="section" id="other-information">
494
- <h1>Other Information</h1>
182
+ <div class="section" id="additional-information">
183
+ <h1>ADDITIONAL INFORMATION</h1>
495
184
  <dl class="docutils">
496
- <dt>Development and source code</dt>
497
- <dd>timequiz has been written in Ruby. As Ruby is an interpreted programming
498
- language, the executable file and all those that it may refer to at one point
499
- in time, are themselves the source-files of the current program-version. You
500
- can open them in any text-editor to scrutinize the source-code. If you have
501
- received the program as a Ruby-gem, you can also decompress a copy of the
502
- gem-file with <em>tar -x</em>, then <em>tar -xzf</em>.</dd>
503
- <dt>Bugs</dt>
504
- <dd>At one time during the game, the list of already known events is incorrectly
505
- wrapped and continues to be.</dd>
185
+ <dt>Development &amp; Source Code</dt>
186
+ <dd>timequiz is written in Ruby. As it's interpreted, the executable is
187
+ essentially the source code—you can open it in any text editor. If installed
188
+ from a Ruby gem, you can extract it using <tt class="docutils literal">tar <span class="pre">-x</span></tt>, then <tt class="docutils literal">tar <span class="pre">-xzf</span></tt>.</dd>
189
+ <dt>Known Bug</dt>
190
+ <dd>At times, the list of events may wrap incorrectly in the display.</dd>
506
191
  <dt>License</dt>
507
- <dd>timequiz is distributed under the conditions of the GNU General Public
508
- License, version 3.</dd>
192
+ <dd>Distributed under the GNU General Public License (GPL) version 3.</dd>
509
193
  <dt>Author</dt>
510
- <dd>timequiz has been developed by Michael Uplawski
511
- &lt;<a class="reference external" href="mailto:michael.uplawski&#64;uplawski.eu">michael.uplawski&#64;uplawski.eu</a>&gt;</dd>
194
+ <dd>Developed by Michael Uplawski &lt;<a class="reference external" href="mailto:michael.uplawski&#64;uplawski.eu">michael.uplawski&#64;uplawski.eu</a>&gt;</dd>
512
195
  </dl>
196
+ <p>Ω</p>
513
197
  </div>
514
198
  </div>
515
199
  </body>
Binary file
data/doc/pdf/timequiz.pdf CHANGED
Binary file
data/doc/rst/timequiz.rst CHANGED
@@ -2,100 +2,94 @@
2
2
  TIMEQUIZ
3
3
  =======================
4
4
  ----------------------------------------
5
- play a history quiz game
5
+ Play a history-quiz game
6
6
  ----------------------------------------
7
7
 
8
8
  SYNOPSIS
9
9
  =======================
10
10
  timequiz [options]
11
11
 
12
- Called without any option, the game is started with the events that are included
13
- in the installed program package. There are not many.
12
+ Run timequiz without any options to begin a quiz using the default set of
13
+ historical events—the provided collection is modest in size.
14
14
 
15
15
  DESCRIPTION
16
16
  =======================
17
- The general idea is to put historical events in the right order. In the
18
- beginning, a limited number of events (3 at the time of this writing) is
19
- presented and you have to indicate the right order of these events. All the
20
- following rounds will confront you with just 1 additional event and you must
21
- find for the new event the right spot in the previously ordered list, i.e.
22
- after one of the listed events or earlier than any of the known events. After
23
- each round, the first one inclusive, your performance is evaluated. You can
24
- then choose to continue with a new event or, if you like, read a short
25
- description of any of the events, already in the list.
26
-
27
- The game continues in this way until you push the 'q' button to quit or until
28
- a maximal number of events (currently 15) have been handled.
29
-
30
- You do not need to know it all
31
- --------------------------------
32
- Beware that to win a round, it is oftentimes not necessary to really know the
33
- date of an event. Pure logic and reasonable guesses may be sufficient to find
34
- the right spot within a historical context or to exclude events as too far in
35
- the past or future of the currently handled event. Reading the descriptive
36
- comments to an event may later help you get different events into context.
37
-
38
- OPTIONS (not needed to play the game)
17
+
18
+ The game presents a limited number of historical events (currently three) in
19
+ random order. Your task is to correctly arrange them chronologically. In each
20
+ subsequent round, a single new event appears—you must place it in the correct
21
+ position relative to the previously ordered events (either before one of the
22
+ listed events or later).
23
+
24
+ After every round—including the first—your performance is assessed. You may
25
+ then choose to proceed with another event or review the brief description of
26
+ any event already in the sequence.
27
+
28
+ The game continues until you press q to quit or until the maximum of 15 events
29
+ have been played.
30
+
31
+
32
+ YOU DON’T NEED TO KNOW EVERY DATE
33
+ ---------------------------------
34
+
35
+ Winning often does not require exact historical knowledge. Instead, logical
36
+ reasoning or educated guesses—eliminating events that are clearly too early or
37
+ too late—usually suffices. Reading the event descriptions may also help you
38
+ situate other events in historical context later on.
39
+
40
+ OPTIONS (not needed to play)
39
41
  =====================================
40
42
 
41
43
  **-a, --add** Add a new event to the game
42
44
 
43
- **-e, --event** [EVENT] Name of the new event
45
+ **-e, --event** [EVENT] Provide a name of the new event
44
46
 
45
- **-y, --year** [YEAR] Year of the new event
47
+ **-y, --year** [YEAR] Specify the year of the new event
46
48
 
47
- **-b, --background** [INFO] Background information for the new event
49
+ **-b, --background** [INFO] Supply background information for the new event
48
50
 
49
- **-f, --file** [FILE] The file, where events are read from or written to
51
+ **-f, --file** [FILE] Specify the file for reading/writing events
50
52
 
51
- **-d, --debug** Be verbose
53
+ **-d, --debug** Enable verbose debug output
52
54
 
53
- **-v, --version** Show program version
55
+ **-v, --version** Display program version
54
56
 
55
- **-h, --help** Show a help text
57
+ **-h, --help** Show help message
56
58
 
57
59
  The Options in detail:
58
60
  ----------------------
59
61
  -a --add
60
- This option imposes that -e, -y, and -f be given, too. In consequence, it
61
- will be considered superfluous and removed in future versions of the program.
62
-
63
- -e --event
64
- Name the event to add to the events-file. For this option to take effect, -a,
65
- -y and -f are needed, too. Beware to enclose the value with quotes, like in, e.g.
66
- --event "Some guy was born and something broke"
67
-
68
- -y --year
69
- Is followed by a year, like -y 1244
70
-
71
- -b --background
72
- Should be used to provide background-information to an event. While this
73
- option is ... optional, the information will help solving quizzes and may be
74
- educative to the player... do not abuse, though.
75
- Example: -b "The phenomenon was bearing no significance whatsoever"
76
-
77
- -f --file
78
- Name the “events-file” which will be used for either creating the quizzes
79
- randomly or adding events to an existing list of events. The file must be
80
- readable to serve for a quiz and writable to accept new events. If it does
81
- not exist, it is created and some exemplary events are included on top.
82
- Example: --file ~/my_history_quiz
62
+ Requires -e, -y, and -f. This redundancy may be removed in future versions.
63
+
64
+ -e --event [EVENT]
65
+ The name of the event to add. Requires --add, --year, and --file. Use quotes
66
+ for multi-word events, e.g., --event "Some Guy Was Born and Something Broke".
67
+
68
+ -y --year [YEAR]
69
+ The year of the event, e.g., -y 1244.
70
+
71
+ -b --background [INFO]
72
+ Optional context to help with the quiz—use sparingly. For example: -b "The
73
+ phenomenon was of no significance whatsoever".
74
+
75
+ -f --file [FILE]
76
+ Path to the events file used for quizzes or for adding new events. If the file
77
+ does not exist, it is created with some sample events. It must be readable for
78
+ quizzes and writable for additions.
83
79
 
84
80
  -d --debug
85
- Be verbose. This switches on the output of debug-messages that have been left
86
- in the program code. Probably useless.
81
+ Enables verbose debugging output. Mainly useful for developers.
87
82
 
88
83
  -v --version
89
- Shows the program version
84
+ Display the current version of the program.
90
85
 
91
86
  -h --help
92
- Shows the option-summary.
93
-
87
+ Show this list of options and usage instructions.
94
88
 
95
89
  GAME EXAMPLE
96
90
  =======================
97
- Calling timequiz without arguments on the command-line, you are confronted with
98
- three arbitrary, historical events, like in the following screen:
91
+ Launching timequiz with no options displays three random historical events,
92
+ prompting:
99
93
 
100
94
  +---------------------------------------------------------------------------+
101
95
  |Put the following events into the right chronological order (e.g.: 2 3 1). |
@@ -107,18 +101,24 @@ three arbitrary, historical events, like in the following screen:
107
101
  |Available: 1, 2, 3) |
108
102
  +---------------------------------------------------------------------------+
109
103
 
110
- You type in the three numbers in the order that you consider chronologically
111
- correct, like "321" (you do not have to push return after each number). The
112
- game will respond by showing you the correct order of events with the
113
- corresponding years and an evaluation of your input. You are also prompted to
114
- decide if you want to play with a new arbitrary event or first be shown some
115
- information about the listed events:
104
+ Enter your sequence (e.g., 321) without needing to press Enter after each
105
+ number. The game then shows the correct order with years and evaluates your
106
+ input. You’ll be asked if you wish to continue with a new event or view more
107
+ info on the listed events.
116
108
 
117
109
  +------------------------------------------------------------------------------------------------------+
118
110
  |Enter number for more information about an event, 'a' to play with one new, random event, 'q' to quit.|
119
111
  +------------------------------------------------------------------------------------------------------+
120
112
 
121
- If you push 'a', a new event is shown:
113
+ To continue:
114
+
115
+ Press a number to view an event’s details,
116
+
117
+ a to add a new random event, or
118
+
119
+ q to quit.
120
+
121
+ If you choose a, here’s how the next prompt may appear:
122
122
 
123
123
  +----------------------------------------------------------------------------------------------------------+
124
124
  |Indicate the event from the previous list, which precedes the following, or '0' (zero) to put it in front:|
@@ -126,32 +126,24 @@ If you push 'a', a new event is shown:
126
126
  |The Italian painter Lorenzo Lotto dies. |
127
127
  +----------------------------------------------------------------------------------------------------------+
128
128
 
129
- You can now decide, which of the three previous events precedes the death of
130
- the Italian painter and either put in the (current) number of that previous
131
- event or the number 0 (zero) if you consider that Lorenzo Lotto died well
132
- before any of the other events (which would, of course, be false in the
133
- example). You have to push the return-button after your input, as it can
134
- contain an arbitrary number of ciphers, later in the game.
135
-
136
- Other Information
137
- ====================
138
- Development and source code
139
- timequiz has been written in Ruby. As Ruby is an interpreted programming
140
- language, the executable file and all those that it may refer to at one point
141
- in time, are themselves the source-files of the current program-version. You
142
- can open them in any text-editor to scrutinize the source-code. If you have
143
- received the program as a Ruby-gem, you can also decompress a copy of the
144
- gem-file with *tar -x*, then *tar -xzf*.
145
-
146
- Bugs
147
- At one time during the game, the list of already known events is incorrectly
148
- wrapped and continues to be.
129
+ You must then enter the corresponding number or 0 if you believe that the event
130
+ occurred before all listed events (which, in this case, would be historically
131
+ inaccurate). Press Enter to submit your answer.
132
+
133
+ ADDITIONAL INFORMATION
134
+ ======================
135
+ Development & Source Code
136
+ timequiz is written in Ruby. As it's interpreted, the executable is
137
+ essentially the source code—you can open it in any text editor. If installed
138
+ from a Ruby gem, you can extract it using ``tar -x``, then ``tar -xzf``.
139
+
140
+ Known Bug
141
+ At times, the list of events may wrap incorrectly in the display.
149
142
 
150
143
  License
151
- timequiz is distributed under the conditions of the GNU General Public
152
- License, version 3.
144
+ Distributed under the GNU General Public License (GPL) version 3.
153
145
 
154
146
  Author
155
- timequiz has been developed by Michael Uplawski
156
- <michael.uplawski@uplawski.eu>
147
+ Developed by Michael Uplawski <michael.uplawski@uplawski.eu>
157
148
 
149
+ Ω
data/lib/version.rb CHANGED
@@ -15,7 +15,7 @@
15
15
  ***************************************************************************/
16
16
  =end
17
17
 
18
- VERSION = '0.2.1'
18
+ VERSION = '0.2.2'
19
19
  SUMMARY = 'New documentation- and homepage URIs.'
20
20
  AUTHOR = 'Michael Uplawski'
21
21
  AUTHOR_MAIL = '<michael.uplawski@uplawski.eu>'
data/timequiz.gemspec CHANGED
@@ -16,7 +16,7 @@ Gem::Specification.new do |s|
16
16
  s.license = 'Nonstandard'
17
17
  s.required_ruby_version = '>= 2.7'
18
18
  s.metadata = {
19
- "homepage_uri" => 'https://www.uplawski.eu/software/timequiz/timequiz.html',
19
+ "homepage_uri" => 'https://www.uplawski.eu/software/timequiz/',
20
20
  "documentation_uri" => 'https://www.uplawski.eu/software/timequiz/man_timequiz.html'
21
21
  }
22
22
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: timequiz
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Uplawski
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2025-08-26 00:00:00.000000000 Z
10
+ date: 2025-08-27 00:00:00.000000000 Z
11
11
  dependencies: []
12
12
  description: Play a history game
13
13
  email: michael.uplawski@uplawski.eu
@@ -41,7 +41,7 @@ files:
41
41
  licenses:
42
42
  - Nonstandard
43
43
  metadata:
44
- homepage_uri: https://www.uplawski.eu/software/timequiz/timequiz.html
44
+ homepage_uri: https://www.uplawski.eu/software/timequiz/
45
45
  documentation_uri: https://www.uplawski.eu/software/timequiz/man_timequiz.html
46
46
  rdoc_options: []
47
47
  require_paths: