プログラミング言語Scratch
前回、Scratchを使って10秒ゲームの「START」「STOP」ボタンを作成し、押したら表示が変わるというところまでプログラミングしました。

今回は「START」ボタンを押したら時間を数え始め、「STOP」を押したら「START」ボタンを押してからの秒数を計算し、結果を表示するプログラムを作成していきます。
まずは前回作成したプログラムのおさらいをしましょう。
スプライトは「START」「STOP」の二つを作成しました。

「START」のスプライトのプログラムはここまで作成していました。

また「STOP」のスプライトのプログラムはこんな感じ。

ここからさらに時間をカウントして、結果を表示するプログラムを組んでいきます。
タイマーのカウントをスタート
まずは時間を測るためのタイマーを設置し、「START」ボタンを押したらカウントスタートするプログラムを組んでいきます。
スプライトウインドウで「START」のスプライトをクリックして、選択状態にしてください。

組み換えるブロックは「START」のスプライトのこちらのブロック。

このブロックに「タイマーをリセット」を2番目に追加します。

たったこれだけで「START」を押したときにタイマーが「0」になります。
タイマーのチェックボックスにチェックを入れ、タイマーを表示させて確認してみましょう。


緑の旗をクリックしたときにタイマーが「0」になり、さらに「START」ボタンを押したときに「0」になっているのが分かります。
STOPを押したときの時間を取得
次は「STOP」を押したときの動作をプログラミングしていきます。
STOPを押したときに、STARTを押してからSTOPを押した時までの時間を表示するようにしてみましょう。
ということでスプライトウインドウで「STOP」のスプライトをクリックして、選択状態にしてください。

プログラミングウインドウに「このスプライトが押されたとき」「タイマーと2秒言う」というブロックをつなげて設置します。

たったこれだけ。
これで「STOP」をクリックすると「START」を押してから「STOP」を押すまでの時間を表示してくれます。
試してみましょう。

数字だけでは味気ないですね。
「数字」と「文字」を一緒に話させるには、演算の「XとY」のブロックを使って下の図のように組みます。

そしてこのブロックを先ほど「タイマー」をはめ込んだところに入れます。

試してみるとこんな感じで「X秒」と表示されるようになります。

10秒±1秒で「エクセレント!」と表示
次は10秒±1秒で「エクセレント!」と表示させるプログラムを組んでいきます。
そのときに使うのがこちらの「大なり」「小なり」のブロック。

一つはタイマーの時間が9より大きいとして、もう一つはタイマーの時間が11秒より小さいとしてください。
そして「XかつY」のブロックにはめ込みます。

これで「9秒より大きくて11秒より小さいとき」という条件を作ることができました。
先ほどの「秒数を言う」ブロックを組み替えて、こんな感じにします。

これで試してみましょう。

あれ?表示される秒数がおかしくなってしまいました。
10秒でクリックして「エクセレント!」と表示されているのにその後表示される秒数が「12秒」になってしまっています。
実は「エクセレント!」と2秒間表示させているので、その分「タイマーと秒を2秒言う」のブロックが実行されるのが遅れてしまっているのです。
これを修正するには「STOP」を押したとき、タイマーの値を「変数」に入れて保存するのがいいでしょう。
ということでまずはタイマーの数値を変数に入れるようにこんなブロックを準備します。

そしてこのように組み替えます。

これで実行してみるとこんな感じです。

ちゃんとボタンを押した時点の秒数が表示されるようになりました。
ボタンの表示を「START」戻す
最後に全て動作が終わった後にボタンの表示を「START」に戻すようにしてみましょう。
ここでは「メッセージを送る」ブロックを使います。
しかし「メッセージ1」はもう使ってしまっているので、新しいメッセージを作成します。

今回は新しいメッセージ名を「メッセージ2」としておきます。

先ほどから組み替えている「STOP」を押した時の動作の最後に「メッセージ2」を送ると「隠す」をつなげます。

これで「STOP」ボタンは「メッセージ2」を送った後、見えなくなります。
そして次は「START」ボタンを表示するため、スプライトウインドウの「START」をクリックして、選択状態にします。

今度は「メッセージ2」を受け取ったときに、この「START」ボタンを「表示する」とします。

試してみるとこんな感じ。

ちゃんと全ての動作が終わったあと、「START」ボタンに戻っています。
まとめ
ちょっと長くなってきたので、ここまででまとめてみましょう。
まずSTARTボタンとSTOPボタンの2つのスプライトを準備しました。

そしてSTARTボタンのプログラムはこんな感じ。

STOPボタンのプログラムはこんな感じ。

これで今回の10秒ゲームが出来上がりです。
次回はこのプログラムを全世界に向けて共有してみましょう。

ということで今回はこんな感じで。
コメント