【レシピ2】もし○○なら?プログラムでルールを教えてジャンケンしようぜ!

ルーレットだけじゃなくて、
もっと作(つく)りたいな!

では、ジャンケンをプログラムして作(つく)ってみるかの。

ワワン?《コンピューターにジャンケンをさせるには、
どうすればいいかな?》

かんたんかんたん!
「コンピューター、ジャンケンしようぜ!」って命令(めいれい)!

!?

コンピューターはジャンケンを知(し)ってるの!?

ジャンケンだぜ?
だれだって知(し)ってるジョーシキじゃん!
コンピューターなら知(し)ってて当然(とうぜん)じゃん。

小(こ)さい子(こ)や、ジャンケンがない国(くに)から来(き)た人(ひと)は知(し)らないでしょ。

そうじゃよ。
コンピューターもジャンケンなんて知(し)らんぞい。

ええっ!?ウソだろ!?

ワンワン!《それを教(おし)えるのが、「プログラミング」なんだよ!》

コンピューターがジャンケンを知(し)らない小(ちい)さい子(こ)だと思(おも)って、
やさしくルールを教(おし)えればいいんだね。

えーっと、グーならチョキに勝(か)って、パーだったら負(ま)ける・・・
どうやってこんなルールを教(おし)えればいいんだ?

そういう場合(ばあい)は”条件分岐(じょうけんぶんき)”じゃよ!
「もし〜なら」を使(つか)うのじゃ!

マックスのワン!ポイント

条件分岐(じょうけんぶんき)でルールを教(おし)えよう

スポーツやゲームには、いろいろなルールがあるよね。
野球(やきゅう)で、もし3回(かい)アウトになったらチェンジ!
ドッジボールで、もしボールに当(あ)てられたらアウト、
だけどもし地面(じめん)に落(お)ちる前(まえ)にキャッチできればセーフ!
そんな、「もし○○なら○○」をコンピューターに教(おし)えるのが条件分岐(じょうけんぶんき)なんだ。
これをマスターすれば、もうプログラミングの半分(はんぶん)はできたも同然(どうぜん)かも!?

条件分岐(じょうけんぶんき)でジャンケンゲーム!

じゃんけんゲームを作(つく)ってみたぞ!
「グー」「チョキ」「パー」の3つのボタンから、
出(だ)したい手(て)のボタンを押(お)してみよう。
同(おな)じ手(て)が出(で)たらもちろん「あいこ」。

コンピューターは正々堂々(せいせいどうどう)、いかさまはしていないぞ。
きみは何回連続(なんかいれんぞく)でコンピューターに勝(か)てるかな?

※scratchが開きます

作るときのコツ

ジャンケンは、「かち」「まけ」「あいこ」の3つの条件(じょうけん)があるね。
だから、「もし〜なら」も3つ必要(ひつよう)。
だから3段重(だんがさ)ねになっているぞ。

この条件分岐(じょうけんぶんき)は、シンプルに組(く)むこと(こ)が大切(たいせつ)。
今回(こんかい)はみんながわかりやすい組(く)み方をしているけれど、
じつはもっとシンプルに組(く)む方法(ほうほう)もあるんだ。
プログラミングに慣(なれ)れてきたら挑戦(ちょうせん)してみよう。

条件(じょうけん)の例外(れいがい)って!?

ジャンケンにはグー・チョキ・パーの3つしか無(な)いけれども、
もしグー・チョキ・パー以外(いがい)の手(て)が出(だ)されてしまったらどうする?
もちろん無視(むし)をすればいいのだけれど、そういった万(まん)が一(いち)の例外(れいがい)も考(かんが)えて組(く)んでおこう。
例(たと)えば、「もしグーなら」「もしチョキなら」「それ以外なら」と条件を組んでしまうと、
グー・チョキ・パー以外(いがい)の手(て)が出(だ)されてもパーになってしまうぞ。
予想外(よそうがい)の事(こと)が起(お)こるのがプログラム!油断(ゆだん)は禁物(きんもつ)だ!

ひみつのポイント

ジャンケンで結果(けっか)が出(で)ている間(あいだ)はボタンが押(し)せなくなっているのだけれど、
これは「○秒待(びょうま)つ」ブロックや「〜と○秒表示(びょうひょうじ)」ブロックを使(つか)っているんだ。
その待(ま)ち時間(じかん)や表示中(ひょうじちゅう)は止(と)まってくれるぞ。
さらに、「○秒待(びょうま)つ」ブロックで効果音(こうかおん)のタイミングまで微調整(びちょうせい)!
こだわりの調整(ちょうせい)にも使(つか)える、実(じつ)はちょっと便利(べんり)なブロックだ。

条件分岐(じょうけんぶんき)はこんなことに使(つか)われている!!

あらゆるプログラム自体(じたい)が条件分岐(じょうけんぶんき)のカタマリみたいなものなので、
条件分岐(じょうけんぶんき)がないものなんて、少(すく)ないかも?

ゲーム:

プレイヤーの選択(せんたく)によって物語(ものがたり)やエンディングが変(か)わるのは、一番(いちばん)わかりやすい条件分岐(じょうけんぶんき)だね。

家(いえ)の中(なか)、まちの中(なか):

設定(せってい)した温度(おんど)を超(こ)えたらスイッチが切(き)り替(か)わるエアコン、
時間(じかん)が来(き)たら音(おと)がなるアラーム、
定期券(ていきけん)が有効(ゆうこう)なら通(とお)してくれるけど、期限(きげん)が切(き)れていたら通(とお)してくれない駅(えき)の改札(かいさつ)や、
入(い)れたお金(かね)が値段以上(ねだんいじょう)ならジュースが買(か)えるようになる自動販売機(じどうはんばいき)など、
いろいろなものに条件分岐(じょうけんぶんき)は使(つか)われているよ。

条件分岐(じょうけんぶんき)ってむずかしそうな

言葉(ことば)だけどなんとなくわかってきたかも!

これを使(つか)ってもっと新(あたら)しいプログラミングをつくるぞー!

帰(かえ)ったら早速(さっそく)プログラミングだ!

うん!でも今日(きょう)は明日(あした)の小(しょう)テストのために、

帰(かえ)ったら勉強(べんきょう)しようかな

え! 明日(あした)って小(しょう)テストあったっけ…

もしかして忘(わす)れてた?

「もしミチタがテストで100点(てん)を取(と)ったなら」…

取(と)ったなら…?

「その日(ひ)の夜(よる)ご飯(はん)はハンバーグになる」…ぞい

今日(きょう)は帰(かえ)ったら勉強(べんきょう)する!!!!

ワン!《がんばれ~!》