プチコン3号でプログラム:ポッポマラソンに必要なポッポの数(2)

前回、『ポッポマラソン』に必要な捕まえる『ポッポ』の数を表示するプログラムを作りました。
今回は、そのプログラムを説明しましょう。

初期設定

'ポッポマラソン
'サイショ
TUKAMAETAPOPPO=0
POPPO=0
PIJON=0
AME=0
SINKAAME=12
MAXPIJON=60

各変数の初期設定です。

  • TUKAMAETAPOPPO:捕まえたポッポの数。まだ捕まえていないので 0
  • POPPO:今持っているポッポの数。持っていないので 0
  • PIJON:今持っているピジョンの数。持っていないので 0
  • AME::今持っているアメの数。持っていないので 0
  • SINKAAME:ポッポを”進化”させてピジョンにするのに必要なアメの数。12個
  • MAXPIJON:必要な進化させたピジョンの数。今回は 60

メインループ(メインループの始まり)

'メイン
REPEAT

メインループの開始位置です。
“UNTIL”と対になって、この間を”UNTIL”の後の条件式が“true”になるまで繰り返します。
★”WHILE”と”WEND”の場合は、”WHILE”の後の条件式が“true”の間のみ繰り返します。

メインループ(ポッポ所得)

  GOSUB @GETPOPPO

サブルーチンを呼んで、ポッポを1匹捕まえたとして、処理をします。
★サブルーチンとは、ある決まった特定の処理をまとめたもので、そのサブルーチンを呼び出せば、そのサブルーチンの処理をして、呼び出したところの次の命令から続けるようになっています。
 なお、呼び出されるサブルーチンは、ラベル名(“@”で始まる)で呼びます。

メインループ(進化に必要なアメがあれば進化)

  IF AME >= SINKAAME THEN
    GOSUB @SINKA

進化に必要なアメがあれば、サブルーチンを呼んで進化の処理をします。

メインループ(博士に送ってアメにする)

  ELSEIF POPPO > 1 THEN
    GOSUB @HAKASE

もし、進化に必要なアメがなく、進化させるポッポが2匹以上いれば、博士に送るサブルーチンを呼びます。

メインループ(進化に必要なアメがあれば進化(2))

    IF AME >= SINKAAME THEN
      GOSUB @SINKA
    ENDIF

博士に送った後、進化に必要なアメがあれば、サブルーチンを呼んで進化の処理をします。

メインループ(条件の終わり)

  ENDIF

メインループ(途中経過の表示)

  PRINT TUKAMAETAPOPPO,POPPO,AME,PIJON

途中経過として、現時点での、捕まえたポッポの数、今持っているポッポの数、今持っているアメの数、今持っているピジョンの数を表示します。

メインループ(メインループの最後)

UNTIL PIJON >= MAXPIJON

メインループ(結果表示)

PRINT "ピジョン";MAXPIJON;"ヒキニ ヒツヨウナ ポッポ ハ";TUKAMAETAPOPPO;"ヒキ"
END

結果を表示します。
★次の行からサブルーチンなので、メインのプログラムを停止させるために、”END”は必要。

ポッポを捕まえたときのサブルーチン

@GETPOPPO
INC TUKAMAETAPOPPO
INC POPPO
INC AME,3
RETURN

ポッポを捕まえたとき、変化がある変数の処理をします。
なお、最初の行の”@GETPOPPO”はラベルです。
このラベルを頼りにサブルーチンが呼ばれます。

  • TUKAMAETAPOPPO:捕まえたポッポの数は、1 匹増えます。
  • POPPO:今持っているポッポの数も1 匹増えます。
  • AME::今持っているアメの数は 3つ増えます。

進化したときのサブルーチン

@SINKA
DEC POPPO
INC PIJON
DEC AME,SINKAAME
INC AME
RETURN

ポッポを進化させたとき、変化がある変数の処理をします。

  • POPPO:今持っているポッポの数は、1匹減ります。
  • PIJON:今持っているピジョンの数は、1匹増えます。
  • AME::今持っているアメの数は、SINKAAME(ポッポを”進化”させてピジョンにするのに必要なアメの数) 分減ります。そして、進化により 1 増えます。

ポッポを博士に送った時のサブルーチン

@HAKASE
DEC POPPO
INC AME
RETURN

ポッポを博士に送った時、変化がある変数の処理をします。

  • POPPO:今持っているポッポの数は 1 匹減ります。
  • AME::今持っているアメの数は 1つ増えます。

次回は、『ポッポ』以外のモンスターの場合ができるように、修正しようと思います。

では今回はここまで。
また次回をお楽しみに。

スポンサーリンク
レクタングル広告大