ステージを作る 2. 道をつなぐ

ブロックは同じ座標に配置すると、上へ積み上がっていきます。今回はそれを利用して道を平らにして通れるようにする必要があります。手前から3本の脇道があり、それぞれに、2つ、1つ、2つのブロック、計5つを配置します。

ルートとして、高低差があるものの「2つ進み、右に曲がり、突き当たりの宝石を取り、戻る」を3回繰り返せばいけそうです。これを設問文の指示通り、ループと関数で書いてみます。名前を考えるのが面倒でpattern1としてしまいました、、

ステージを作る 1. 道を作る

この章ではステージ自体に手を加えることができるようになります。まず最初のステージでは途切れている道をつないで通行可能にします。
作業は
1. ブロック型のインスタンスを作成する
2. 作成したインスタンスを指定の場所に設置する
の2ステップが必要です。
コードにすると

となります。
少しおさらいするとインスタンスはある決まった性質をもった型から作られた実体です。ひとつの型からたくさんのインスタンスを作ることができます。たい焼きの型を使ってつくる実際のたい焼きひとつひとつがインスタンスと言えます。今までにも、ExpertやCharacterといった型で個人であるexくんやchちゃんを作ってきたのと同じです。
さて、ブロック自身には移動能力がないようで、

などのようにして移動を指示することができません。
かわりにworldという世界のインスタンスに対して、.place()というコマンドで特定のインスタンスを特定の場所に置きます。placeとは「場所」という意味の英語ですが、動詞では「置く」という意味にもなりますね。world.place()というドット表記は「worldに対して、置くという指示を出す」ということになります。そして具体的に指示するには、「なにを」と「どこに」を決めてあげる必要があり、これを()の中にパラメータとしてくっつけてやります。場所の指定は今までと同じく座標を使います。Block型の場合、向きは気にしなくて良いので、パラメーターにも含める必要はありません。

ステージで反対端の閉スイッチまで行くには、途中どうしても渡れない切れ目があります。ここにブロックを置いてやれば良いわけです。置きたい場所をタップすると座標が(3,3)と出ますので、これを使います。
道さえつながってしまえばあとはそう難しいステージではないでしょう。