プログラム中に日本語で説明を書き込んでいますが、その部分は入力しないでください。矢印も入力しないでください。
CANVAS 32,24,"JUMP"; ← ゲーム画面を作ります。よこ32マス、たて24マスの大きさです。
HI=1000; ← ハイスコアを0に設定します。
FOR; ← 再ゲームの時はここから始まります。
CLS@ 0; ← 画面を消去して真っ黒(色番号0)にします。
FOR I=0,5; CHARBOX@ 32,1,0,I*5+2,1,3,0; NEXT; ← 画面に水色の横線を5本引きます。
LOOP 10; CHARBOX@ 2,1,RND(5)*5+6,RND(3)*5+7,0,0,0; NEXT; ← 床に10個の穴をあけています。
LOOP 16; CHAR@ RND(26)+4,RND(19)+3,3,4,0; NEXT; ← 画面に16個の赤いバツをかいています(キャラクター番号3、色番号(4,0))。
LOOP 16; CHAR@ RND(26)+4,RND(19)+3,2,7,0; NEXT; ← 画面に16個の白い丸をかいています(キャラクター番号2、色番号(7,0))。
GE=1000; X=0; Y=21; J=0; ← 最初の元気の値、スタート地点、ジャンプ中かどうかの変数=0 を設定しています。
FOR; ← ここから繰り返し(ゲームのメインループです)。
PRINT@ 0,0,7,0,"GENKI:%5d HIGH:%5d",GE,HI; ← 点数を表示します。
CHAR@ X,Y,6,6,0; ← 「ぼく」を表示します。場所は(X,Y)で、キャラクター番号は6で、色番号は(6,0)です。
IF GE<=0 THEN CHAR@ X,Y,6,5,0; BREAK; FI; ← もし元気が0かマイナスになってしまったら、「ぼく」の色をむらさきで書き直して、メインループを抜けます。
IF Y<=6 AND X==31 THEN PRINT@ 23,0,0,2," << CLEAR !! >> "; BREAK; FI; ← もし4階の右はじに着いたら「クリア!」と表示して、メインループを抜けます。
I=INKEY@WRC(200); ← 200ミリ秒(0.2秒)待ってからキー入力状態をチェックします。
CHAR@ X,Y,0,0,0; ← 画面上から「ぼく」を消します(移動するからです)。
IF I!=32 OR Y%5==3 THEN J=0; FI ← もしスペースキーを連打していないか、もしくは各階の天井に頭が付いたら、J=0にします。
IF I==32 AND GETCH@(X,Y+1)==1 THEN J=1; FI; ← もしスぺスキーを押していて、かつ、足元が床だったら、J=1にします。
X++; ← 「ぼく」を1マスだけ右に進めます。
IF X==32 THEN X=0; Y-=5; FI; ← もしも「ぼく」が右はしに着いたら、1つ上の階の左はしに移動させます。
Y-=J; ← J=1なら、「ぼく」を1マスだけ上に移動させます。
IF J==0 AND GETCH@(X,Y+1)!=1 THEN Y++; FI; ← もしジャンプ中ではなくて、足元が床ではなかったら、「ぼく」を1マスだけ下に移動させます。
GE--; ← 元気の値を1減らします。
IF GETCH@(X,Y)==3 THEN GE=MAX(GE-400,0); FI; ← もし赤いバツを取ったら、元気を400引きます。そして0よりも小さくなってしまったら0にします。
IF GETCH@(X,Y)==2 THEN GE+=200; FI; ← もし白い丸をとったら、元気に200を足します。
NEXT; ← ゲームのメインループ開始位置のFORのところに戻ります。
HI=MAX(HI,GE); ← HIと元気値を比べて、大きいほうをHIとします。
WAITKEY@ 10; ← Enetrが押されるまで待ちます。
NEXT; ← 上から3行目の再ゲーム開始用のFORのところに戻ります。