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