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

Switchは、ブロックベースのプログラミングでおなじみの要素を取り入れ、テキストコマンドを入力できるテキストボックスを統合しています。以下の動画をご覧いただくと、PythonコードをSwitchブロックに入力する例をご覧いただけます。

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


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

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

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

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

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

VEXcode V5コードビューアのメニューに、ブロックプロジェクト内にスイッチブロックが表示されています。 C++オプションはグレー表示され、「無効」と表示されます。コードビューアのPythonオプションは引き続き有効になっています。

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

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

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

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

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

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

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

スイッチブロックに変換されたブロックのドライブがあり、現在はdrivetrain.drive_for(FORWARD, 10, INCHES)を読み取るPythonコードがあります。

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

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

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

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

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

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

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

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

3つのブロックのスタック全体が、1つのスイッチブロックにまとめられ、各ブロックコマンドごとに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ブロック。 もしそうなら、そうでなければCブロック。 Cブロックを切り替えます。 Python コードは while 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: