解説動画

解答コード
const FENCE_ID: number = 85; // 手すり(オークのフェンス)
player.onChat("19-8", function () {
player.say("手すりを直しながら橋を渡ります");
agent.setSlot(1); // このあとはスロット1に常に1個だけ手すりを補充しながら使う
try {
let reachedGoal: boolean = false;
while (!reachedGoal) {
let rightId: number = agent.inspect(AgentInspection.Block, RIGHT);
if (rightId != FENCE_ID) {
agent.setItem(FENCE_ID, 1, 1);
agent.place(RIGHT);
}
let leftId: number = agent.inspect(AgentInspection.Block, LEFT);
if (leftId != FENCE_ID) {
agent.setItem(FENCE_ID, 1, 1);
agent.place(LEFT);
}
agent.move(FORWARD, 1);
let belowId: number = agent.inspect(AgentInspection.Block, DOWN);
if (belowId == COAL_ID) {
reachedGoal = true;
} else if (belowId == AIR_ID) {
throw "橋が落ちて先に進めません";
}
}
player.say("この橋を渡り切りました");
} catch (e) {
player.say("例外を検出: " + e);
player.say("この橋はここまでです。別の橋を試してください");
}
});