20-5 かけらよ、秘密の道をひらけ!

解説動画

間違っているコード

player.onChat("20-5", function () {
    player.say("見本を調べて、魔法陣の右下の穴を補います");
    agent.move(FORWARD, 1);
    let sample: number[] = [0, 0, 0, 0];
    for (let i: number = 0; i < 4; i++) {
        sample[i] = agent.inspect(AgentInspection.Block, DOWN);
        agent.move(FORWARD, 1);
    }
    agent.move(BACK, 4); // 見本列の最初のブロック位置(スタート地点の1歩先)へ戻る
    agent.setSlot(1);
    while(sample.length > 0) {
        sample.shift(); // 列を1つ右へ移る前に、配列を1つ短くする
        agent.move(RIGHT, 1);
        agent.move(FORWARD, 1);
        sample.forEach(function(blockId) {
            agent.setItem(blockId, 1, 1);
            agent.place(DOWN);
            agent.move(FORWARD, 1);
        });
        agent.move(BACK, sample.length);
    }
    player.say("魔法陣を完成させました");
});

解答コード

player.onChat("20-5", function () {
    player.say("見本を調べて、魔法陣の右下の穴を補います");
    agent.move(FORWARD, 1);
    let sample: number[] = [0, 0, 0, 0];
    for (let i: number = 0; i < 4; i++) {
        sample[i] = agent.inspect(AgentInspection.Block, DOWN);
        agent.move(FORWARD, 1);
    }
    agent.move(BACK, 4); // 見本列の最初のブロック位置(スタート地点の1歩先)へ戻る
    agent.setSlot(1);
    while(sample.length > 0) {
        sample.pop(); // 列を1つ右へ移る前に、配列を1つ短くする
        agent.move(RIGHT, 1);
        agent.move(FORWARD, 1);
        sample.forEach(function(blockId) {
            agent.setItem(blockId, 1, 1);
            agent.place(DOWN);
            agent.move(FORWARD, 1);
        });
        agent.move(BACK, sample.length);
    }
    player.say("魔法陣を完成させました");
});

勇敢:BRAVE 生徒から聞かれたときに、綴りを教えてあげてください。これが、石室2で、ロゼッタストーンを並べる順番になります。