← 課題一覧

倉庫のロボット2(繰り返しと条件)

自作ミニ言語 3 段階の 2 つ目。ことばに repeat(繰り返し)と if(もし〜なら)と while(〜のあいだ)が入りました。ロボットに命令を書いて、荷物を棚まで運ばせるゲームです。書いたプログラムがどんな形に読まれたかも見られます。

- -

ロボット(目のある方が正面) 荷物 棚(ここへ置く) 置き終わった荷物

やること:ロボットに命令を書いて、荷物を棚まで運ぶ。全部の棚に置けたら終わりです。
今回は repeatifwhile が使えます。同じ動きを何度も書かずに済みます。
  1. ▶ 走らせる を押すと、下のお手本どおりに動きます。まずこれを見てください。
  2. 1 コマ で 1 命令ずつ。while は「条件を見た」のも 1 コマとして出ます。
  3. もどす で最初から。次の面 で別の倉庫へ。
使えることば(一覧)
move 33 マス前へ。壁や荷物にぶつかったら止まる
left / rightその場で 90 度回る
pick目の前の荷物を持つ(手はひとつ)
drop目の前に置く。棚の上なら運び終わり
wait 22 コマ何もしない
# メモ行末までメモ(動きには関係しない)
repeat 4 { … }中身を 4 回
if 条件 { … } else { … }条件を見て、どちらかを 1 回(else は省ける)
while 条件 { … }条件が本当のあいだ、ずっと
front is wall目の前が壁か。ほかに free(通れる)/ crate(荷物)/ shelf(棚)
holding荷物を持っているか
not / and / or条件をつなぐ(強さは not > and > or)

▶ が今の行です


    
構文木(書いたものが、どんな形に読まれたか)

    

Python を読み込んでいます… (初回は数秒かかります)

このページは Python のコードがブラウザの中でそのまま動いています(PyScript)。 面の表も、標的の割れ方も、得点の内訳も、キーを受ける obey() も CLI 版と 1 文字も違いません。