【スクラッチ】じゃんけんゲームの作り方

ブロックの応用テクニック
Scratch星人
Scratch星人

コンピューターとの対戦型じゃんけんゲームを作ってみます。
考え方はプログラミングの基本になる要素があるので、ぜひ挑戦してみて下さい!

じゃんけんゲームに必要なもの

以下のものを用意して、じゃんけんゲームを作っていきます。

  • 自分と対戦相手(CPU)の キャラクター
  • それぞれに対するスクリプト
  • (せっかくなので)効果音

キャラクターを用意する

好きなスプライトを選びましょう(^_-)-☆
Scratch星人は「ネコと犬」にしました。

犬はもともと右を向いていました方が、向かい合わせにした方が対戦してるっぽく見えますよね!

犬の向きを-90にすると、逆さになってしまうので「オレンジの丸で囲われたマーク」をクリックして下さい。

スクリプトを組み立てる

変数ブロックを作る

変数ブロックを3つ作ります。
このブロックがゲームのカギを握ると言ってもいいくらい大切なものです!

変数の名前は分かりやすいものにしましょう。
Scratch星人が作ったブロックはこちらです。

  • 「ネコ」:自分の結果を表わすブロック(1Pなどでもいいかも)
  • 「犬さん」:相手を表わすブロック(CPUなどでもいいかも)
  • 「結果」:勝敗を表わすブロック(好きに決めてみて下さい)

グー・チョキ・パーを設定する

今回作るゲームでは、テンキー(数字のキー)をじゃんけんに割り当て、
「グー = 1」「チョキ = 2」「パー = 3」にします。

自分のキャラクターのスプライトに対して以下のスクリプトを設定してください。

これだけです!

あれっ?と思いませんか?
どこにも「グー・チョキ・パー」がありません。

でも大丈夫ですので安心してください(*^-^*)

ネコ(自分)のスクリプトを設定する

上の画像の通り作っていけば、ネコ(自分)側のスクリプトは完成なのですが、分かりにくいところや大切な部分を解説します。

【5行目】ネコ=0ではないまで待つ

グー・チョキ・パーを設定した「1~3」のキーが押されるまで待つ、と言う意味です。

【13行目】結果を犬さん-ネコにする

これは大切なブロックです。
分かりにくい時は書き出してみるのが良いかもしれません。
(ネコ目線で考えていきます)

犬がグー(= 1)の時
ネコ:グー(= 1):あいこ:1-1=0
ネコ:チョキ(= 2):負け:1-2=-1
ネコ:パー(= 3):勝ち:1-3=-2

犬がチョキ(= 2)の時
ネコ:グー(= 1):勝ち:2-1=1
ネコ:チョキ(= 2):あいこ:2-2=0
ネコ:パー(= 3):負け:2-3=-1

犬がパー(= 3)の時
ネコ:グー(= 1):負け:3-1=2
ネコ:チョキ(= 2):勝ち:3-2=1
ネコ:パー(= 3):あいこ:3-3=0

この結果を纏めると以下のようになります。

勝ち:「-2」と「1」
負け:「-1」と「2」
あいこ:「0」

【15行目から下】

13行目の結果をもとに「勝ち・負け・あいこ」を「変数」と「もし」のブロックを使って「勝ち負けの言葉」を出力します。

犬(対戦相手)のスクリプトを設定する

基本的な考え方はネコのスクリプトとあまり違いはありませんが、気を付ける点を解説します。

【6行目】犬さんを1から3までの乱数にする

犬さんの乱数を1~3にするということは、言い換えると「1」と「2」と「3」しか選ばれないということなので「グー・チョキ・パー」のいずれかが選択されます。
1.0から3.0としてしまうと少数で結果が返ってくるので注意です!)

【7行目】ネコ=0ではないまで待つ

ネコ(自分)がいずれかのキーを押すまで待つためのブロックです。
このブロックを入れないと、ネコがじゃんけんの手を決める前に犬が自分の手を言ってしまうので注意してください。

効果音をつけてみる

ゲーム中に流れるBGMと「勝ち」「負け」「あいこ」に連動した効果音をつけてみようと思います。

ネコのスプライトにスクリプトを以下のように追加していきます。

それぞれの音は好きなものを選んでみて下さいね(^_-)-☆

一番下に効果音とは関係ありませんが「もう一回じゃんけんを・・・」のブロックを追加したことで、何度でも繰り返しじゃんけんできるようになります。

まとめ

コンピューターと対戦出来るじゃんけんゲームの作り方について書いてみました。

変数の差で勝敗を判定する考え方は、プログラミングらしい思考だと思います。
この考え方を自分なりにアレンジして楽しんでみて下さい(^^♪

コメント

タイトルとURLをコピーしました