
※途中で戻りたい場合は、ブラウザの「戻る」機能を使ってください。
プログラムリストの解析の続き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.