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

Switch は、ブロックベースのプログラミングの使い慣れた要素を取り入れ、テキスト コマンドを入力できるテキスト ボックスを統合します。

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


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

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

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

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

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

Python コードを表示する VEXcode IQ コード ビューアー インターフェース。 画像の下部には、「Python」(選択済み) と「C++ 無効」の 2 つのボタンがあり、スイッチ ブロックがワークスペース内にある場合は C++ が使用できないことを強調しています。

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

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

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

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

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

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

元に戻す.png

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

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

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

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

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

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

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

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

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

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

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

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

ツールボックスからスイッチ ブロックをクリックしてドラッグします。

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

スイッチ ブロックのテキスト フィールドを選択し、目的のコマンドを入力します。

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

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

追加のスイッチブロック

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

ブロック形状 説明 ブロックの例 スイッチの例
ハットブロック ブロックのスタックを開始し、その下にブロックを接続するように形作られます。 「印刷名を定義する」というラベルの付いたマイ ブロック。 Python 関数定義を示すスイッチ ブロック: 'def print_name:'
ブロックを積み重ねる メインコマンドを実行します。 他のスタック ブロックの上または下に取り付けられるように形作られています。 方向と単位のドロップダウン メニューとともに「200 mm 前進」を示すブロックベースのコーディング要素。 関数呼び出し「drivetrain.drive_for(FORWARD, 200, MM)」を含むスイッチ ブロック。
ブールブロック 条件を true または false として返し、他のブロックの六角形 (6 面) 入力を持つブロック内に収まります。 「LeftBumper が押されましたか?」と「LeftBumper」のドロップダウン メニューを表示するブール ブロック ベースのコーディング要素。 関数呼び出し 'left_bumper.pressed()' を含むスイッチ ブロック。
レポーターブロック 値を数値形式で報告し、他のブロックの楕円入力を含むブロック内に収まります。 「秒単位のタイマー」を表示するレポーター ブロック ベースのコーディング要素。 関数呼び出し 'brain.timer_time(SECONDS)' を含むスイッチ ブロック。
Cブロック ブロックをループするか、条件が真か偽かを確認します。 スタック ブロックを上、下、または内部に取り付けられる形状になっています。 内部にブロックが存在しないフォーエバーブロック。 内部にブロックのない If then else ブロック。 Python コード `while True:` を含むスイッチ ブロック。 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: