変数と条件を使って、守りの堅い城を再現しましょう。この城には、合言葉を城兵に伝えない限り、中には入れません。
条件には[制御]にある次のコードブロックを使います。[もし]と[なら]の間にある5角形が具体的な条件にあたる部分です。

ステップ1
- スクラッチの画面で新しいプロジェクトを作成し、プロジェクト名を「合言葉を言え!」にします。
- ネコのスプライトを削除し、スプライトライブラリからKnightを読み込みます。
- 背景ライブラリからCastle1とCastle2を読み込みます。
ステップ2
城兵(Knight、騎士)のスプライトを選択して、コードブロックを作成しましょう。
- [イベント]-[緑の旗が押されたとき]イベントブロックをドラッグ&ドロップします。
- [見た目]-[背景を( )にする]をドラッグ&ドロップし、背景がCastle2でない場合にはCastle2に設定します。
- [見た目]-[表示する]をドラッグ&ドロップします。
- [動き]-[x座標を( ), y座標を( )にする]をドラッグ&ドロップし、Xを-132、yを-9に設定します。
- [調べる]-[(あなたの名前は何ですか?)と聞いて待つ]をドラッグ&ドロップし、文字を「待て! 合言葉を言え!」に変えます
ステップ3
条件のコードブロックを追加します。合言葉は「かぼちゃ」にします。ユーザーが入力した(答え)が「かぼちゃ」なら正解で、そうでなければ不正解という、if–then– else の構造です。

- [制御]-[もし–なら–でなければ]コードブロックをドラッグ&ドロップします。
- [演算]-[( )=(50)]をドラッグし、[もし–なら…]コードブロックの六角形にドロップします(下図の左)。
- 六角形の中に条件を作っていきます。左の( )には、ユーザーがテキスト入力した、合言葉の変数(答え)が来ます。この変数は自動的に作られ、[調べる]-[(あなたの名前は何ですか?)と聞いて待つ]の下にあります。この変数(答え)を、条件の六角形の左の( )にドラッグ&ドロップします(下図の真ん中)。
- 六角形の右の( )には正解の合言葉の文字、「かぼちゃ」を入力します。「とうもろこし」にしたい場合には「とうもころし」と入力します。入力するには(50)の上にカーソルを合わせます。するとカーソルがIの形に変わるので、このときクリックします。すると50が強調表示されます。入力はこの状態できます。入力したらEnterキーを押して確定させます(下図の右)。
- では、正解だった場合には「正解」と言い、不正解だった場合には「間違い」と言うようにしてみましょう。[見た目]-[(こんにちは!)と言う]をドラッグして、[もし–なら…]コードブロックの上のへこみと下のへこみにそれぞれドロップします。
- 上のへこみは、条件が満たされた場合に実行されるので、[(正解)と言う]に変更します。
- 下のへこみは、条件が満たされなかった場合に実行されるので、[(間違い)と言う]に変更します。
- プログラムを実行してテストします。正解の「かぼちゃ」を入力すると騎士は「正解」と言い、不正解を入力すると「間違い」と言うことを確認します。
条件の作り方は手順が少し複雑で手間がかかります。[もし–なら…]の–に当たる部分には六角形しか入りません。スクラッチでは、条件は六角形で表されます。

条件の六角形内にある[(答え) = (かぼちゃ)]は、「変数(答え)に入っている文字が、「かぼちゃ」という文字なら」という意味です。変数(答え)には、ユーザーが入力した文字が値として入っているので、その値と文字の「かぼちゃ」を比べているわけです。
この条件が満たされた場合(正解の場合)、条件の六角形はTRUEになります。満たされなかった場合(不正解の場合)には、FALSEになります。

ここでは、文字を正確に比べているので、「かぼちゃ」でなく「カボチャ」を入力すると、「間違い」と言われます。

ステップ4
つまりユーザーが「かぼちゃ」と入力して、条件が満たされたときのコードブロックを作成しましょう。
「城兵に「正解!」と2秒言わせたら、背景を開門したCastle2に変えて、城兵を消す」ようにしたいのですが、これを一気に行うことはできません。やりたいことはそれが実現できそうなコードブロックに分けて、1つずつこしらえていきます。今の場合なら、
(1) 城兵に「正解!」と2秒言わせ、
(2) ステージの背景を、開門したCastle2に変えて、
(3) 城兵を非表示にする。
ようにします。これらのコードブロックを1つずつ、[(正解)と言う]に替えて、ドラッグ&ドロップします。下図を参考に、自分でコードブロックを組んでみましょう。

作成できたら、プログラムを実行してテストします。正解の「かぼちゃ」を入力して、背景が変わればうまくいっています。
ステップ5
では、最後、そうでなければの部分を作成しましょう。
[でなければ]の下のへこみは、変数(答え)の値が「かぼちゃ」でなかった場合に、何をするかをスクラッチに教える場所です。
ここには、条件がみたされないすべての場合が含まれます。これは、入力される可能性のある、あらゆる言葉をその都度調べる必要はない、ということです。

[でなければ]の下のへこみには、[(違う! 旗を押してやり直し!)と(2)秒言う]コードブロックを挿入します。

プログラムを実行してみましょう。正解を入力すると、下図のTRUEの流れが実行されますが、正解でない場合には、FALSEの流れが実行されます。条件を使うと、このようにプログラムの実行の流れを変えることができます。

今回のここまでのプログラムファイルは、次のリンクからダウンロードできます。