指示を出す:アルゴリズム

小学校コンピューターサイエンス前進と90度回転の命令を実行する決定論的なグリッドロボット。開始セルとゴールセルは固定され、障害物は編集できます

プログラムを作成してから、ロボットを G に向かって進めます。盤面のタイルを上にドラッグすると壁ができ、下にドラッグすると壁が取り除かれます。

3D

装置をドラッグして調整します。背景をドラッグして回転させます。スクロールしてズームします。

測定ノート

設定を変更し、予測をテストして、結果を保存します。スナップショットは最大12件まで保存されます。

この実験について

短いプログラムを作成し、3次元の盤面で試してみましょう。ロボットは各命令を文字どおりに実行するため、移動が妨げられたり、誤った方向に曲がったりすると、その様子が確認できます。意図したルートと実際の実行経路を比べ、プログラムを編集してもう一度試しましょう。

学習目標

  • ルートを、順序どおりの正確な命令列に変換します。
  • 各ステップ後の位置と向きを確認して、プログラムをデバッグします。
  • 命令を変えずに障害物を変更すると、プログラムの結果がどう変わるか説明します。

使い方

  1. 1最初のプログラムを実行し、意図したルートと一致しない最初の命令を特定します。
  2. 2巻き戻し、[ステップ]と[戻る]を使って、各命令の後の位置を確認します。
  3. 3「ルートの例」を読み込み、終点を予測してから、実行してゴールを目指します。
  4. 4ボードのタイルを上にドラッグして障害物を作ります。コマンドボタンを使ってルートを修正し、プログラムとその結果を記録します。

モデル

左折後の向き
右折後の向き

前提条件

  • ボードは6行6列です。ロボットは左下から右向きにスタートし、ゴールは右上です。
  • 前進命令で1マス進みます。左折と右折は移動せずに90度向きを変えます。衝突するかゴールに到着すると、実行が終了します。
  • ロボットは命令を解釈して実行するものであり、剛体の物理シミュレーションではありません。視覚的な補間によって、マス単位の位置が変わることはありません。

授業で試してみましょう

  1. Q1同じ命令でも、あるボードではうまくいき、壁を動かした後のボードでは失敗するのはなぜでしょうか?
  2. Q2繰り返し命令が使えるとしたら、どうすればもっと短いプログラムを書けるでしょうか?

よくある質問

ロボットは自分で道を見つけますか?

いいえ。与えられた命令列をそのまま実行します。ルートを見つけて修正することが、この実験の目的です。

壁にぶつかるとどうなりますか?

ロボットは最後に移動できたマスにとどまり、移動が阻止されたことを示してプログラムを停止します。