19-8 見えない罠(わな)をこえて③

解説動画

クエスト19の19-6から19-10で必要なブロック番号

解答コード

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("この橋はここまでです。別の橋を試してください");
    }
});