条件によって処理を分ける、もし


条件によって処理を分ける

ひまわりの条件分岐 その2
前ページで見た「もし」ですが、もう少し、突っ込んだ使い方をしてみましょう。
書式: もし(条件)ならば〜。違えば〜。
 例えば、買い物をするためにスーパーへ行ったとして、りんごが、1個、98円より安かったなら、りんごを買うことにして、それより高かったら、買うのはやめよう、という状況を、プログラムにしてみましょう。
りんごの値段は、90{円}

もし、りんごの値段 <= 98{円}
    ならば、「りんごを買う」と、言う。
    違えば、「りんごを買わない」と、言う。
こんな具合です。
(条件)の中に書けるのは、以下のいずれかです。
あ=い あが、いと、等しい場合
あ≠い または あ<>い あが、いと、等しくない場合
あ>い あが、いより、大きい場合
あ≧い または あ>=い あ、いと、等しいか、大きい場合
あ<い あが、いより、小さい場合
あ≦い または あ<=い あが、いと、等しいか、小さい場合

実用的?なプログラム

夢も希望も、バナナ次第・・・
小学生のころ、遠足のお菓子は、200円までと、決められていました。
そして、そこで、必ずと言っていいほど、話題になるのが、
「バナナは、お菓子として、200円の中に数えるのか?」
と、いうことです。

そこで、これを、お菓子として扱うかどうかで子供たちが、実際に買えるバナナ以外の金額を計算してみましょう。
{遠足バナナチェックプログラム}

お金は、200{円}
バナナ金額は、40{円}

「バナナはお菓子ですか?」と、二択。{←はい、いいえで、尋ねます}
もしそれが、はいならば、お金=お金−バナナ金額{注1}

「お菓子は、{お金}円分使えます」と、言う。
競輪場にて


 高校生の頃、学校の近くに、競輪場がありまして、私の悪友はよく、年齢を偽ってギャンブルに身を落としていました。
 その時、競馬場で、年齢検査をするのに、よく使われていたのが、まず、年齢を尋ね、その後に、「生まれた年を言ってみろ!」という、検査でした。もし、間髪いれずに正しく答えられるようなら、合格、そうでなければ、追い出されるというものだったそうです。
 悪友達は、予め、20歳になったつもりで、西暦を計算し、競輪場へ通ったそうです。(さすが、進学校の生徒ですね。抜かりが無い。)
 そういうわけで、効果のほどは、確かではありませんが、この年齢チェックを、ひまわりで、作ってみましょう。
{年齢チェックプログラム}
今年{西暦}2001{年}{←年が変わったら変えてね。}
「君、今年で、何歳になるの?」と、尋ねる。
年齢それ。
「生まれた年は?」と、尋ねる。
生まれた年それ。
もし、(今年−年齢)=生まれた年
    ならば「ご来場ありがとうございます」と、言う。
    違えば「大人になってから、来てね!さようなら。」と、言う。 


遠足で競輪場へ?
 だいたいにして、競輪場が作れるような町は、そこそこ地価が安く、競輪場の近くに、大きな池のある公園があったりします。そこで、生徒を引率する先生方は、遠足の場所を決めるとき、喜んで、この公園を選んでいました。生徒には、公園で遊ばせておいて、自分たちは、隣の競輪場で一儲けして、遠足の二次会(打ち上げ会)の費用を稼ぐんです。
 そういうわけで、必死に競輪に打ち込むわけですが、もし、負けてしまったら、二次会の会場は、ラーメン屋、費用は自己負担。もし、買ったなら、二次会の会場は、すし屋、費用は、競輪で買った金から、ということになります。
 では、これを、ひまわりのプログラムにしてみましょう。
{二次会のシミュレーション(5人くらいで計算)}

「競輪で勝った金額は?」と、尋ねる。
収入は、それ。

もし、それ >= 40000{円}
  ならば、(会場は、「すし屋」。費用は、40000{円}
  違えば、(会場は、「ラーメン屋」。費用は、8000{円}
支出=費用 - 収入。
ワリカン=整数(支出÷5)

「会場は {会場}、負担は {支出}円(5人だと1人{ワリカン)}円)」と、表示。

 ここで、「ならば」と、「違えば」の、後ろの「・・・」の部分に注目してください。
普通、「ならば」「違えば」の後ろには、1つの文しか書けないことになっているのですが、こうして、 で、複数の文を囲むことによって、1つ以上の文を書くことが出来ます。
条件を重ねる
 繰り返しの時にも、出てきましたが、条件をネスト(多重構造)にするには、ならば、違えば、の、すぐ後に、丸カッコ()を書きます。

 以下は、うるう年の判定プログラムです。

うるう年かどうかを判定するには、
  1.400で割り切れる年は、うるう年
  2.100で割り切れる年は、うるう年ではない
  3.上記以外で、4で割り切れるときは、うるう年
  4.上記以外で、4で割れない年は、うるう年ではない

の条件をチェックします。
{うるう年の判定プログラム}

「西暦の入力」と、尋ねる。

もし、それ%400=0ならば、「うるう年だ」と、言う。
違えば(
  もし、それ%100=0ならば、「うるう年でない」と、言う。
  違えば(
    もし、それ%4=0ならば、「うるう年だ」と、言う。
    違えば、「うるう年でない」と、言う。
  )。
)。


数当てゲーム改

 前回作った数当てゲームをちょっと改良して、正解率を表示することで、よりゲームをスリリングにしてみました。
{数当てゲーム}

正解数=0
「5回勝負。」と、言う。
5回
  2の、乱数。{0〜1の乱数を、「それ」に得る}
  正解は、それ。

  ’ユーザーからの入力
  「半(はい)か丁(いいえ)か?」と、二択。
  もし、それ、はいならば、解答=1。違えば、解答=0。

  ’正解かどうか判定する
  もし、解答、正解ならば
    「当たり」と、言う。
    正解数=正解数+1。
  )。

  違えば、「はずれ。」と、言う。


’正解率の計算
正解率=整数((正解数÷5)×100)
「正解率は、{正解率}%」と、言う。

ゲーム改造のヒント
ゲームを、さらに、面白くするには、どうしたら良いでしょうか? ぜひ、改造して、血肉踊るゲームに、仕上げてみください。

戻る