夏休み、初めてのScratch体験しませんか?数字当てゲームを作ってみました

小中学校の夏休みももう半分過ぎてしまいましたね(^_^;。八王子CoderDojoでは毎回簡単なブロックを組み合わせてゲームを作ることができるScratchを使って、みなさん思い思いのゲームを作っています。
子供だけでなく大人もゲームを作る体験は楽しいのでお子さんのいる方もそうでない方もScratchでゲームを作る体験をされることをお勧めします!今回はちょっと複雑な数字当てゲームを作ってみたのでそれについて解説してみます。

Scratchの始め方

Scratchの基本的な登録方法などについては

12月に子どものためのプログラミングイベント「第1回 CoderDojo 八王子」を開催することとなりました(^^)/ CoderDojo(コーダー道場)とは小中学生のための

こちらに書きましたので、ご参照ください。Flashが動くブラウザがあればそれだけで使うことができるので簡単に始めることができます(^^)/

数字当てゲームとは?

私が中学生の頃、授業が自習になるとよくこの数字当てゲームをしていました。マスターマインドともいうゲームはあらかじめ決められている4桁の数字を当てるというゲームです。

ルールとして

・あらかじめ決まっている4桁の数字はすべてが違う数字
当てる側は4桁の数字を申告する。そのとき同じ数字を使わない
・当てられる側は当てる側が出した数字に対して桁と数字が合っている数と数字だけが合っている数を知らせる

というものでした。今回Scratchで作るにあたってちょっとルールを単純化しました。「当てる側は4桁の数字を申告する。そのとき同じ数字を使わない」はなしにして、当てられる側が教えるのもどの数字がどのように合っているかを色で教えてあげるようにしました。

このルールですとだいたいの場合5回以内に当たるので5回トライして当たらなければ失敗、というルールにしました。

作った数字当てゲームはこちら↓
     

緑色の旗をクリックしてスタートします。赤色の数字をクリックすると数字が+1されますので、4桁の数字を変えてから、GO をクリックして答え合わせをします。
   

Scratchの中身の解説

Scratchは中身を全部見ることができます。プロジェクトは こちら になります。こちらの 中身を見る をクリックすればどのような作りでこの数字当てが作られているかすべて見ることができます。

ですので解説といってもなんなんですが(^_^;、その中でここはちょっと工夫したな~というところについて書いてみます。

正解の4桁の数字を作る

正解の4桁の数字を作るときの考え方は、

・4桁の数字を作る場合にすべての桁の数字を異なるものにしたかったので、4つの変数を作る
0から9までの乱数を1桁目から当てはめていく
2桁目以降はそれまでの桁で使われている数字でない乱数、になるまでループする

という感じです。

4桁分の変数を作るのは

なんらかのスプライトのスクリプトで データ>変数を作る をクリックして

no1~no4まで、4つの変数をすべてのスプライト用で作っておきます

次に

ステージ の

スクリプト

こんな感じのブロックをセットします。基本的に0から9までの乱数を作ってセットします。2桁目以降はそれまで使われている数字でない数字になるまでループしてセットします。これで4桁すべてが異なる4桁の数字ができます。

答えの4桁部分

答えの4桁部分をどう表現しようかと思いましたが、外れはで小さい数字、数字だけがあたっているときは赤紫色のやや大きい数字、桁も数字もあたっているときに水色の大きな数字にして表現してみました。

最初は全部0の赤い数字の状態です。この数字をクリックすると+1されます。GOを押すことで答え合わせがされます。

答えの数字のコスチューム

コスチュームタブライブラリーからコスチュームを選択をクリックして

ちょっと省略しましたが、0から9までの数字をいれました。

クリックしたときに数字が+1になるようにしている部分です。0から順番にコスチュームを指定してるので、次のコスチュームで+1となります。ko1からko4までの変数を作っておいて、そこに答えの数字を保存します。0の数字のコスチューム番号は1なので、ko1に保存するときに-1しています。

答え合わせの部分は、

このようにしています。答えの1桁目が正解の1桁目と数字も一緒だったら空色の文字にして70%の大きさにします。桁は違っているけれど、数字が使われているときは赤紫色の文字にして50%の大きさに、合っていないときは赤色の文字にして40%の大きさにしています。

これを答えの4桁分作ります。

まとめ:Scratchの解説はとっても長くなってしまうので…

もっと書こうと思ったのですが、Scratchはブロックで記述されているので、一般的なプログラムのコードで書くものよりかなり冗長になってしまいます。いつもならほぼ省略せずにかなり詳しく書くのですが、Scratchでそれをやろうとするととてつもなく長くなってしまうので概略と一部の説明だけになってしまいました。すみません。分からないところなどあればお気軽にコメントいただければ、と思います。

慣れていないとどのスプライト(部品)に記述されているのか分からないと思いますが、数字当ての中身を見る、で色々触っていただいて見ていただくとある程度わかるのではないかと思います。

またScratchは人の作品を元に自分の作品を作ることができます。中身を見る、のあとに

右上にある リミックス をクリックして

この画面で OK をクリックすればその作品を元にした、自分の作品を作ることができます。オープンソースの考え方ですね。ですので、リミックスして色や背景を好みのものにするだけでも楽しめますのでぜひチャレンジしてみてください(^^)/

[Amazon sponsored link] scratch 関連本
兎本美佳

ブログを見た人がそのままできたらいいなと思って、できるだけ丁寧に書いています。blogに書いたようなネタの有償対応のご相談は「ゆうそうと」へいただければと思います(^^)/
無償での対応をご希望の場合は、コメントをいただけましたら可能な場合はコメントを返させていただきます。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
スポンサー広告
ブログをメールで購読

メールアドレスを記入して購読すれば、更新をメールで受信できます。

261人の購読者に加わりましょう

トップへ戻る