スクラッチプログラミング - じゃんけんゲームのつくりかた
コンピューターとじゃんけんをするプログラムをつくってみましょう。「コスチューム」と「メッセージ」のブロックをつかって、グーチョキパーで勝負(しょうぶ)できるようにプログラミングします。
サンプルさくひんであそんでみよう
今回(こんかい)は、自分(じぶん)とコンピューターが対戦(たいせん)する、じゃんけんのプログラムを紹介(しょうかい)します。
「じゃんけんする」ボタンをおしてはじめましょう。「グー」「チョキ」「パー」のボタンで、どれをだすかえらんでくださいね。
(みどりのはたをおして、スタートです。プロジェクトは、ScratchのPyxofyページでもごらんになれます。)
このきじをよむとわかること
- ボタンをクリックしてグーチョキパーをえらぶ方法(ほうほう)
- 相手(あいて)が自動(じどう)でグーチョキパーをだす方法(ほうほう)
- 「あいこ」「かち」「まけ」の結果(けっか)を表示(ひょうじ)する方法(ほうほう)
グー、チョキ、パー、をつくろう
最初(さいしょ)に、「じぶん」のスプライトを用意(ようい)しましょう。
- 「グー」「チョキ」「パー」のコスチュームをつくる
- コスチュームの名前(なまえ)を、「グー」「チョキ」「パー」にする
![自分のスプライトを作る 自分のスプライトを作る](https://www.pyxofy.com/content/images/2022/10/21-01-scratch-programming-rock-paper-scissors.png)
つぎに、「あいて」のスプライトをつくります。
- 「じぶん」のスプライトを右(みぎ)クリックして、複製(ふくせい)する
- スプライトの名前(なまえ)を、「あいて」にする
- 「上下反転(じょうげはんてん)」をクリックして、手(て)のむきを逆(ぎゃく)にする
![相手のスプライトを作る 相手のスプライトを作る](https://www.pyxofy.com/content/images/2022/10/21-02-scratch-programming-rock-paper-scissors.png)
「じぶん」と「あいて」の位置(いち)をきめましょう。
- 「じぶん」をステージの下(した)のほうに表示(ひょうじ)する
![自分の座標を指定する 自分の座標を指定する](https://www.pyxofy.com/content/images/2022/10/21-03-scratch-programming-rock-paper-scissors.png)
- 「あいて」をステージの上(うえ)のほうに表示(ひょうじ)する
![相手の座標を指定する 相手の座標を指定する](https://www.pyxofy.com/content/images/2022/10/21-04-scratch-programming-rock-paper-scissors.png)
グーチョキパーのスプライトができました!
ボタンでえらぼう
グーチョキパーのどれにするかは、ボタンできめます。ボタンのスプライトを3つつくって、ならべましょう。ボタンがクリックされたら メッセージ をおくって、「じぶん」のコスチュームがかわるようにしますよ。
- 「グー」のボタンがおされたら、「グー」をおくる
![「このスプライトが押されたとき」ブロックの下に「グーを送る」ブロックをつなげる 「このスプライトが押されたとき」ブロックの下に「グーを送る」ブロックをつなげる](https://www.pyxofy.com/content/images/2022/10/21-05-scratch-programming-rock-paper-scissors.png)
- 「チョキ」のボタンがおされたら、「チョキ」をおくる
![「このスプライトが押されたとき」ブロックの下に「チョキを送る」ブロックをつなげる 「このスプライトが押されたとき」ブロックの下に「チョキを送る」ブロックをつなげる](https://www.pyxofy.com/content/images/2022/10/21-06-scratch-programming-rock-paper-scissors.png)
- 「パー」のボタンがおされたら、「パー」をおくる
![「このスプライトが押されたとき」ブロックの下に「パーを送る」ブロックをつなげる 「このスプライトが押されたとき」ブロックの下に「パーを送る」ブロックをつなげる](https://www.pyxofy.com/content/images/2022/10/21-07-scratch-programming-rock-paper-scissors.png)
メッセージをうけとるのは、「じぶん」です。
- メッセージをうけとったとき、コスチュームをかえる
![それぞれのボタンからのメッセージを受け取ったとき、そのコスチュームにする それぞれのボタンからのメッセージを受け取ったとき、そのコスチュームにする](https://www.pyxofy.com/content/images/2022/10/21-08-scratch-programming-rock-paper-scissors.png)
ボタンをクリックして、グーチョキパーをえらべるようになりました!
あいてとしょうぶする
「じぶん」のコスチュームがグーチョキパーのどれかにかわるとき、「あいて」のコスチュームも自動的(じどうてき)にかえて、勝負(しょうぶ)できるようにしましょう。
コスチュームをかえるタイミングをあわせるために、「あいて」にメッセージおくります。3つのボタンに、「しょうぶをおくる」ブロックを追加(ついか)してください。
- ボタンがおされたあと、メッセージをおくる
![「グー、チョキ、パーを送る」ブロックの下に「勝負を送る」ブロックをつなげる 「グー、チョキ、パーを送る」ブロックの下に「勝負を送る」ブロックをつなげる](https://www.pyxofy.com/content/images/2022/10/21-09-scratch-programming-rock-paper-scissors.png)
あいてのグーチョキパーをきめよう
「あいて」が、それぞれのボタンからおくられるメッセージ、「しょうぶ」をうけとります。コスチュームを乱数(らんすう)にして、グーチョキパーのどれになるかわからないようにしましょう。
- メッセージをうけとったとき、コスチュームを乱数(らんすう)にする
![「勝負を受け取ったとき」ブロックの下に「コスチュームを1から3までの乱数にする」ブロックをつなげる 「勝負を受け取ったとき」ブロックの下に「コスチュームを1から3までの乱数にする」ブロックをつなげる](https://www.pyxofy.com/content/images/2022/10/21-10-scratch-programming-rock-paper-scissors.png)
ボタンをクリックするたびに、「じぶん」と「あいて」のコスチュームがかわって、じゃんけんできるようになりました!
![Pyxofyメンバー登録はこちらをクリック! Pyxofyメンバー登録バナー](https://www.pyxofy.com/content/images/2022/10/pyxofy-sign-up-banner-jp-800-2.png)
けっかをひょうじするじゅんびをしよう
じゃんけんできるようになったら、結果(けっか)が表示(ひょうじ)されるようにしていきますよ。ここからは、メッセージでのやりとりが、さらにおおくなります。スプライト同士(どうし)がどのように関連(かんれん)してうごくのか、しっかり確認(かくにん)しながらプログラミングしていきましょう。
「ボタン」をかくす
グーチョキパーをえらんだあと、ボタンをクリックできないように、3つのボタンをかくします。
「このスプライトがおされたとき」ブロックをつかうと、スプライトはいつでもクリックできてしまいます。結果(けっか)を確認(かくにん)しているあいだに、グーチョキパーをかえられないようにするためです。
- かくすメッセージをおくって、メッセージをうけとったとき、かくす
![「勝負を送る」ブロックの下に「隠すを送る」ブロックをつなげる。「隠すを受け取ったとき」ブロックの下に「隠す」ブロックをつなげる。 「勝負を送る」ブロックの下に「隠すを送る」ブロックをつなげる。「隠すを受け取ったとき」ブロックの下に「隠す」ブロックをつなげる。](https://www.pyxofy.com/content/images/2022/10/21-11-scratch-programming-rock-paper-scissors.png)
「かくす」ブロックをつかうときは、最初(さいしょ)はからなず表示(ひょうじ)されるようにしておくのを、わすれないようにしましょう。
- 最初(さいしょ)は表示(ひょうじ)する
![緑の旗が押されたとき、表示する 緑の旗が押されたとき、表示する](https://www.pyxofy.com/content/images/2022/10/21-12-scratch-programming-rock-paper-scissors.png)
「けっか」のスプライトをつくる
結果(けっか)を表示(ひょうじ)するためのスプライト、「けっか」を用意(ようい)しましょう。
- 「あいこ」「かち」「まけ」のコスチュームをつくる
- コスチュームの名前(なまえ)を、「あいこ」「かち」「まけ」にする
![結果のスプライトを作る 結果のスプライトを作る](https://www.pyxofy.com/content/images/2022/10/21-13-scratch-programming-rock-paper-scissors.png)
最初(さいしょ)、じゃんけんするまえは、結果(けっか)はみえなくしておきます。表示(ひょうじ)する場所(ばしょ)はきめておきましょう。
- 最初(さいしょ)はかくす
![隠して、座標をステージ中央にしておく 隠して、座標をステージ中央にしておく](https://www.pyxofy.com/content/images/2022/10/21-14-scratch-programming-rock-paper-scissors.png)
「あいて」がメッセージをおくる
「あいて」がグーチョキパーのどれかにコスチュームをかえたあと、結果(けっか)を表示(ひょうじ)するためのメッセージ、「けっかをひょうじ」をおくります。
- コスチュームをかえたあと、メッセージをおくる
![「コスチュームを乱数にする」ブロックの下に「結果を表示を送る」ブロックをつなげる 「コスチュームを乱数にする」ブロックの下に「結果を表示を送る」ブロックをつなげる](https://www.pyxofy.com/content/images/2022/10/21-15-scratch-programming-rock-paper-scissors.png)
「けっか」がメッセージをうけとる
「あいて」からのメッセージをうけとるのは、「けっか」です。
- メッセージをうけとったとき、表示(ひょうじ)する
![「結果を表示」を受け取ったとき、表示する 「結果を表示」を受け取ったとき、表示する](https://www.pyxofy.com/content/images/2022/10/21-16-scratch-programming-rock-paper-scissors.png)
ここまでで、結果(けっか)を表示(ひょうじ)するための準備(じゅんび)ができました!
けっかをかくにんしよう
「けっか」にブロックを追加(ついか)していきますよ。表示(ひょうじ)するコスチュームを、「あいこ」「かち」「まけ」のどれにするかをきめられるようにしましょう。
- メッセージをうけとったとき、条件(じょうけん)をわける
![「もし〜なら、でなければ」ブロックを追加する 「もし〜なら、でなければ」ブロックを追加する](https://www.pyxofy.com/content/images/2022/10/21-17-scratch-programming-rock-paper-scissors.png)
どれを表示(ひょうじ)するかは、「じぶん」と「あいて」のコスチュームの名前(なまえ)を確認(かくにん)してきめます。
- 「しらべる」のなかにあるブロックをつかう
![「自分のコスチューム名」ブロックと「相手のコスチューム名」ブロック 「自分のコスチューム名」ブロックと「相手のコスチューム名」ブロック](https://www.pyxofy.com/content/images/2022/10/21-18-scratch-programming-rock-paper-scissors.png)
あいこ
「じぶん」と「あいて」のコスチュームの名前(なまえ)がおなじだったら、「あいこ」です。
- もしコスチューム名(めい)がおなじなら、コスチュームを「あいこ」にする
![あいこの条件と表示する結果 あいこの条件と表示する結果](https://www.pyxofy.com/content/images/2022/10/21-19-scratch-programming-rock-paper-scissors.png)
じぶんが「グー」のとき
「じぶん」が「グー」のときの「あいて」のコスチュームを確認(かくにん)して、「かち」と「まけ」のどちらを表示(ひょうじ)するかをきめます。「でなければ」のなかにブロックを追加(ついか)してください。
- 「じぶん」が「グー」のとき
- 「あいて」が「チョキ」なら、コスチュームを「かち」にする
- でなければ(「あいて」が「パー」なら)、コスチュームを「まけ」にする
![自分がグーを出したときの勝敗の条件と表示する結果 自分がグーを出したときの勝敗の条件と表示する結果](https://www.pyxofy.com/content/images/2022/10/21-20-scratch-programming-rock-paper-scissors.png)
じぶんが「チョキ」のとき
「じぶん」が「チョキ」のときも、おなじように「あいて」のコスチュームを確認(かくにん)して、表示(ひょうじ)する「けっか」のコスチュームをきめますよ。
- 「じぶん」が「チョキ」のとき
- 「あいて」が「パー」なら、コスチュームを「かち」にする
- でなければ(「あいて」が「グー」なら)、コスチュームを「まけ」にする
![自分がチョキを出したときの勝敗の条件と表示する結果 自分がチョキを出したときの勝敗の条件と表示する結果](https://www.pyxofy.com/content/images/2022/10/21-21-scratch-programming-rock-paper-scissors.png)
じぶんが「パー」のとき
「じぶん」が「パー」のときも、おなじです。
- 「じぶん」が「パー」のとき
- 「あいて」が「グー」なら、コスチューム「かち」にする
- でなければ(「あいて」が「チョキ」なら)、コスチュームを「まけ」にする
![自分がパーを出したときの勝敗の条件と表示する結果 自分がパーを出したときの勝敗の条件と表示する結果](https://www.pyxofy.com/content/images/2022/10/21-22-scratch-programming-rock-paper-scissors.png)
じゃんけんの結果(けっか)が、ステージ中央(ちゅうおう)に表示(ひょうじ)されるようになりました!
![じゃんけんした後、結果が表示される じゃんけんした後、結果が表示される](https://www.pyxofy.com/content/images/2022/10/21-23-scratch-programming-rock-paper-scissors.png)
もういちどじゃんけんしよう
結果(けっか)が表示(ひょうじ)されたあと、くりかえしじゃんけんできるようにしましょう。結果(けっか)をしばらく表示(ひょうじ)したら、みえなくして、もういちどじゃんけんするためのメッセージをおくります。
- 2びょうまってから、かくして、メッセージをおくる
![表示し終わったら「じゃんけんする」メッセージを送る 表示し終わったら「じゃんけんする」メッセージを送る](https://www.pyxofy.com/content/images/2022/10/21-24-scratch-programming-rock-paper-scissors.png)
メッセージをうけとるのは、グーチョキパーの3つのボタンです。ふたたび表示(ひょうじ)して、クリックできるようにしましょう。
- メッセージをうけとったとき、表示(ひょうじ)する
![「じゃんけんするを受け取ったとき」ブロックの下に「表示する」ブロックをつなげる 「じゃんけんするを受け取ったとき」ブロックの下に「表示する」ブロックをつなげる](https://www.pyxofy.com/content/images/2022/10/21-25-scratch-programming-rock-paper-scissors.png)
プログラムかんせい
じゃんけんのプログラムが完成(かんせい)です!
![自分のプログラム 自分のプログラム](https://www.pyxofy.com/content/images/2022/10/21-26-scratch-programming-rock-paper-scissors.png)
![相手のプログラム 相手のプログラム](https://www.pyxofy.com/content/images/2022/10/21-27-scratch-programming-rock-paper-scissors.png)
![グーのボタンのプログラム グーのボタンのプログラム](https://www.pyxofy.com/content/images/2022/10/21-28-scratch-programming-rock-paper-scissors.png)
![チョキのボタンのプログラム チョキのボタンのプログラム](https://www.pyxofy.com/content/images/2022/10/21-29-scratch-programming-rock-paper-scissors.png)
![パーのボタンのプログラム パーのボタンのプログラム](https://www.pyxofy.com/content/images/2022/10/21-30-scratch-programming-rock-paper-scissors.png)
![結果のプログラム 結果のプログラム](https://www.pyxofy.com/content/images/2022/10/21-31-scratch-programming-rock-paper-scissors.png)
![](https://www.pyxofy.com/content/images/2024/07/cover-page-320-4.png)
「きょうからはじめるスクラッチプログラミング入門」Pyxofy (著)
Pyxofy が Scratch の基本をまとめた電子書籍を出版しました。
Kindle・Apple Books からご購入ください。
まとめ
今回(こんかい)は、コンピューターと対戦(たいせん)するじゃんけんのプログラムを紹介(しょうかい)しました。
グーチョキパーをだす方法(ほうほう)は、メッセージをきっかけにコスチュームをかえるだけなので、かんがえかたはシンプルですね。結果(けっか)を表示(ひょうじ)するためにはメッセージのやりとりがおおくなるので、スプライト同士(どうし)がどう連動(れんどう)するか、ゆっくりかんがえながらつくってみてください。
最後まで読んでいただき、ありがとうございます。この記事をシェアしてくれると嬉しいです!
かんれんきじ
![](https://www.pyxofy.com/content/images/2021/04/article-image-1.jpg)