[ AMIDER(アミダー) その6 ]

※途中で戻りたい場合は、ブラウザの「戻る」機能を使ってください。

プログラムリストの解析の続き

400行



CLS命令で画面をクリアした後、変数(L、L1、S、X)に値を入れています、初期値なのでしょうか?

410行



STRING$(ストリングダラー)命令が出てきました。

書式は、

STRING$(文字数 , 文字式)

となり、指定した文字式を文字数だけ並べたものを出力します。

この場合ですと、LOCATE文で指定したキャラクタ座標に(0,20と0,21)「<」の文字を31個並べる事になります。

ゲーム画面の下にある、青いブロックがそうみたいですね。

420行



「FOR I=1 TO 29 STEP 4」ということは4つ刻みで増加するから、1から始まり、5、9、13、17・・・29となります。

FOR文が入れ子になっていて、「あ」を表示しています。

そうすると、はじめのLOCATE文のキャラクタ座標は1,22で次は1,23。

こんどは、5,22で次は5,23。

次は、9,22と9,23となっていきます。

ロープのグラフィックが「あ」となっており、4つおきに並べているんじゃないかと思います。

430行



FとTに0を入れて、Lに1を足しています。

そして、Lが6になったらLを1にして、L1に1を足します。

L1が3なら980番に飛びます。

ここでIF文の確認をしておきます。

この例で考えてみると、

IF L=6 THEN L=1:L1=L1+1:IF L1=3 THEN 980

この場合L=6なら、THEN以後が適用されて(Lに1を代入して、L1に1を加えて3だったら、980番へ飛ぶ)、6でなければ、何もせずに終わる。

という事になり、IF文で真なら、THEN以後が実行されて、偽ならELSE以後が実行される(ELSEが無ければ、何もせずに次の行へ)ということです。

440行



PRINT USING命令が出てきました。

PRINT USING ”制御文字”;文字列または変数または数値

この場合は制御文字が#となり、指定した文字列分の変数を表示させます。

つまり、”LEVEL #・#”は”LEVEL L1の内容・Lの内容”と表示します。

L1とLはレベル(面数)の変数名ということがわかります。

そして、”SCORE”や”FAIL”の後に表示する変数名から、スコアはS、ミスの回数はFだということもわかります。

450行



FOR NEXT文の二重ループです。

”あ”を連続して表示させています。

LOCATE文でキャラクタ座標1〜19のY座標に、X座標は1〜29までの4刻みで表示していることから、”あ”というのは、ロープのグラフィックパターンだと思われます。

460行



こちらも、FOR文が二回書かれています。

NEXT文がありません、この後に出てくるものだと思います。

470行



二重ループの内容となります。

ランダム関数で得た数値に、17倍してさらに2を加えたものをKに代入しています。

480行



ここも二重ループの内容です。

IF文で、VPEEKの内容をチェックしています。

VPEEKとは「AMIDER(アミダー) その4」で150行から180行にかけて出てきた、VPOKEと対になる命令で、

VPEEK (式)

式のアドレスのVRAMの内容(0〜255の8ビット)を得る命令です。

ここでは、ORをつかって3つの条件のうちどれか当てはまれば、470行に飛ぶ事になっています。

490行



ここも、二重ループの内容です。

IF文で、L1=1かつRND(1)>0.7のとき、(J,K)へ”しうたうえ”を表示、そうでなければ”しうううえ”を表示します。

”しうたうえ”や”しうううえ”とは、何でしょうか?

500行



二重ループの終わりである、NEXT文が書かれていますので、ここまでの処理を繰り返します。

510行



アポストロフィーで区切られています。

このブロックでは、ゲーム画面を描いているように思えます。

 

Copyright(C) 2006. ピコピコテクノロジー All Right Reserved.