← 課題一覧

倉庫のロボット3(変数と手順)

自作ミニ言語 3 段階の 完成形。ことばに 変数set n = 2)と 手順to carry { … })が入りました。ロボットに命令を書いて、荷物を棚まで運ばせるゲームです。短く書けるほどが増えます。

- -

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

やること:ロボットに命令を書いて、荷物を棚まで運ぶ。全部の棚に置けたら終わりです。
今回は set(変数)と to(手順に名前を付ける)が使えます。 書いた文が少ないほど星が増えます(★★★ が目標)。
  1. ▶ 走らせる を押すと、下のお手本どおりに動きます。まずこれを見てください。
  2. 1 コマ で 1 命令ずつ。carry をよんだ のように、手順の出入りも出ます。
  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)
set n = 2変数に入れる。move n のように使える
to carry { … }手順に名前を付ける(呼ばれるまで動かない)
carry付けた名前で呼ぶ。自分を呼べば再帰
2 + 3 * 4式。* / の方が + - より強い
n > 0数を比べる条件(ほかに < =

▶ が今の行です


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

    

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

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