15-7 旅の仲間③

解説動画

解答コード

let arr157 = [[0]];
// 読み取る
function inspectWall157() {
    arr157 = []; // パターン全体を格納するための空の配列を初期化
    for (let i = 0; i < 3; i++) {
        let arrline = []; // 横一列のパターンを格納するための空の配列を初期化
        for (let j = 0; j < 4; j++) {
             // ブロックを読み取って、
            let block_type = agent.inspect(AgentInspection.Block, FORWARD);
            // 配列に格納(1次元)
            arrline.push(block_type);
            agent.move(RIGHT, 1);
        }
        // 格納した配列をさらに配列に格納(2次元)
        arr157.push(arrline);
        agent.move(LEFT, 4);
        agent.move(UP, 1);
    }
}
//壁を複製
function cloneWall157() {
    arr157.forEach(function (element) {
        element.forEach(function (block) {
            // エージェントにブロックを持たせて設置していく
            agent.setItem(block, 1, 1);
            agent.move(RIGHT, 1);
            // ブロックを設置していく
            agent.place(FORWARD);
        });
        // エージェントを次の場所へ移動させる
        agent.move(LEFT, element.length);
        agent.move(DOWN, 1);
    });
}

player.onChat("15-7", function () {
    // 読み取る
    inspectWall157();
    //複製のスタート位置を上の段の左端にすることで上下反転して複製することができる
    agent.move(DOWN, 1);
    agent.move(RIGHT, 6);
    //壁を複製
    cloneWall157();
});