BASIC
ボクが唯一扱えるプログラミング言語はBASICです。
古くは東芝のパソピア7で学び始め、MSXでほぼ自在に扱えるようになりました。
と言っても当時は小学生だったので、中学生以上の数学的な概念はわかりませんでした。
関数とか。配列とか。
それでもスプライト機能を使って、スーパーマリオの様な重力落下や慣性の法則を活かしたアルゴリズム(っぽいモノ)を考え出しては遊んでいました。
重力に関してはY座標に一定値を足し続けて下方向に加速させているだけですけどね。
まあそれで正しいんですが。
あと、当時、アルゴリズムと言う概念に凝っていて、どう言うアルゴリズムを組めば、あのゲームの動きが再現できるんだろう、と子供なりに考えたモノです。
例えば、ゲームセンターにあったリブルラブルと言うゲーム。
敵を囲んでしまえばやっつけられるんですが、その囲み判定。
これは難しすぎてあきらめました。
似たようなゲームに、オストリッチやクイックスもありましたね。
一定のエリアが囲まれているかどうかの判定はさすがにBASICだけでは速度的には難しいのでしょうか。
プログラミング言語って、単に文法を完璧に覚えても、それだけでは作れるモノが限られるんですよね。
とにかくアルゴリズム。
さっき書いたように、重力を表すなら、Y座標の速度を一定値ずつ増やせばいい、つまり加速度を付ければいいんです。
それがアルゴリズムですね。
ボクがあきらめた囲み判定アルゴリズムは置いておいて、当時、もうひとつ感激したアルゴリズムが、後から付いて来る金魚の糞アルゴリズムです。
グラディウスと言うゲームのオプションや、ドラゴンクエストIIの2人目以降です。
これをB-CHAN少年は必死で再現しようとしました。
要は、主人公の座標を覚えておいて、オプションは1回前の主人公の座標に表示すればいいんです。
グラディウスはそれで再現できました。
しかし、ドラゴンクエストIIは主人公は常に画面の中心にいて動かないんです。
主人公が移動すれば、相対的に周りのキャラと背景が移動するんですね。
理屈で言えばグラディウスのオプションと同じはずなんです。
しかし結局、当時のボクの頭脳ではドラクエIIの金魚の糞は再現できませんでした。
環境
そんな懐かしい思い出を思い出しながら、今はすっかりITとは無縁の仕事。
不動産業ですから。
しかし、一方でブログでHTMLとCSSを書いています。
ずっと前からモヤモヤしていたのは、最近のプログラミング言語を身に付けられないかってことです。
当時のBASICはパソコンの電源を入れれば自動的にBASICの画面になったので、いわゆる環境構築なんてしなくて良かったんです。
一部のシャープ製のパソコンはクリーンコンピュータと呼ばれていてプログラミング言語は固定されていませんでしたが、NECや富士通、MSXなどはBASICがROMで内蔵されていたので、電源ポンですぐにプログラムを書き始めることができました。
それ以来の数十年ぶりのプログラミング学習。
WEBサービスを作ってみたいので、PHPを学習しようかと考えましたが、将来性を考えてRubyを選ぶことにしました。
PHPはちょっと学習しかけたことはありますが。
ボクのパソコンはMacなので、たいていのプログラミング言語は内蔵されています。
Rubyも内蔵されています。
それでも、Macの電源ポンですぐにRubyのプログラミング開始、とはいかないんですよね。
ターミナルの知識が求められます。
もっと言えばUNIXの知識が求められます。
繰り返しますが、ボクはITとは無縁の仕事が本業なので、ここ数十年のプログラミングなんて知らないのです。
いつの間にかオブジェクト指向なんてのが主流になってしまっていますし。
とにかく、プログラミングを始めるにはプログラミングをやりやすい環境作りが必要なんですよね。
あちこちの本やサイトに、Ruby on Railsなんて書かれていますが、それが何者で、それがなぜ必要なのかなんてほとんど書かれていません。
書かれているのは手順ばかり。
なので、ボクが学ぶべきは、その前の段階からなんですよね。
BASICを学ぶときはそんなことはなかったのに。
それでもある程度、PHPとRubyを学びました。
思ったことはただひとつ。
昔のBASICとほとんど変わらないんですよね。
もちろんオブジェクト指向は取り入れられていますが、それは便利さ、機能の向上の話です。
もっと根本的な部分はみんな同じ。
四則演算、条件分岐、繰り返し。
文法が少しずつ違うだけでやることは同じなんですね。
あとはAPIに関する知識でしょうか。
当時はそんなモノはありませんでした。
無いモノは自力で作っていました。
今は無いモノはライブラリから持ってくる、そんな時代です。
あれこれ書いてしまいました。
今後、Rubyの記事を多少、書いていくかも知れませんが、よろしくです。