見出し画像

CTO 松田進也 自己紹介 Vol.1

私の第2回目にして自己紹介ということで、プログラミングの原体験を書きますね。ちなみに今回の記事にはかなり濃いめの昭和感が漂いますのでご注意ください。

BASIC

きっかけはコロコロコミックで大人気だった「ゲームセンターあらし」からの、そのキャラクターが出てくる「こんにちはマイコン」だった気がします。多分。
その流れで小学生のときにシャープのX1Cを買ってもらったんですが(ちなみに記憶装置はカセットテープ)、お小遣いではそうそうゲームを買えるわけもなく、頼りになるのはマイコンBASICマガジン。ほとんどのページがゲームプログラムやグラフィックデータで、それを見ながらがんばって手打ち、という修行にはもってこいの環境でした。

言語は雑誌名の通りBASICで、最初はわけもわからず打ち込むのみ。親がコードを声に出して読む(読み方わからないとエルオーシーエーティーイーみたいな)、私がそれを打つ、という今思うとまあシュールな状況で。そんな中、ゲームキャラの移動でこんなコードがあって(うろ覚えなので雰囲気で!)、

C=キー入力
X=X+(C=右)-(C=左)
Y=Y+(C=下)-(C=上)

Cは文字だからC$だろとか、Trueは-1じゃなかったっけとかは見なかったことにしてもらって、ここから小学生だった私は、

  • 評価式そのものにも値があるんだ!

  • っていうかなんで素直にIF使わないんだろ…あ、メモリ64KBだから文字数節約したいのか!

みたいなところが楽しくなって、少しずつプログラムそのものにも興味を覚えていったんですね。

C

中学生になってからはPC-9801VM2になってフロッピーはえー!と感動しつつ、BASICの次はCというお約束ルートで勉強してました。いやほんと思い出補正じゃなくて、Cは全員勉強すべきだと思ってます。

そこで出会ったハノイの塔。3本の棒があって、N枚の大きさの違う円盤を1本目から3本目に移動する、2本目は自由に使ってよい、円盤はかならず小さいものが上、というやつです。この手順を出力するプログラムが、

void hanoi(int n, char* from, char* to, char* tmp)
{
  if (n > 0) {
    hanoi(n-1, from, tmp, to);
    printf("move disk %d from %s to %s\n", n, from, to);
    hanoi(n-1, tmp, to, from);
  }
}

なんですけど、最初見たときには何でこれが動くのかさっぱりわからなくて。「再帰」という概念もそうなんですが、

  1. N-1枚の円盤をまず2本目に移動して、

  2. N枚目の一番大きい円盤を3本目に移動して、

  3. 2本目にあるN-1枚の円盤を3本目に移動する

という「やり方」がそのまま書いてあるだけじゃないですか。具体的にどうするかが勝手に(いや勝手にじゃないんですけど)出力される、っていうのに関心して。

その後は初めて10MBのHDD買ってこんなに使いきれねー!ってなったり、FM-TOWNSでCD-ROMだー!ってなったりしながら、それでもまだプログラマになるつもりはあまりなく、当時はホンダF1最強時代ということで機械工学に進みました。

…といろいろ書いてたらちょうど平成に入ったころなので、続きは次回で。

この記事が気に入ったらサポートをしてみませんか?