解説動画

解答コード
const LAVA_ID: number = 11; // 溶岩
const LADDER_ID: number = 65; // はしご
player.onChat("19-6", function () {
player.say("縦穴にはしごをかけながらおります");
// 前置きの移動フェーズ: 縦穴の真上へ進み、さらに1段下りて初めて壁にはしごをかけられる位置になる
agent.move(FORWARD, 1);
agent.move(DOWN, 1);
agent.setSlot(1); // このあとはスロット1に常に1個だけはしごを補充しながら使う
let stepCount: number = 0;
try {
while (true) {
// 現在位置は必ず溶岩ではない(溶岩の中で設置を試みることは起こらない)ので先に設置する
agent.setItem(LADDER_ID, 1, 1);
agent.place(FORWARD);
stepCount = stepCount + 1;
player.say(stepCount + "段目のはしごを設置しました");
let belowId: number = agent.inspect(AgentInspection.Block, DOWN);
if (belowId == LAVA_ID) {
throw "溶岩を検出しました";
}
agent.move(DOWN, 1);
}
} catch (e) {
player.say("例外を検出: " + e);
player.say("溶岩が見つかったのでここで止まります");
}
});