【スクラッチ】ジュースの自動販売機を作ってみよう

身の回りの物をプログラム
Scratch星人
Scratch星人

自動販売機を知らないという人はいないのでは?と思うほど、道を歩けば、多くの自販機を見かけます。

「お金を入れて飲みものを買う」機械ですが、この記事では、基本動作をプログラムしてみます。

完成後にたくさん改造して欲しいので、やる気のある方こそ、ぜひ最後まで読んでチャレンジしてみてください。

作成する自動販売機の仕様

あまり複雑にすると大変なので、以下のようなシンプル仕様で作成していきます。

  • お金は100円玉のみ(おつり機能は無し)
  • ジュースは1種類(値段:120円)
  • 在庫を管理(購入可能か売り切れを判定)

用意するスプライト

同じでなくても大丈夫なので、とりあえず最低限の4つを用意してください。

自動販売機(本体)

自動販売機(ボタンだけ)

購入可能状態に点灯させるために使用します。

お金(100円)

ジュース

プログラムの作成

それでは、実際にコードを作成していきます。

自動販売機(本体)のコード

とてもシンプルなコードなので、解説などは省略します。

自動販売機(ボタンだけ)のコード

このコードはバグが発生しますので、後ほど、正しく修正していきます。

ポイントは2つです。

  • お金が120円以上投入されていれば購入可能(購入可能=T)
  • 購入可能と在庫の有無両方がTの時のみ購入を送る(実行する)

お金(100円)のコード

ジュースのコード

在庫の有無をずっとに入れてリアルタイムで判定しています。
(T=在庫あり、F=在庫なし)

バグを発見しよう

プログラムをやっていく上で、バグを避けて通ることは出来ません。

しかし、バグは、どこを直せばいいか分かりづらく、面倒になって投げ出す人も少なくありません。

せっかくなので、今回発生するバグを見つけてみましょう。
ヒントは以下の画像です。

出来れば、動作確認をして、自分で発見するまでは記事を読み進めないことをおすすめします。


見つけることが出来ましたか?

ジュースの在庫が0なので「売り切れです」と表示されていますが、お金が300円投入されているので「購入可能」な状態になっています。

これは完全にバグですね・・。

バグを修正しよう

Scratch星人
Scratch星人

ぜひ、自分でプログラム修正にチャレンジしてみてください!

ちょっと無理そうという場合は、以下に回答のコードを載せるので、確認してみてください。


「ずっと」の中身に変更を加えました。

修正前は、購入可能の判断は「お金が120円以上投入されているか」という条件だけでしたが、その中で「在庫の有無」も条件に追加することで、無事、バグを解消することができます。

Scratch星人
Scratch星人

実は、このバグは、実際にスクラッチ星人が作成中に発生したので、確認しながらコードを修正しました。

この修正を自分で考えて出来るかどうかが、プログラミングスキルの向上に深く関わってきます。

まとめ

自動販売機を作成するプログラムを紹介しました。

バグを見つけて、修正する大切さも伝わったと思います。

さて、記事はここで終わりますが、最初にも言った通り、自分の力で、このプログラムをどんどん改造してみて下さい。

何をすればいいか分からない人のために、いくつか改造例を紹介します。

  • ジュースの種類を増やす(在庫や値段も別々に管理)
  • お金の種類を増やす(おつり機能も実装)
  • 当たり機能(数字が揃ったら一本プレゼント、など)

今回、皆さんにお伝えしたかったのは、プログラミングは、「作る→直す→チェックする→さらに拡張する」という作業に進んで、繰り返し取り組むことで、スキルがどんどん向上するということです。

大変ですが、上達したいという人は、ぜひ頑張ってみてください(*^▽^*)

コメント

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