初心者向けブロックコーディング
チャプター 6
>
レベル 3
目標
コンテナ内に保管された食材を検出し、食べ物を作るために組み合わせます。
サラダを作るにはいくつかの食材が必要ですが、最初にそれらを集める必要があります。フィールドでは carrots、tomatoes、lettuce、cucumbers を見つけることができますが、carrots と cucumbers は保管場所にしまわれています。まず右側の庭で取れる食材を収集してください。
欠けている食材を見つけるには、コンテナの前にある金色のXマークまで移動し、条件をテストして食材がコンテナに入っているかを確認します。金色のXマークに着いたら左に曲がり、通路に向くことでループを実行できます。forループブロックを使用することでアイテム収集のプロセスをより迅速かつ効率的に行えます。ブロックエディタで無効化されているブロックを有効にしてください。

倉庫の木箱にはアイテムが入っており、これらのアイテムは bag という名前のリスト定数で表されています。リストには各箱に対応する4つのアイテムが含まれています。forループブロックを使い、変数 x を0から4まで変化させます。ループの内部には2つの if ブロックがあり、bag 定数に “carrot” または “cucumber” が含まれているかをチェックします。

lists メニューから in list ブロックをドラッグ&ドロップで if ブロック内の comparison ブロックに挿入します。最初のスロットには bag リスト定数を入れて、アイテムが木箱に含まれているかをチェックします。最初のドロップダウンを get、2つ目を # に設定します。最後に、Variables メニューから変数 x を取り出して最後のスロットに配置します。この一連のブロックは、ループのサイクル数を示す変数 x に基づいて、どの木箱を見ているかを判断しながら bag リストを検索するものです。

この in list ブロックのシーケンスは、2つの if ブロック内で合計4回使用します。最初の if ブロックでは、comparison ブロックを = に設定し、その中に in list を配置します。そして string ブロックには “cucumber” と入力します。collect ブロックにはさらに別の in list を挿入し、木箱内にキュウリがあれば収集できるようにします。

2つ目の if ブロックでは、最初と同じ構造を使いますが、string ブロックには “carrot” と入力します。これら2つの if ブロックは for ループの中にあり、4つの木箱すべてを順にチェックして、キュウリまたはニンジンがあれば収集します。

すべてのアイテムを収集したら、create empty list ブロックを使用して items という名前のリストにそれらを格納します。set variable ブロックで items 変数を設定し、lists メニューから create empty list を挿入してください。

エディタ内には items リストにアイテムを挿入するための insert list ブロックが非アクティブ状態で配置されています。これらを有効化し、ブロック末尾の数字バブルを編集して収集したアイテムに対応する数値を入力してください。アイテムの順序は次の通りです: “carrots”、 “tomato”、 “lettuce”、 “cucumber”。各アイテムに対応する値を挿入します。

最後に、明るいXマークまで移動し、combine ブロックを使ってすべてのアイテムを組み合わせて食事を作ります。combine ブロックに items リストを挿入し、野菜をすべてサラダコンテナに入れてレベルをクリアしてください。