liuqinh2s' blog

Do something cool!

最近玩了 Beecarbonize,一款欧盟资助的减碳排放小游戏。属于公益类,教育类的游戏。非常的简单有趣。遂萌生了自己也做一款类似的游戏,打算模仿这个玩法,换一个主题。

该游戏的要素有:

  1. 卡牌
    • 事件牌

先来实现一个最简版的 deepClone

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
function deepClone(obj) {
if (
obj == null ||
typeof obj == "string" ||
typeof obj == "boolean" ||
typeof obj == "number"
) {
return obj;
}
if (Array.isArray(obj)) {
let temp = [];
for (let i = 0; i < obj.length; i++) {
temp[i] = deepClone(obj[i]);
}
return temp;
} else if (typeof obj == "object") {
let temp = {};
for (let k of Object.keys(obj)) {
temp[k] = deepClone(obj[k]);
}
return temp;
}
}

迭代版本的 deepClone

最近 EDA 项目在解决一些性能上的问题,首当其冲的就是 deepClone,各种地方都在用,且十分卡性能。如何解决这个问题呢?

由于我们项目中的 deepClone 是一个递归版本的 deepClone,所以应该可以通过把它改成迭代版的 deepClone 来提速。

用栈来实现迭代。函数调用栈本身也是栈,但开销肯定比自己写的栈要大一些。

阅读全文 »

以 5 结尾的数的平方,都有一个很好记的速算方式,就是前面的数乘以比它大一的数然后再拼接上 25,比如 25×25 ,就是 2×3 等于 6,再拼接上 25,等于 625。

阅读全文 »

景点推荐游玩时间:

3 月-5 月以及 9 月~11 月(天气凉爽宜人)

推荐路线及景点:

Day1:解放碑—长江索道-洪崖洞

Day2:磁器口—马房湾 66 号江湖菜-四川美术学院—南滨路

Day3:李子坝—鹅岭二厂—南山一棵树

阅读全文 »
0%