スクラッチプログラミング

7-2 キッチンカー

リストを使う練習として、お客の注文をリストで受け取るキッチンカーのプログラムを作成しましょう。

ステップ1

  1. スクラッチを画面を開いて、新しいプロジェクトを作成し、プロジェクト名を「キッチンカー」にします。
  2. ネコのスプライトを削除し、Food Truckスプライトをプロジェクトに読み込みます。

ステップ2

リストを作成します。リストは[変数]から作成します。

  1. [変数]-[リストを作る]ボタンをクリックします。
  2. [新しいリスト]パネルが表示されるので、[新しいリスト名]にfoodと入力して[OK]をクリックします。
  3. すると[リストを作る]ボタンの下に、(food)という変数名や、リストの操作に使用できる多くのコードブロックが表示されます。

変数(food)の左にあるチェックボックスにチェックが入っていると(有効になっていると)、ステージの左上にリスト(表のように見えるもの)が表示されます。

ステップ3

準備ができたので、キッチンカーのスプライトに注文を取るスクリプトを記述していきましょう。

  1. Food Truckスプライトをクリックして、コードエリアを表示します。
  2. いつもの[緑の旗が押されたとき]イベントブロックをドラッグ&ドロップします。以下に追加するコードブロックは、[緑の旗]ボタンのクリックをきっかけとして実行されます。
  3. 注文はテキスト入力ボックスで取ることにします。[調べる]-[(あなたの名前は何ですか?)と聞いて待つ]をドラッグ&ドロップし、文字列を「お飲み物は何にしますか?」に変更します。

  4. ユーザーがテキスト入力ボックスを通して入力した注文(文字列)は、[調べる]-[(あなたの名前は何ですか?)と聞いて待つ]ブロックの下にある変数(答え)に入れられます。この変数を使うと、ユーザーからの注文をプログラムで扱えるようになります。


  5. 変数(答え)ブロックをリストfoodに追加します。そのためには[変数]-(food)の下にある[(なにか)を(food)に追加する]ブロックを[(お飲み物は何にしますか?)と聞いて待つ]の下に吸着させます。
  6. 追加したいのは変数(答え)なので、[調べる]-(答え)を、[(なにか)を(food)に追加する]ブロックの(なにか)の上にドラッグ&ドロップします。

ステップ4

ではここまでを実行してみましょう。[緑の旗]ボタンをクリックすると、「お飲み物は何にしますか?」と聞いてくる吹き出いが表示され、ステージの下にテキスト入力ボックスが現れます。ここにたとえば「アイスコーヒー」と入力し、ボックス右端のボタンをクリックします。すると入力した文字(アイスコーヒー)が、ステージ左上にあるリストfoodの一番上に表示されます。

ここは、プログラムの外部から内部へデータを取り込み、それをリストに追加する重要な箇所です。下図を参考にコードブロックを上からたどって、「アイスコーヒー」という外部からのデータがプログラム内のリストfoodに追加されるかを確認してください。

リストfoodをよく見ると、下端の長さが1になっていることが分かります。長さとは変な言い回しに感じますが、これはリストに含まれている項目の数を示しています。今は「アイスコーヒー」だけが入っているので長さが1となっています。

ステップ5

今のままでは、最初に追加した「アイスコーヒー」がずっと残ったままになるので、プログラムの起動時にリストfoodの中身を空にしましょう。これには[変数]-[リストを作る]ボタンの下にある[(food)のすべてを削除する]ブロックを使います。このブロックを[(お飲み物は何にしますか?)と聞いて待つ]ブロックの上に挿入します。

これにより、プログラムを実行するたびにリストfoodは空になり、新しい注文をリストに追加することができます。

ステップ6

次は食事とデザートの注文も取れるようにしていきましょう。要領は飲み物と同じなので、同じ作業を繰り返すこともできますが、今あるブロックをコピーして使う方が簡単です。

  1. [(お飲み物は何にしますか?)と聞いて待つ]ブロックを下にドラッグします。すると[(答え)を(food)に追加する]ブロックもいっしょに切り離せます。
  2. [(お飲み物は何にしますか?)と聞いて待つ]ブロックを右クリックします。するとコンテキストメニューが表示されるので[複製]をクリックします。
  3. 同じ作業を繰り返します。
  4. 下の[(答え)を(food)に追加する]ブロックを右クリックして[複製]を選ぶと、[(答え)を(food)に追加する]ブロックだけのコピーになります。

  5. 質問を「お食事は何にしますか?」と「デザートは何にしますか?」に変えて、スクリプトに吸着させます。

ではプログラムを実行して、注文を入力してみましょう。長い文字はリストの幅に収まらないので、リストの幅を広くしておきます。リストの幅は右下端のドラッグで変更できます。

下図の例では飲み物にレモネードを、食事に冷やし中華を、デザートにイチゴケーキを注文しています。リストfoodには、1番めにレモネードが、2番めに冷やし中華が、3番めにイチゴケーキが、注文した順に追加されます。3つ追加されたので、リストの長さは3になっています。

ここまでのプログラムはこのリンクからダウンロードできます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です