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で、ロゼッタストーンを並べる順番になります。