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

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

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

520行



RND関数を使って0から1未満の数を8倍して、INT関数にて数値を超えない最大の整数にしています。

そして、その値を4倍してから1を加えて変数Aに代入しています。

この変数Aとは何に使う目的なのでしょうか?

コロンで区切り、変数B C Dを初期化しています。

530行



PLAY文ですね、これは鳴らして聞いてみれば、何の音だかわかります。

RUN 530と打ち込んでみますと、エイリアンがアミダで降りてくる音が鳴りました。

540行



GOSUB文が出てきました。

GOSUB 行番号 と RETURN 行番号 で、対で使われます。

GOSUB文で後ろの行番号に飛び、処理をしてRETURN文で後ろの行番号があると、その行番号へ、無ければGOSUB文の次の命令に戻ります。

この分を使うことで、サブルーチンの呼び出しと戻ってくる処理を可能にします。

550行



変数Vの値が146なら570行へ飛び、148なら640へ飛ぶようになっています。

560行



540行へ飛ぶようになっています。

先ほど説明した、GOSUB文のある行です。

また、サブルーチンへ飛ぶ事になります。

570行



540行とまったく同じ命令です。

どうして同じものがあるのか解りませんが、流れとしてみれば、意味がわかるかもしれません。

580行



変数Vの内容が、146か147ならば、変数Aに1を加えて、Cをゼロクリアします。

590行



変数Cが0でかつ、変数Vが148ならば、変数Bに1を加えて、変数Cを1にします。

600行



変数Cが1でかつ、変数Vが148ならば、640行に飛びます。

610行



変数Vが224でかつ、RND関数の結果が0.2より小さかったら、変数Aに1を加える。

620行



変数Aが変数Xと同じでかつ、変数Bが20ならば790行へ飛び、そうでなく変数Bが20ならば、830行へ飛びます。

630行



570行へ飛びます。

640行




720行へ飛び、RETURN文で帰ってきます。

650行




変数Vが148か147ならば、変数Aから1を引き、変数Cをゼロクリア。

660行




変数Cが0でかつ、変数Vが146ならば、変数Bに1を加え、変数Cを1にする。

670行




変数Cが1でかつ、変数Vが146ならば、570行へ飛びます。

680行




変数Vが224でかつ、RND関数の結果が0.2よりも小さければ、変数Aから1を引く。

690行




変数Aが変数Xと同じでかつ、変数Bば20の場合790行へ飛び、そうでなく変数Bが20ならば、830行へ飛びます。

700行




640行へ飛ぶ。

710行




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

このブロックはPLAY文の内容と条件分岐が多数あることから、エイリアンがアミダで降りてくる処理を行っているのではないでしょうか?

気になった、以下の事をメモしました。

使われた変数は、A、B、C、V、X。

変数Vは146、147、148、224という数字とのチェックを行っています。

飛び先の行番号は、540、570、640、720、790、830となっています。

 

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