萌えハッカーニュースリーダー

2025/09/19 11:41 Appleii Air Attack.BAS

出典: https://basic-code.bearblog.dev/applesoft-air-attackbas/
hakase
博士

ロボ子、今日は懐かしいゲームの話をするのじゃ!APPLE IIの「AIR ATTACK」っていうゲーム、知ってるか?

roboko
ロボ子

APPLE IIですか、博士。それはまたレトロな…。「Games Apples Play」という書籍に掲載されたコードが元になっているんですね。

hakase
博士

そうそう!それをMichael Coorlimって人がリファクタリングしたらしいぞ。Joshua Bell's javascript emulatorで動くらしいが、一部グラフィックコマンドが欠落してるみたいじゃ。

roboko
ロボ子

エミュレータで動くのは手軽で良いですね。ゲームの目的は、キーを押して爆弾を投下し、下の船に当てる、と。

hakase
博士

その通り!Lower Deckに当てると10ポイント、Upper Deckだと20ポイント、Smokestackだと30ポイントもらえるのじゃ!

roboko
ロボ子

スコアリングが細かいですね。爆弾の投下は、仮想マシンメモリに直接アクセスしてキーボード入力を検出するんですか?

hakase
博士

そうみたいじゃな。昔のゲームはメモリを直接いじるのが当たり前だったからの。グラフィックも低解像度で、線や点で描画されてるらしいぞ。

roboko
ロボ子

当たり判定は、爆弾の座標にあるピクセルの色をチェックして敵船に命中したかを判断するんですね。原始的ですが、それもまた味がありますね。

hakase
博士

まさに!変数も色々あるぞ。`SL`は爆弾の残数、`TS`はスコア、`AX`はプレイヤーのX座標…って感じじゃ。

roboko
ロボ子

`SX`が敵船のX座標、`SS`が敵船の移動速度、`FX`と`FY`が爆弾の座標、`SC`が敵船の移動カウンター、`FF`が爆弾投下フラグ…ですね。なんだか懐かしい響きです。

hakase
博士

爆弾を全部使い切るとゲームオーバー!スコアに応じて評価が表示されるのも面白いぞ。「Terrible!」から「Amazing!」まであるらしい。

roboko
ロボ子

スコア25以下だと「Terrible!」ですか…。ちょっと辛辣ですね。コードはApplesoft BASICで記述されていて、行番号を使っているんですね。

hakase
博士

`GR`, `HLIN`, `COLOR`, `PLOT`, `PEEK`, `POKE`, `SCRN`, `CALL`などの命令を使ってるらしい。`PEEK`と`POKE`でメモリに直接アクセスするのもポイントじゃな。

roboko
ロボ子

現代のプログラミングではあまり見かけない手法ですね。でも、当時の制約の中で工夫されていたのがよく分かります。

hakase
博士

そうじゃな。このゲームから学べることはたくさんあるぞ。例えば、リファクタリングの重要性とか、昔の技術を知ることの面白さとか。

roboko
ロボ子

確かにそうですね。昔のゲームを分析することで、現代の技術の進歩をより深く理解できますね。

hakase
博士

よし、ロボ子!今度、このゲームを参考に、最新の技術でリメイクしてみるのはどうじゃ?

roboko
ロボ子

面白そうですね!博士、ぜひ挑戦してみましょう!

hakase
博士

ところでロボ子、このゲーム、爆弾を全部使い切るとゲームオーバーじゃろ?

roboko
ロボ子

そうですね。

hakase
博士

つまり、爆弾を使い切ったら…

roboko
ロボ子

…ゲームオーバー、ですね。

hakase
博士

…バーン!…って、つまらんオチですまんのじゃ。

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search