#当時の記憶
36年前当時、JR-200 (Wikipedia)というグラフィック機能はイマイチなパソコンを使っていました。歳がバレますね(笑)。
パソコン雑誌に掲載されるプログラムの数も限られており、他機種からの移植をしようにもグラフィック機能がネックで諦めることが多かったように思います。
その当時のPOPCOM (Wikipedia)という雑誌にデビューしたばかりくらいの沢口靖子さんを題材にしたプログラムが掲載されたのですが、自分のパソコンでは実行できないと諦めたと思っていました。自分の記憶では沢口靖子さんの顔をパソコンのグラフィックで表示するプログラムだと思っていました。何故かその事がずっと気がかりというか頭の片隅にあったのですが、偶然メルカリでその雑誌を見かけて思わず買ってしまいました。表紙に見憶えがありすぐに分かりました。目次の写真もあったので記事の内容も確認できました。値段は当時の値段の約6倍の3000円しましたけど。
#実際の記事
届いた雑誌を開いてみると、広告や記事を読むと当時が思い出されとても懐かしかったです。漫画で世界時計のプログラムの解説がされていたりして隔世の感がありました。
そして肝心の沢口靖子さんのプログラムを確認すると…全然グラフィック系の命令は無く、ほぼほぼPRINT文とDATA文という…。昔の記憶なんて当てになりませんね。これやったら全然JR-200でも実行できたやん。多分。
#ソースコード
取り敢えず内容が気になったので、BASICより簡単そうなRubyで書き直してみました。DATA
文の部分はスマホでGoogleさんの文字認識に助けてもらい入力しました。
もう36年前で時効?と思いますのでソース掲載してみます(問題はご指摘いただければ幸いです)。沢口靖子さんの当時のプロフィールをご覧になりたい方はお試しください
一応、動作確認した環境は以下です。
- macOS 11.2 Beta (20D5042d)
- ruby 2.6.3p62 (2019-04-16 revision 67580) [universal.x86_64-darwin20]
#!/usr/bin/ruby
#-*- coding:utf-8 -*-
require 'nkf'
questions = [
"セイネンガッピ : ",
"シュッシンチ : ",
"シンチョウ,タイジュウ,B・W・H ノ サイズ : ",
"ケツエキガタ,セイザ : ",
"カゾクコウセイ : ",
"シュミ : ",
"スキナ スポーツ : ",
"トクイナ カモク : ",
"スキナ タベモノ : ",
"イッテミタイ クニ : ",
"スキナ タレント ミュージシャン : ",
"リソウノ タイプノ ダンセイ : ",
"キライナ タイプノ ダンセイ : ",
"デビューノ キッカケ : ",
"ドンナ オンナノヒトニ ナッテイキタイカ : ",
"スキナ イロ : ",
]
data = [
161,100,93,89,104,89,95,95,67,372,372,386,374,62,429,62,386,374,364,
62,389,67,95,102,110,193,214,62,100,102,209,201,62,62,108,93,89,102,
108,89,108,106,67,126,62,374,478,398,62,429,398,384,478,62,386,478,67,
401,401,62,424,424,62,362,413,62,421,62,100,413,475,62,374,396,478,
379,67,372,475,374,478,379,374,475,389,355,367,62,369,364,374,478,374,
475,389,355,367,67,406,413,391,62,391,364,369,364,67,369,364,384,478,
62,374,478,62,391,376,62,406,478,389,398,67,386,458,398,478,62,464,
364,62,411,458,64,62,456,360,379,478,464,408,62,447,67,391,364,391,62,
77,424,364,389,478,62,374,478,62,364,398,456,367,411,62,408,384,469,
79,67,453,360,439,475,62,362,475,461,62,372,429,384,360,391,67,401,
355,357,426,481,461,62,426,355,367,376,475,62,406,478,62,364,357,389,
355,413,364,406,62,398,421,389,364,62,426,408,62,374,478,62,364,364,
411,67,389,403,384,379,406,62,389,478,389,475,62,374,389,478,355,367,
62,421,62,426,408,62,374,478,62,364,450,67,398,478,364,95,374,364,62,
408,367,434,367,62,389,475,406,478,467,458,62,421,62,372,360,406,478,
341,389,355,475,62,406,478,62,453,367,389,355,367,62,389,437,389,398,
67,393,364,374,379,62,374,458,62,391,432,478,406,62,374,472,364,364,
62,408,62,364,472,467,464,62,372,475,411,62,421,62,426,408,62,413,62,
411,461,398,364,67,389,469,62,426,481,475,379,67,133,151,126,159,141,
]
ans = ""
data.each {|a|
b = (300.0*Math.sin(a.to_f/10.0*3.1416/180.0)).to_i
c = b.chr
if c == '#'
puts questions.shift, NKF.nkf("--oc=UTF-8 --ic=CP932", ans),
ans = ""
next
end
ans << c
}
追記(2021-01-18):
リンクがちゃんと動作していなかったのを修正しました。 @scivolaさん、編集リクエストありがとうございました!