二维列表 求点评
scratch吧
全部回复
仅看楼主
level 3
百度网友4039467
楼主
利用克隆体做了一个二维列表,就是每个克隆体都可以有私有列表,然后给克隆体一个编号,需要读取或写入的时候,只需要激活那个克隆体就行了。
在平板上做出来的,画质有点糊,感觉有点没用。贴吧怎么传视频啊?我刚录好的啊。
2025年08月30日 06点08分
1
吧务
level 15
遧傂鼝
克隆体的性能开销比较大,原版sc还有克隆体数量上限,单纯为了存储数据属实有点多此一举
一般而言把二维数组展开成一维数组在sc里就够用了,要实现可变长的那就用分隔符
2025年08月30日 09点08分
2
百度网友4039467
所以我才说感觉没用的。
2025年08月31日 11点08分
☞看破◆苍穹☜
\0是吧
虽然想吐槽但好像还真是一个有点优雅的方案……
2025年09月02日 06点09分
level 13
☞看破◆苍穹☜
你也是个人才。这玩意为了存点数据就必须产生大量克隆体,抛开性能不谈原生sc最多只能存300个成员,而且访问必有延迟
最简单的二维列表是直接拿两个索引算出来一个新的索引。
假设把n维数组A[尺寸1][尺寸2]……[尺寸n]展开成一维数组B[尺寸1*尺寸2*……*尺寸n],则A[索引1][索引2]……[索引n]相当于:
0维:B[0](即普通变量)
1维:B[索引1]
2维:B[索引1*尺寸2+索引2](这是你需要的)
3维:B[索引1*尺寸2*尺寸3+索引2*尺寸3+索引3]
4维:B[索引1*尺寸2*尺寸3*尺寸4+索引2*尺寸3*尺寸4+索引3*尺寸4+索引4]
以此类推。
这样的数组长度是固定的。
2025年09月02日 05点09分
3
level 13
☞看破◆苍穹☜
如果希望数组的长度可变,那么最直接的办法是使用类似动态数组或者链表的结构,但这就得在sc里拿一个列表当堆内存来用了……
还有一种非常直接的办法,就是使用一对关联列表,一个列表存键、一个列表存值,把多维数组的索引拼起来(例如连接字符串)当成键。但这个方法性能会非常差。(当然,性能肯定比你那个好得多,而且实现起来非常简单)
2025年09月02日 05点09分
4
☞看破◆苍穹☜
这个方案本质上可以认为是一种哈希表
2025年09月02日 06点09分
level 13
☞看破◆苍穹☜
这是一个非常简洁但非常笨的方案,如果对性能的需求不高,可以考虑使用这个方案。请自行通过拼接字符串来获得数组的键。具体怎么拼接随你。
2025年09月02日 06点09分
5
level 3
百度网友4039467
楼主
虽然缺点确实多,但是我也找不到它的优点。别喷性能了,还有的是更耗性能的东西。
2025年09月03日 09点09分
6
level 3
百度网友4039467
楼主
虽然它性能开销大,占用克隆体上限,读写有延迟。唯一的优点就是不需要任何东西作为间隔符,什么都可以存储。但我就是拿这个→┢当分隔符,我也不会用这个发明的。有人能帮我开发一下吗?
2025年09月05日 13点09分
7
☞看破◆苍穹☜
有间隔符也可以什么都能存储啊。。猜你喜欢:转义字符
2025年09月07日 01点09分
百度网友4039467
居然是转义字符,我居然没想到。好了,它现在一个优点都没有了。
2025年09月12日 11点09分
level 7
哈里520
思路有两个:
1,只做一个本体,本体包含静态脚本和动态脚本,需要用到多个的时候,再进行克隆,此处本体不隐藏
2,需要用到整排个体,就将本体隐藏放在一边,克隆体按序列克隆,控制序列
2025年09月18日 06点09分
8
1