20-1 読み解け!謎の石柱①

解説動画

解答コード

function inspectPillar(values: number[]) {
    for (let i: number = 0; i < values.length; i++) {
        values[i] = agent.inspect(AgentInspection.Block, FORWARD);
        agent.move(UP, 1);
    }
    agent.move(DOWN, values.length);
}

function buildPillar(values: number[]) {
    agent.setSlot(1);
    for (let i: number = 0; i < values.length; i++) {
        agent.setItem(values[i], 1, 1);
        agent.place(FORWARD);
        agent.move(UP, 1);
    }
    agent.move(DOWN, values.length);
}

player.onChat("20-1-left", function () {
    player.say("見本の柱を調べて、左の柱を作ります");
    let left: number[] = [0, 0, 0, 0]; // 配列の初期状態:見本の柱と同じ長さで、初期値 0 とします
    inspectPillar(left);
    left.removeAt(1);
    agent.move(LEFT, 2);
    buildPillar(left);
    player.say("左の柱を作りました");
});

player.onChat("20-1-right", function () {
    player.say("見本の柱を調べて、右の柱を作ります");
    let right: number[] = [0, 0, 0, 0]; // 配列の初期状態:見本の柱と同じ長さで、初期値 0 とします
    inspectPillar(right);
    right.splice(2, 1);
    agent.move(RIGHT, 2);
    buildPillar(right);
    player.say("右の柱を作りました");
});