-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathtrr.texi
445 lines (349 loc) · 14.9 KB
/
trr.texi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
\input texinfo
@c -*-texinfo-*-
@c %**start of header
@documentencoding UTF-8
@setfilename trr.info
@settitle trr マニュアル
@setchapternewpage odd
@c %**end of header
@set version 1.0
@titlepage
@title trr マニュアル for version @value{version}
@author 山本 泰宇
@page
@vskip 0pt plus 1filll
Copyright @copyright{} 1996 Yamamoto Hirotaka
@end titlepage
@ifinfo
@node Top
@top Top Menu
@comment node-name, next, previous, up
これは GNU Emacs 上でタイピング能力を向上させるためのパッケージです。
trr の著作権に関しては GNU の GENERAL PUBLIC LICENSE
の version 2 もしくはそれ以降に準じるものとします。
@end ifinfo
@menu
* History:: trr の歴史
* Installation::
* How to play:: さあ始めよう
* Further more:: 詳しい説明を読んでみよう
* How to customize:: trr を料理しちゃおう!
* Index::
@end menu
@node History
@comment node-name, next, previous, up
@chapter trr の歴史
@cindex History
@section The birth of trr
@cindex birth
trrが人類の歴史に初めて姿を表したのは1986年のことである。それは沖
電気工業で当時遊んでいた守山貢氏が、自らのタイプ速度を上げるための練
習用ツールとして、Dec2060用にPascalで作成したものであった。守山氏は
その翌年C版のtrrを作成し、それが次第に普及していくことになる。ちな
みにtrrという名称(愛称トゥルル)は守山氏が取り敢えず"trainer"から
"aine"を省略して名付けたのであるが、本当の名前を考える前にそれが各地
に普及してしまったそうである。
@section Original E-Lisp edition
trrの歴史に新たな展開が訪れるのはtrrがICOT(新世代コンピュータ技
術開発機構)に移植されてからである。ICOTのリーダーの一人でありしか
もピアノの名手でもある富士通の近山隆氏が初めてtrrをやってみたところ一
発で500点以上をマークし(600点を越えていたという証言者もいる)、そのよ
うな高得点を想定していなかったtrrのプログラムのバグを引き出したという
逸話はあまりにも有名である。その後trrはICOTの中でNSIS(日本電
気技術情報システム開発:現在はNEC情報システムズ)の稲村雄氏により
Emacs-Lispに翻訳され、稲村公開版 trr として定着していった
(<INAMURA.92May21180510@@psiux536.icot.or.jp>)。その後ICOTの萩原
氏(現ソニー)などの手によりハイスコアを競い合う形式が確立し、Emacs版
trrへの人気は絶大なものとなり、第5世代コンピュータプロジェクトの成果
の一つに数えられる程となった。
@section Great Evolution
trrにさらに大きな転機が訪れたのは、沖電気工業で当時やはり遊んでいた
加藤研児氏がICOTに出入りするようになってからである。ここで、この
人物について簡単に紹介しよう。彼は学生時代にはタイプが全く打てず、論
文を締切りに間に合わせるために担当教授である今井浩助教授(現東大)に自
分の論文をタイプさせた程の経歴の持ち主である。その時のコンプレックス
からか、彼は沖電気に入社すると同じ職場の守山氏の作成したC版trrに熱中
し、明けても暮れてもtrrばかりやる毎日であったと言う。
彼はICOTで進化したtrrに触れ、改めて感銘し即座に改宗すると共に、
同僚の女性(りみりん)の発言をモデルにして評価メッセージの表示機能を追
加しはじめた。より馬鹿馬鹿しいメッセージを出すために各種実行情報の集
計機能を追加すると共に、テキスト選択や立ち上げの高速化等の各種の修正
及び機能追加を行い、1992年にNemacs版と呼ばれるものを発表した。ちなみ
に彼はtrrをあまりにやり過ぎて指を痛め、現在はすっかりタイプスピードが
落ちていると言う。くれぐれもやり過ぎには注意されたい。なお彼は現在、
数理技研(株)に身を隠している(kato@@suri.co.jp)との情報である。
@section New Generation
これは長らく親しまれてきたが、残念ながらNemacs上でしか動作しなかっ
たため、Emacs 19 が世に広まるにつれ徐々に忘れられ始めてしまった。そ
こで東大情報科学科の山本泰宇(著者)がNemacs版のコードを全面的に見直す
と共に、英語メッセージ表示などの機能を追加したtrr19を1996年に発表した。
@cindex trr19
@node Installation
@comment node-name, next, previous, up
@chapter Installation
@cindex install
@cindex installation
以下の手順で行ないます。もし問題があれば ymmt@@is.s.u-tokyo.ac.jp
まで連絡お願い致します。
@menu
* unpack the package:: trr を展開する
* additional texts:: 好きな text を trr で使う
* autoload::
@end menu
@node unpack the package
@comment node-name, next, previous, up
@section trr を展開する
@cindex unpack
例えば以下のようにして下さい。
@example
% zcat trr19.tar.gz | tar xvpf -
% cd trr19
@end example
@*
GNU tar を使っているなら
@example
% tar xvzfp trr19.tar.gz
% cd trr19
@end example
@node additional texts
@comment node-name, next, previous, up
@section 好きな text を trr で使う
@cindex add text
@cindex text
@cindex CONTENTS
trr は日本国憲法と合衆国憲法がいっしょに配布されています。
これら以外にも自由に好きな text を使って trr を行なうことが出来ます。
以下のような条件を満たしていることを確認して下さい。
@itemize @bullet
@item
US-ASCII であること。変な control code が入っていたりするのは
駄目です。
@item
適当な長さ以上であること。短過ぎるのは使えません。
@item
DOS や MAC の text file なら改行コードを変換すること。
UNIX では texi file 中の改行は @samp{0x0a} です。
@end itemize
以下では @file{(trrdir)} は Makefile で指定した trrdir の
こととします。
@enumerate
@item
付け加えたい text を @file{(trrdir)}/text にコピーする。
@item
付け加えた text の情報を @file{(trrdir)}/CONTENTS file に
書き加える。
CONTENTS file の書き方は CONTENTS file 内に詳しく書いてあります。
@end enumerate
text file はいつでも好きな時に上のようにして付け加えられます。
@node autoload
@comment node-name, next, previous, up
@section autoload
@cindex autoload
最後に trr を autoload 出来るようにします。
以下のいずれかを選んで下さい。
なお以下では @file{(trrdir)} は Makefile で指定した trrdir の
こととします。
@itemize @bullet
@item
@file{site-start.el} file に
@example
(autoload 'trr "@file{(trrdir)}/trr" nil t)
@end example
@*
を書き加える。
こうしておけばその site のユーザーは何もせずに @kbd{M-x trr} で
trr を実行できます。
@item
各人の @file{.emacs} に
@example
(autoload 'trr "@file{(trrdir)}/trr" nil t)
@end example
@*
を書き加える。
この場合使いたいユーザーに使い方を教えてあげて下さい。
@end itemize
You are done! 以上で @kbd{M-x trr} と type すれば trr が出来るはずです。@*
@node How to play
@comment node-name, next, previous, up
@chapter さあ始めよう
@cindex start
@cindex play
@cindex How to play
trr は以下のような流れで実行できます。
@enumerate
@item
Emacs (MULE) から @kbd{M-x(もしくは ESC-x) trr} @key{RET}
@item
text の一覧が出てくるので打ちたい text の番号を入力する。
@item
ちょっと待つと画面が3段にわかれて text が表示されます。
@item
カーソルの上にある文字をどんどん打っていって下さい。
間違えるとそこでカーソルが止まります。@key{BackSpace} などで
直す必要はありません。
@item
最後まで打つと得点やかかった時間が表示されます。
@item
menu が出ますので続けたければ 2, もう終りにするのなら 1 を
押して下さい。
@end enumerate
@node Further more
@comment node-name, next, previous, up
@chapter もっと trr を知ろう!
trr にはいろいろな機能が備わっています。
@menu
* play level::
* toggling switches::
* special keys:: 特殊なキー操作
@end menu
@node play level
@comment node-name, next, previous, up
@section プレイレベル
@cindex level
trr は player の level に応じた4つの mode を持っています。
これは menu の @samp{設定の変更} で変えることが出来ます。
@table @samp
@item 初心者用 trr
表示される text の量は中級者用と同じですが、
session を繰り返しても同じ text が表示されます。
得点は初心者用の file に記録されます。
@item 中級者用 trr
default ではこの mode になっています。
これで300点が出せるようになればあなたもなかなかの trrer でしょう。
@item 上級者用 trr
ここは初心者が生半可な気持ちで入ってはいけません。
text は full screen で出てきて、しかも減点率が
初心者もしくは中級者用の5倍!!@*
へたをすれば一生悪夢に悩まされてしまいます。
@end table
@node toggling switches
@comment node-name, next, previous, up
@section トグルスイッチ
@cindex toggle
@cindex switch
menu の @samp{設定の変更} の中で いくつかのスイッチを
切替えることが出来ます。
@itemize @bullet
@item
@cindex return
@key{return} key の扱いの変更を行なえます。行末の @key{return} を本当に
@key{return} を押さなければいけないようにするか、もしくは
@key{space} で代用できるようにするかを選べます。
@item
@cindex language
@cindex Japanese
@cindex English
message の表示言語の切替が出来ます。日本語か英語しか現在書いていません。
@item
@cindex ding
@cindex beep
間違えた時に音を鳴らすか鳴らさないかを選べます。
@item
@cindex hyphenate
text 中にある hyphenate された単語を元に戻すかどうかを切替えられます。
@end itemize
それぞれ該当する番号を選ぶことで切り替わります。
@node special keys
@comment node-name, next, previous, up
@section 特殊なキー操作
@cindex key
trr の typing 画面では次のような特殊なキー操作が許されています。
@table @key
@item C-l
@cindex refresh screen
trr を -nw で起動したりすると biff 等で画面が乱れることがあります。
そういった時に @key{C-l} を押せば画面を redraw します。
@item C-c
@cindex quit
session を始めると trr は typing のキー入力以外禁止します。
途中で止めたくなった時は @key{C-c} を押すと即座に終了します。
@end table
@*
@node How to customize
@comment node-name, next, previous, up
@chapter 使いやすくしよう
trr は @file{.emacs} に書くことで User にさらに細かい設定の
手段を提供しています。
@menu
* default switch::
* default directory::
* color:: 色を変更したい
* hooks:: フック関数
@end menu
@node default switch
@comment node-name, next, previous, up
@section toggle switch の default 値
menu の @samp{設定の変更} で毎回設定を変更するのが煩わしい場合
以下のようにすれば default 値を変更できます。
@table @samp
@item return
@code{(setq trr-return-is-space t)} とすれば default で
@key{return} キーを @key{space} キーで代用できます。
@code{(setq trr-return-is-space nil)} なら出来ません。
@item language
@code{(setq trr-japanese nil)} とすると message が default で
英語の表示になります。t なら日本語です。
@item ding
@code{(setq trr-ding-when-miss nil)} とすれば miss したときに
音がなりません。t だとなるようになります。
@item hyphenate
@code{(setq trr-un-hyphenate nil)} とするとハイフネーションを
戻さなくなります。t だとハイフネーションを消します。
@end table
@node default directory
@comment node-name, next, previous, up
@section trr の default directory の変更
@cindex directory
trr は通常、プレーヤーの記録とゲームスコアを
@code{~/.emacs.d/games/trrscores/} に保存しますが、変更したい場合はそれぞ
れ、@code{(setq trr-record-dir XXXXX)} および@code{(setq trr-score-dir
XXXXX)} で変更できます。 @code{trr-record-dir} を、update-game-score を使っ
て更新する場合は @code{(setq trr-use-update-program t)} としてください。
@c trr は通常 install 時に正しい directory を与えられています。
@c しかしなんらかの理由でそれを変更したい場合環境変数を
@c 与えれば変えられます。
@c elc, text, record 等が入っている directory を与えるには
@c 環境変数 @var{trrDIR} を定義します。trr_update, trr_format が
@c 入っている directory は @var{trrBINDIR} です。
@node color
@comment node-name, next, previous, up
@section 色を変更したい
@cindex color
default の色指定は明るい背景用になっています。
これらは、@code{M-x customize-group trr} で変更できます。
@*
@table @samp
@item textの色
@code{(set-face-foreground 'trr-text-face COLOR)} の color に
色を表す文字列を入れると打つべき text の色がその色になります。
@var{COLOR} に nil を指定すれば色がつきません。
以下も同様の指定方法です。
@item 正しく打った文字の色
@code{(set-face-foreground 'trr-correct-face COLOR)} で指定できます。
@item 間違えた文字の色
@code{(set-face-foreground 'trr-miss-face COLOR)} で指定できます。
@item グラフの星の色
@code{(set-face-foreground 'trr-graph-face COLOR)} で指定できます。
@item 自分の名前の背景の色
@code{(set-face-foreground 'trr-self-face COLOR)} で指定できます。
@end table
@*
@node hooks
@comment node-name, next, previous, up
@section フック関数
@cindex hook
trr は以下のような hook を用意しています。
@table @var
@item trr-load-hook
trr を load する時だけ評価されます。
@item trr-start-hook
M-x trr を実行する際に評価されます。
@item trr-end-hook
trr を終了する際に評価されます。
@end table
@node Index
@comment node-name, next, previous, up
@unnumbered Index
@printindex cp
@contents
@bye