36年前の沢口靖子さんのプロフィールを確認した話

#当時の記憶
36年前当時、JR-200 ([Wikipedia](https://ja.wikipedia.org/wiki/JR_(%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF)#JR-200))というグラフィック機能はイマイチなパソコンを使っていました。歳がバレますね(笑)。
パソコン雑誌に掲載されるプログラムの数も限られており、他機種からの移植をしようにもグラフィック機能がネックで諦めることが多かったように思います。
その当時のPOPCOM ([Wikipedia](https://ja.wikipedia.org/wiki/%E3%83%9D%E3%83%97%E3%82%B3%E3%83%A0))という雑誌にデビューしたばかりくらいの沢口靖子さんを題材にしたプログラムが掲載されたのですが、自分のパソコンでは実行できないと諦めたと思っていました。自分の記憶では沢口靖子さんの顔をパソコンのグラフィックで表示するプログラムだと思っていました。何故かその事がずっと気がかりというか頭の片隅にあったのですが、偶然メルカリでその雑誌を見かけて思わず買ってしまいました。表紙に見憶えがありすぐに分かりました。目次の写真もあったので記事の内容も確認できました。値段は当時の値段の約6倍の3000円しましたけど。
<img width="400" alt="POPCOM.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/264719/6c885fd1-fef2-8146-72f5-aa3e9b744017.jpeg">

#実際の記事
届いた雑誌を開いてみると、広告や記事を読むと当時が思い出されとても懐かしかったです。漫画で世界時計のプログラムの解説がされていたりして隔世の感がありました。
そして肝心の沢口靖子さんのプログラムを確認すると…全然グラフィック系の命令は無く、ほぼほぼPRINT文とDATA文という…。昔の記憶なんて当てになりませんね。これやったら全然JR-200でも実行できたやん。多分。
<img width="400" alt="POPCOM.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/264719/be2e2d1f-a917-681c-8a92-d2f04cdefa4d.jpeg">

#ソースコード
取り敢えず内容が気になったので、BASICより簡単そうなRubyで書き直してみました。`DATA`文の部分はスマホでGoogleさんの文字認識に助けてもらい入力しました。
もう36年前で時効？と思いますのでソース掲載してみます(問題はご指摘いただければ幸いです)。沢口靖子さんの当時のプロフィールをご覧になりたい方はお試しください \:smile: 
一応、動作確認した環境は以下です。

- macOS 11.2 Beta (20D5042d)
- ruby 2.6.3p62 (2019-04-16 revision 67580) [universal.x86_64-darwin20]


```ruby:sawaguchi-yasuko.rb
#!/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さん、編集リクエストありがとうございました!:bow: