「完全初心者のためのプログラミング入門」完結しました

2021年の6月頃に初公開した「完全初心者のためのプログラミング入門」に、以下の二つのページを加えました。これにて完結となります。

ここまでは「UFOゲーム」を作ってきましたが、最終回である今回は、こんな感じのシューティングゲームを作ります。

シューティングゲーム」の画面

下にあるキャノン砲で、敵を撃墜するゲームです。敵は、UFO、エイリアン、フライングボード(くるくる回りながら落ちてくる板です。何かに似ていますが気にしないように)、それからエイリアンが落とす爆弾の4種類です。実際のゲームは、こちらで遊べます。

ここまで作ってきたUFOゲームに比べると、相当複雑なプログラムに思えるのではないでしょうか。実際それなりにプログラムは長くなっていますが、メソッドオーバーライドとかポリモルフィズムとかのオブジェクト指向の機能により、それほどごちゃごちゃにならずにプログラムが組める、ということを示せたと思います。今後、敵の種類をもっと増やすのも簡単にできるようにしています。

一昔前は、「オブジェクト指向」について、難しいとかわからないとかそんなものは役に立たないとか、そんな意見が山ほど出ていましたが*1、実際にこのような「オブジェクト指向が明確に役に立つ例」を見てみれば、そういう疑問も解消するのではないかと思います*2

JavaScriptの「オブジェクト指向」はやわかり』の方は、class構文を使わない、昔ながらのJavaScriptオブジェクト指向を実現する方法について説明しています。いまどきそんなのなんの役に立つのか、と思うかもしれませんが、JavaScriptのclass構文が単なるシンタックスシュガーにすぎない以上、知らないで済ませることはやはりできないでしょう。

これを始めたときに書いたはてなブログがこれです。

kmaebashi.hatenablog.com

この記事の最後で、『最終的には、これくらいのシューティングゲームくらいまで持っていきたいと思っていますが、さて、どうなりますことやら。』と書いていますね。どうやらそこまで持っていくことはできました。いやあ長かった。

入門記事本体の「なぜこんなのを書いたのか」にも書きましたが、この「入門」は、1982年の「マイコンBASICマガジン」(略してベーマガ)の記事「UFOゲームを作ってみよう」へのオマージュです。しかし、当時の私には、UFOゲームは作れても、このシューティングゲームくらい複雑なプログラムは書けなかったと思います。今書けるのは、もちろんプロとして30年くらいやってるので当たり前ではあるのですが、ハードウェアの進歩(1982年当時なら、このゲームは機械語が必要だったでしょう)のほか、プログラミング言語や技法の進歩もあると思っています。今の若い人はここから始められて幸運だ、ぐらいのことは言っていいかもしれません。

多くの人が、プログラミングの楽しみに触れられますように。

 

*1:最近あまり聞かない気がするのは、たぶんみんながオブジェクト指向を理解したためではなく、話題としてトレンドではなくなったため、理解している人は普通に使っているが理解できない人が無理して理解する必要がなくなったからじゃないかなあ。

*2:その上で、そういう役に立つ範囲がどれぐらい広いのかはまた別問題