VEXcode EXP でブロックからテキストベースのコーディングに移行するためのスイッチ ブロックの使用

Switch は、ブロックベースのプログラミングの使い慣れた要素を組み込み、テキスト コマンドを入力できるテキスト ボックスを統合します。 Switch ブロックに入力される Python コードの例については、次のビデオをご覧ください。

スイッチ ブロックはPythonとのみ互換性があります。


Switch は、学生に Blocks からテキストベースのコーディングへの自然な橋渡しを提供します。生徒がコマンドのロジックと順序に慣れてくると、プロジェクトを 1 ブロックずつ変換できるようになります。 

これにより、生徒はブロックベースのプログラムのロジック フローを引き続き操作することができ、他のブロックの周囲にループをラップするなどの動作を物理的に確認しながら、テキスト コマンドを自分で試し始めることができます。ブロックが Switch に変換されると、生徒はパラメータを簡単に変更し、テキスト コマンドの構文を理解し始めることができます。このセクションでは、学生による Switch の使用例を取り上げながら、VEXcode プロジェクトでこれらのブロックを使用する方法を説明します。

スイッチブロックを使い始める

Switch Blocks を使用したコーディングを開始するには、次のものが必要です。

  • コンピューター(モバイルデバイスではありません)。

ブロック プロジェクトに Switch ブロックが表示された VEXcode EXP コード ビューアー メニュー。 C++ オプションはグレー表示され、無効として表示されます。コード ビューアーの Python オプションは引き続き有効です。

ブロックがスイッチ ブロックに変換されると、コード ビューアーの C++ は無効になります。

ブロックをスイッチに変換する

単一のブロックをスイッチに変換する

コンテキスト メニューを開いた状態で、VEXcode EXP ワークスペースでブロックを駆動します。メニューには、「複製」、「ブロックの無効化」、「ブロックの削除」、「ブロックのヘルプ」、「ブロックをスイッチ ブロックに変換」、「ブロックの読み取り」の 6 つのオプションがあります。

スイッチ ブロックに変換するブロックを右クリックします。

コンテキスト メニューを開いた状態で、VEXcode EXP ワークスペースでブロックを駆動します。ブロックをスイッチ ブロックに変換オプションが選択されています。

ブロックをスイッチ ブロックに変換を選択します。

Drive for ブロックは Switch ブロックに変換され、drivetrain.drive_for(FORWARD, 10, INCHES) を読み取る Python コードが追加されました。

ブロックは同じパラメータを持つスイッチ ブロックに切り替わります。

VEXcode EXP ツールバーでは、やり直しアイコンの左側に、元に戻すアイコンが強調表示されています。

変換後にスイッチ ブロックをブロックに戻すには、元に戻す ボタンを選択します。

複数のブロックをスイッチに変換する

ブロック スタックの最上部にあるブロックのドライブのコンテキスト メニューが開きます。コンテキスト メニューに、「スタックをスイッチ ブロックに変換」という別のオプションが追加されました。これは、「ブロックをスイッチ ブロックに変換」オプションのすぐ下にあります。

スイッチ ブロックに変換するスタックの上部を右クリックします。

ブロック スタックの最上部にあるブロックのドライブのコンテキスト メニューが開き、スタックをスイッチ ブロックに変換オプションが選択されています。

スタックをスイッチ ブロックに変換を選択します。

3 つのブロックのスタック全体が 1 つの Switch ブロックに変換され、個々のブロック コマンドごとに 1 行の Python コードが使用されます。

右クリックしたブロックとその下にあるすべてのブロックがスイッチ ブロックに変換されます。

ラッパー内のブロックをスイッチに変換する

ワンクリックで Wrapper とそのすべてのコンテンツを Switch に変換できます。

他のブロックを含む繰り返しブロックのコンテキスト メニューが開きます。これは C ブロックであるため、「スイッチ ブロックに変換」オプションが変更され、「ラッパーをスイッチ ブロックに変換」および「ラッパーとコンテンツをスイッチ ブロックに変換」になりました。

変換するラッパーを右クリックします。

他のブロックを含む繰り返しブロックのコンテキスト メニューが開かれ、「ラッパーとコンテンツをスイッチ ブロックに変換」オプションが選択されています。

ラッパーとコンテンツをスイッチ ブロックに変換を選択します。

ラッパー ブロックとネストされたブロックを含むスタック全体が 1 つの Switch ブロックに変換されました。各ブロック コマンドには対応する Python 行が 1 つあります。

ラッパーのすべてのコンテンツは、単一のスイッチ ブロックに変換されます。

スイッチブロックを使用する

ツールボックスからスイッチブロックを追加する

このビデオに示すように、ツールボックスからスイッチ ブロックをクリックしてドラッグします。

スイッチブロックを入力する

スイッチ ブロックのテキスト フィールドを選択し、このビデオに示すように、必要なコマンドを入力します。

スイッチブロック内のテキストをコピーして貼り付ける

クリックしてドラッグすると、スイッチ ブロック内のテキストが強調表示されます。右クリックして「コピー」を選択します。次に、別のスイッチ ブロック内をクリックします。最後に、このビデオに示すように、右クリックして「貼り付け」を選択し、テキストを転送します。

追加のスイッチブロック

スイッチ ブロックは、他のブロックと同じ形状規則に従います。次の表は、ブロックの形状、意味、および同じタイプのスイッチ ブロックの比較を示しています。

ブロック形状 説明 ブロックの例 スイッチの例
ハットブロック ブロックのスタックを開始し、その下にブロックを接続するように形作られます。 マイブロック定義ハットブロック。 スイッチハットブロック。 Python コードは def print_name を読み取ります。
ブロックを積み重ねる メインコマンドを実行します。他のスタック ブロックの上または下に取り付けられるように形作られています。 スタックブロックのドライブ。 スイッチ スタック ブロック。 Python コードは drivetrain.drive_for(FORWARD, 200, MM) を読み取ります。
ブールブロック 条件を true または false として返し、他のブロックの六角形 (6 面) 入力を持つブロック内に収まります。 バンパーブールブロックを押します。 ブールブロックを切り替えます。 Python コードは left_bumper.pressed() を読み取ります。
レポーターブロック 値を数値形式で報告し、他のブロックの楕円入力を含むブロック内に収まります。 タイマー値レポーター ブロック。 レポーターブロックを切り替えます。 Python コードは brain.timer_time(SECONDS) を読み取ります。
Cブロック ブロックをループするか、条件が真か偽かを確認します。スタック ブロックを上、下、または内部に取り付けられる形状になっています。 永遠のCブロック。 If then else C ブロック。 Cブロックを切り替えます。 Python コードは、true の間は読み取ります。 スイッチC拡張ブロック。 Python コードは if left_bumper.pressed(), else を読み取ります。

 

1ワイントロップ、デヴィッド、ウリ・ウィレンスキー。「ブロックベース、テキストベース、ブロック/テキストのハイブリッド モダリティが初心者のプログラミング プラクティスにどのように影響するか。」  国際児童コンピュータインタラクションジャーナル 17(2018):83-92

For more information, help, and tips, check out the many resources at VEX Professional Development Plus

Last Updated: