13-9 海を望んで④

解説動画

解答コード

let arrfloor1 = [[0]];
let arrfloor2 = [[0]];
function cloneFloor(arrfloor = [[0]]) {
    arrfloor.forEach(function (element) {
        element.forEach(function (block) {
            agent.move(FORWARD, 1);
            agent.setItem(block, 1, 1);
            agent.place(DOWN);
        });
        agent.move(BACK, element.length);
        agent.move(RIGHT, 1);
    });
}

function inspectFloor() {
    let arrfloor = [];
    for(let i = 0; i < 3; i++) {
        let arrline = [];
        for(let j = 0; j < 6; j++) {
            agent.move(FORWARD, 1);
            let block_type = agent.inspect(AgentInspection.Block, DOWN);
            arrline.push(block_type);
        }
        arrfloor.push(arrline);
        agent.move(BACK, 6);
        agent.move(RIGHT, 1);
    }

    return arrfloor;
}

player.onChat("13-9", function () {
    // 読み取り位置に移動
    agent.move(RIGHT, 5);

    // 1つ目の床を読み取る
    arrfloor1 = inspectFloor();
    // 2つ目の床に移動
    agent.move(RIGHT, 2);
    // 2つ目の床を読み取る
    arrfloor2 = inspectFloor();

    // スタート位置に戻る
    agent.move(LEFT, 13);

    // 1つ目の床を複製する
    cloneFloor(arrfloor1);
    agent.move(LEFT, 8);
    cloneFloor(arrfloor2);
});