猫史档案馆


【神奇代码岛】为实体的位置重新赋值,居然……

用户:小苏打_小苏打_查看:21 回复:14 评论:21 创建时间:2023-03-18T19:14:05


center_image

center_image


回复

上一页1 页 / 共 1下一页
SCS_user_LoeheodVOQSCS_user_LoeheodVOQ

其实没有proxy也可以直接对象改

点赞0


评论


𝙲ℴ𝗌𝔦𝒹ₑ𝑟𝙲ℴ𝗌𝔦𝒹ₑ𝑟

支持()

点赞0


评论


DDguanDDguan

666

点赞0


评论


SHEL深空无尽SHEL深空无尽

center_image

center_image

想到了什么emotion_doge

点赞0


评论


GZ006GZ006

好耶!

点赞0


评论


无敌版滑稽战神无敌版滑稽战神

我的天哪!!!

点赞0


评论


小苏打_小苏打_

center_image

点赞0


评论


yee089yee089

我要进去水群!(关注点错误)

点赞0


评论


小鹿UUyM小鹿UUyM

sql模板已经有力(

点赞0


评论


小鹿UUyM小鹿UUyM

console.clear();
const PlayerData = {
    money: 0,
    lv: 0,
    item: []
};
(async () => {
    await db.sql`
        CREATE TABLE IF NOT EXISTS YJZTX (
            datas TEXT NOT NULL,
            userKey CHAR(16) PRIMARY KEY UNIQUE NOT NULL
        )
    `
})();
function initPlayer(entity = new Box3Entity) {
    for (let i in PlayerData) {
        entity[i] = PlayerData[i]
    }
};
function getPlayerData(entity = new Box3Entity) {
    var data = {};
    for (let i in PlayerData) {
        data[i] = entity[i]
    }
    return JSON.stringify(data)
};
async function savePlayer(entity = new Box3Entity) {
    if (!entity.player.userKey) return;
    await db.sql`
        INSERT INTO YJZTX (
            datas, 
            userKey
        ) 
        VALUES (
            ${getPlayerData(entity)}, 
            ${entity.player.userKey}
        )
        ON CONFLICT(userKey)
        DO UPDATE SET
        datas = excluded.datas
    `
}
world.onPlayerJoin(async ({ entity }) => {
    const [data] = await db.sql`SELECT * FROM YJZTX WHERE userKey = ${entity.player.userKey} LIMIT 1`;
    if (data) {
        var Data = JSON.parse(data.datas);
        for (let i in PlayerData) { 
            Data[i] ? entity[i] = Data[i] : entity[i] = PlayerData[i]
        };
        console.log(getPlayerData(entity))
    } else {
        initPlayer(entity);
    }
});
world.onPlayerLeave(async ({ entity }) => {
    await savePlayer(entity)
})

用法:在PlayerData里随便增添新的要保存的数据即可(

点赞0


评论


锦衣侠客锦衣侠客

ddd

点赞0


评论


guxia666guxia666

就这么说矩阵就好比一个排序算法

排序有很多无数先人做出了属于他们的算法,拿一个最简单的例子:

function selectionSort(arr) {
            var len = arr.length;
            var minIndex, temp;
            for (var i = 0; i < len - 1; i++) {
                minIndex = i;
                for (varj = i + 1; j < len; j++) {
                    if (arr[j] < arr[minIndex]) {    // 寻找最小的数
                        minIndex = j;                // 将最小数的索引保存
                    }
                }
                temp = arr[i];
                arr[i] = arr[minIndex];
                arr[minIndex] = temp;
            }
            return arr;
        }

这个原理就是讲一大堆数组array依次检测,然后再取小的挪到前列,这个适合排行榜,但有sort函数了一般人都不用这个,这个最多就是地形生成排序

第二个就是你说的矩阵

center_image

代码:

/**
 * 思路1 非原地算法,
 * 第一次遍历将值为0的横坐标与纵坐标存入表中,
 * 第二次遍历将横坐标与纵坐标对应的行与列置为0
 * @param matrix
 */
var setZeroes = function (matrix) {
    var s1 = new Set()
    var s2 = new Set()
    for (var i = 0; i < matrix.length; i++) {
        for (var j = 0; j < matrix[i].length; j++) {
            if (matrix[i][j] === 0) {
                s1.add(i);
                s2.add(j);
            }
        }
    }
    for (var i = 0; i < matrix.length; i++) {
        if (s1.has(i)) {
            matrix[i] = new Array(matrix[i].length).fill(0)
            continue
        }
        for (var j = 0; j < matrix[i].length; j++) {
            if (s2.has(j)) {
                matrix[i][j] = 0
            }
        }
    }
    return matrix
};

var result = setZeroes([
    [0, 1, 2, 0],
    [3, 4, 5, 2],
    [1, 3, 1, 5]
])
console.log(result)

 

 

点赞0


评论


guxia666guxia666

 

这个是矩阵返回值

center_image

点赞0


评论


OzerOzer

挖。

点赞0


评论