スクラッチプログラミング - じゃんけんゲームのつくりかた

コンピューターとじゃんけんをするプログラムをつくってみましょう。「コスチューム」と「メッセージ」のブロックをつかって、グーチョキパーで勝負(しょうぶ)できるようにプログラミングします。

スクラッチプログラミング - じゃんけんゲームのつくりかた
Photo by Fadilah Im / Unsplash

サンプルさくひんであそんでみよう

今回(こんかい)は、自分(じぶん)とコンピューターが対戦(たいせん)する、じゃんけんのプログラムを紹介(しょうかい)します。

「じゃんけんする」ボタンをおしてはじめましょう。「グー」「チョキ」「パー」のボタンで、どれをだすかえらんでくださいね。

(みどりのはたをおして、スタートです。プロジェクトは、ScratchのPyxofyページでもごらんになれます。)

このきじをよむとわかること

  • ボタンをクリックしてグーチョキパーをえらぶ方法(ほうほう)
  • 相手(あいて)が自動(じどう)でグーチョキパーをだす方法(ほうほう)
  • 「あいこ」「かち」「まけ」の結果(けっか)を表示(ひょうじ)する方法(ほうほう)

グー、チョキ、パー、をつくろう

最初(さいしょ)に、「じぶん」のスプライトを用意(ようい)しましょう。

  • 「グー」「チョキ」「パー」のコスチュームをつくる
  • コスチュームの名前(なまえ)を、「グー」「チョキ」「パー」にする
自分のスプライトを作る
自分のスプライトを作る

つぎに、「あいて」のスプライトをつくります。

  • 「じぶん」のスプライトを右(みぎ)クリックして、複製(ふくせい)する
  • スプライトの名前(なまえ)を、「あいて」にする
  • 「上下反転(じょうげはんてん)」をクリックして、手(て)のむきを逆(ぎゃく)にする
相手のスプライトを作る
相手のスプライトを作る

「じぶん」と「あいて」の位置(いち)をきめましょう。

  • 「じぶん」をステージの下(した)のほうに表示(ひょうじ)する
自分の座標を指定する
自分の座標を指定する
  • 「あいて」をステージの上(うえ)のほうに表示(ひょうじ)する
相手の座標を指定する
相手の座標を指定する

グーチョキパーのスプライトができました!

ボタンでえらぼう

グーチョキパーのどれにするかは、ボタンできめます。ボタンのスプライトを3つつくって、ならべましょう。ボタンがクリックされたら メッセージ をおくって、「じぶん」のコスチュームがかわるようにしますよ。

  • 「グー」のボタンがおされたら、「グー」をおくる
「このスプライトが押されたとき」ブロックの下に「グーを送る」ブロックをつなげる
「このスプライトが押されたとき」ブロックの下に「グーを送る」ブロックをつなげる
  • 「チョキ」のボタンがおされたら、「チョキ」をおくる
「このスプライトが押されたとき」ブロックの下に「チョキを送る」ブロックをつなげる
「このスプライトが押されたとき」ブロックの下に「チョキを送る」ブロックをつなげる
  • 「パー」のボタンがおされたら、「パー」をおくる
「このスプライトが押されたとき」ブロックの下に「パーを送る」ブロックをつなげる
「このスプライトが押されたとき」ブロックの下に「パーを送る」ブロックをつなげる

メッセージをうけとるのは、「じぶん」です。

  • メッセージをうけとったとき、コスチュームをかえる
それぞれのボタンからのメッセージを受け取ったとき、そのコスチュームにする
それぞれのボタンからのメッセージを受け取ったとき、そのコスチュームにする

ボタンをクリックして、グーチョキパーをえらべるようになりました!

あいてとしょうぶする

「じぶん」のコスチュームがグーチョキパーのどれかにかわるとき、「あいて」のコスチュームも自動的(じどうてき)にかえて、勝負(しょうぶ)できるようにしましょう。

コスチュームをかえるタイミングをあわせるために、「あいて」にメッセージおくります。3つのボタンに、「しょうぶをおくる」ブロックを追加(ついか)してください。

  • ボタンがおされたあと、メッセージをおくる
「グー、チョキ、パーを送る」ブロックの下に「勝負を送る」ブロックをつなげる
「グー、チョキ、パーを送る」ブロックの下に「勝負を送る」ブロックをつなげる

あいてのグーチョキパーをきめよう

「あいて」が、それぞれのボタンからおくられるメッセージ、「しょうぶ」をうけとります。コスチュームを乱数(らんすう)にして、グーチョキパーのどれになるかわからないようにしましょう。

  • メッセージをうけとったとき、コスチュームを乱数(らんすう)にする
「勝負を受け取ったとき」ブロックの下に「コスチュームを1から3までの乱数にする」ブロックをつなげる
「勝負を受け取ったとき」ブロックの下に「コスチュームを1から3までの乱数にする」ブロックをつなげる

ボタンをクリックするたびに、「じぶん」と「あいて」のコスチュームがかわって、じゃんけんできるようになりました!


Pyxofyメンバー登録バナー
Pyxofyメンバー登録はこちらをクリック!

けっかをひょうじするじゅんびをしよう

じゃんけんできるようになったら、結果(けっか)が表示(ひょうじ)されるようにしていきますよ。ここからは、メッセージでのやりとりが、さらにおおくなります。スプライト同士(どうし)がどのように関連(かんれん)してうごくのか、しっかり確認(かくにん)しながらプログラミングしていきましょう。

「ボタン」をかくす

グーチョキパーをえらんだあと、ボタンをクリックできないように、3つのボタンをかくします。

「このスプライトがおされたとき」ブロックをつかうと、スプライトはいつでもクリックできてしまいます。結果(けっか)を確認(かくにん)しているあいだに、グーチョキパーをかえられないようにするためです。

  • かくすメッセージをおくって、メッセージをうけとったとき、かくす
「勝負を送る」ブロックの下に「隠すを送る」ブロックをつなげる。「隠すを受け取ったとき」ブロックの下に「隠す」ブロックをつなげる。
「勝負を送る」ブロックの下に「隠すを送る」ブロックをつなげる。「隠すを受け取ったとき」ブロックの下に「隠す」ブロックをつなげる。

「かくす」ブロックをつかうときは、最初(さいしょ)はからなず表示(ひょうじ)されるようにしておくのを、わすれないようにしましょう。

  • 最初(さいしょ)は表示(ひょうじ)する
緑の旗が押されたとき、表示する
緑の旗が押されたとき、表示する

「けっか」のスプライトをつくる

結果(けっか)を表示(ひょうじ)するためのスプライト、「けっか」を用意(ようい)しましょう。

  • 「あいこ」「かち」「まけ」のコスチュームをつくる
  • コスチュームの名前(なまえ)を、「あいこ」「かち」「まけ」にする
結果のスプライトを作る
結果のスプライトを作る

最初(さいしょ)、じゃんけんするまえは、結果(けっか)はみえなくしておきます。表示(ひょうじ)する場所(ばしょ)はきめておきましょう。

  • 最初(さいしょ)はかくす
隠して、座標をステージ中央にしておく
隠して、座標をステージ中央にしておく

「あいて」がメッセージをおくる

「あいて」がグーチョキパーのどれかにコスチュームをかえたあと、結果(けっか)を表示(ひょうじ)するためのメッセージ、「けっかをひょうじ」をおくります。

  • コスチュームをかえたあと、メッセージをおくる
「コスチュームを乱数にする」ブロックの下に「結果を表示を送る」ブロックをつなげる
「コスチュームを乱数にする」ブロックの下に「結果を表示を送る」ブロックをつなげる

「けっか」がメッセージをうけとる

「あいて」からのメッセージをうけとるのは、「けっか」です。

  • メッセージをうけとったとき、表示(ひょうじ)する
「結果を表示」を受け取ったとき、表示する
「結果を表示」を受け取ったとき、表示する

ここまでで、結果(けっか)を表示(ひょうじ)するための準備(じゅんび)ができました!

けっかをかくにんしよう

「けっか」にブロックを追加(ついか)していきますよ。表示(ひょうじ)するコスチュームを、「あいこ」「かち」「まけ」のどれにするかをきめられるようにしましょう。

  • メッセージをうけとったとき、条件(じょうけん)をわける
「もし〜なら、でなければ」ブロックを追加する
「もし〜なら、でなければ」ブロックを追加する

どれを表示(ひょうじ)するかは、「じぶん」と「あいて」のコスチュームの名前(なまえ)を確認(かくにん)してきめます。

  • 「しらべる」のなかにあるブロックをつかう
「自分のコスチューム名」ブロックと「相手のコスチューム名」ブロック
「自分のコスチューム名」ブロックと「相手のコスチューム名」ブロック

あいこ

「じぶん」と「あいて」のコスチュームの名前(なまえ)がおなじだったら、「あいこ」です。

  • もしコスチューム名(めい)がおなじなら、コスチュームを「あいこ」にする
あいこの条件と表示する結果
あいこの条件と表示する結果

じぶんが「グー」のとき

「じぶん」が「グー」のときの「あいて」のコスチュームを確認(かくにん)して、「かち」と「まけ」のどちらを表示(ひょうじ)するかをきめます。「でなければ」のなかにブロックを追加(ついか)してください。

  • 「じぶん」が「グー」のとき
  • 「あいて」が「チョキ」なら、コスチュームを「かち」にする
  • でなければ(「あいて」が「パー」なら)、コスチュームを「まけ」にする
自分がグーを出したときの勝敗の条件と表示する結果
自分がグーを出したときの勝敗の条件と表示する結果

じぶんが「チョキ」のとき

「じぶん」が「チョキ」のときも、おなじように「あいて」のコスチュームを確認(かくにん)して、表示(ひょうじ)する「けっか」のコスチュームをきめますよ。

  • 「じぶん」が「チョキ」のとき
  • 「あいて」が「パー」なら、コスチュームを「かち」にする
  • でなければ(「あいて」が「グー」なら)、コスチュームを「まけ」にする
自分がチョキを出したときの勝敗の条件と表示する結果
自分がチョキを出したときの勝敗の条件と表示する結果

じぶんが「パー」のとき

「じぶん」が「パー」のときも、おなじです。

  • 「じぶん」が「パー」のとき
  • 「あいて」が「グー」なら、コスチューム「かち」にする
  • でなければ(「あいて」が「チョキ」なら)、コスチュームを「まけ」にする
自分がパーを出したときの勝敗の条件と表示する結果
自分がパーを出したときの勝敗の条件と表示する結果

じゃんけんの結果(けっか)が、ステージ中央(ちゅうおう)に表示(ひょうじ)されるようになりました!

じゃんけんした後、結果が表示される
じゃんけんした後、結果が表示される

もういちどじゃんけんしよう

結果(けっか)が表示(ひょうじ)されたあと、くりかえしじゃんけんできるようにしましょう。結果(けっか)をしばらく表示(ひょうじ)したら、みえなくして、もういちどじゃんけんするためのメッセージをおくります。

  • 2びょうまってから、かくして、メッセージをおくる
表示し終わったら「じゃんけんする」メッセージを送る
表示し終わったら「じゃんけんする」メッセージを送る

メッセージをうけとるのは、グーチョキパーの3つのボタンです。ふたたび表示(ひょうじ)して、クリックできるようにしましょう。

  • メッセージをうけとったとき、表示(ひょうじ)する
「じゃんけんするを受け取ったとき」ブロックの下に「表示する」ブロックをつなげる
「じゃんけんするを受け取ったとき」ブロックの下に「表示する」ブロックをつなげる

プログラムかんせい

じゃんけんのプログラムが完成(かんせい)です!

自分のプログラム
自分のプログラム
相手のプログラム
相手のプログラム
グーのボタンのプログラム
グーのボタンのプログラム
チョキのボタンのプログラム
チョキのボタンのプログラム
パーのボタンのプログラム
パーのボタンのプログラム
結果のプログラム
結果のプログラム

まとめ

今回(こんかい)は、コンピューターと対戦(たいせん)するじゃんけんのプログラムを紹介(しょうかい)しました。

グーチョキパーをだす方法(ほうほう)は、メッセージをきっかけにコスチュームをかえるだけなので、かんがえかたはシンプルですね。結果(けっか)を表示(ひょうじ)するためにはメッセージのやりとりがおおくなるので、スプライト同士(どうし)がどう連動(れんどう)するか、ゆっくりかんがえながらつくってみてください。

かんれんきじ

スクラッチプログラミング - コスチュームのつかいかた
コスチュームの基本的(きほんてき)なつかいかたをしょうかいします。コスチュームとは、スプライトの見た目のことです。コスチュームをつかうと、Scratch (スクラッチ)でアニメーションをつくれるようになりますよ。
スクラッチプログラミング - 「メッセージ」でタイミングをあわせよう
「メッセージ」は、ゲームやアニメーションをつくるときによくつかわれるブロックです。スプライト同士(どうし)で「メッセージ」をおくったりうけとったりして、うごきのタイミングをあわせることができますよ。

『Start Here - Scratch (スクラッチ)』では、Scratchの基本(きほん)から、さまざまなゲームやアニメーションなどの記事(きじ)を、レベルべつで見ることができます。

Start Here - Scratch (スクラッチ)
Scratch (スクラッチ)記事(きじ)のレベル別一覧です。初級、中級、上級、拡張機能にわけてまとめました。
スクラッチプログラミング - ebook プレビューの紹介です
Pyxofyで公開してきたスクラッチの内容をebookとしてお届けします。ただいま鋭意作成中!今回はそのプレビュー版のご紹介です。

最後まで読んでいただき、ありがとうございます。この記事をシェアしてくれると嬉しいです!