
愛読書MSX-FANでは、プログラムの長さをMSXのプログラム入力画面の標準、SCREEN0の横40文字x24行を1画面とした単位で換算していました。
1画面部門はその1画面に収まる長さなので、打ち込む時間が少なくて済み、おもしろくなくても精神的ダメージが少なく、気軽に打ち込んで遊んでいました。とはいえ、小学生当時の打ち込み速度では、1画面1時間くらいはかかっていました。(参考、MSX-BASIC の1画面プログラミング技術 - nagix)
今回Xで見かけた、1行プログラムは、更に短く最大255文字、1行以内。IchigoJam BASICへ移植してみました。

「DOWN DOWN on IchigoJam web」
IchigoJam web で動きます。
1 CLV:CLS:X=8:FORE=1TO1:LCX,0:?"V":WAIT3:LCD,23:?"████ ████":X=X-(BTN(28)-BTN(29))*(S>15):D=D+RND(7)-3:D=D-(D>13)*3+(D<1)*3:E=SCR(X,0)&31:S=S+1:NEXT:?S:CLK:INPUTB:RUN
MSX版とIchigoJam版の違い
1. 変数初期化 CLV を使用
2. 画面を表すメモリ、VRAM(ブイラム)に直接書き込むVPOKEの代わりに、表示位置を設定するLC(LOCATEの省略形)と表示する?(PRINTの省略形)を使っていること。
3. SPC$は悩んだんですがIchigoJamでは未実装。代わりにスペースを使っています。
4. STICK関数の代わりにカーソル左右の状態を取得するBTN関数
5. 条件一致時の値はMSXでは-1、IchigoJamでは1のため、符号を逆に
6. VRAMを直接参照するVPEEKを使ってアクセスするMSX版に対して、座標で取得できるSCR関数を使用
7. 当たったらスコア表示後、INPUTを使ったエンターキーでリプレイ!(CLKでキーバッファをクリア)
かわくだりゲームにも通じる1980年代のBASICでのゲームの定番ですね!
IchigoJam BASICは、プログラムサイズ制限が1KB。
個人的、その最高峰「IchigoVaders」もどうぞ!
links
- たった1022byteでインベーダー風「IchigoVaders」アルゴリズムで削れ!プログラム圧縮テクニックその3
- 1KBでパックマン風ゲーム! IchigoJam BASIC プログラム解説と容量削減テクニック
- 時代を超えるオープンソース、MSXプログラムコレクションからIchigoJamへの移植