天工维度魔兽争霸开发者社区-全国最大的TJ集中营-原提百万联盟
标题:
【通用】哈希表的用法和应用
[打印本页]
作者:
Seago
时间:
2020-8-23 19:16
标题:
【通用】哈希表的用法和应用
简介
哈希表是一种数据存储方式。
目前WE主流的数据存储方式可以分为两种,一种是变量,一种是哈希表。数组的本质也是一种变量,游戏缓存基本可以被哈希表取代。
哈希表的使用并不困难,只不过是使用形式与变量有所差异,很多人不愿意接受新鲜事物所以不愿意去尝试探索,另外逆天功能的普及导致了在T作图时哈希表的存在感也不是很高。
使用哈希表存储数据之前需要先创建一个哈希表。哈希表有主次两个索引,均要求使用整数,理论上没有严格的大小限制。可以将哈希表看作是一个二维数组,只不过数组的索引必须是非负的,而哈希表则没有这个限制。
主次两个索引共同确定了一个存储地址。(
扩展:
从这个角度来看,我们也可以利用普通的数组来模拟一个二维数组。如我们想摸拟一个[10,10]维度的二维数组,那么两个索引的取值区间都是[0,9],想要在[1,8]位置上存储数据,则可以通过计算1*10+8=18,得到这个位置的实际索引值是18。)
就方便的角度而言,对于哈希表的两个索引不需要太过刻意的去设计,不重复、且便于自己记录即可,结合具体的应用场景可以添加一些特殊设计。
哈希表应用的示例
最为典型的代表是
逆天自定义
和
逆天局部变量
。
逆天自定义值的本质就是利用哈希表进行存储数据。给某个单位存储数据,则以该单位的整数地址做为主索引,具体的自定义属性作为次索引。如果是对单位类型绑定,则以单位类型作为主索引,以此类推。
索引对应的整数是如何产生的?针对单位、物品、特效等实体,他们都有独一无二的整数地址,即handleId,只要没有被排泄,都是唯一的,所以可以直接获取他们的整数地址作为索引。单位类型、物品类型等,他们本身就是一种特殊的整数,可以直接作为索引。
而自定义属性,通常是采用字符串的哈希值这个方式来转换成整数的。
如何确定主次索引?为什么要用单位来作为主索引、自定义属性作为次索引?主次索引的选择并没有严格的规范或限制,通常来说,自定义值是单位的一种扩展属性,存在着一种从属关系,自然而然就有了这种设计。当一个单位死亡之后,我们需要清除相关的数据,以单位为主索引,可以直接清空他对应的子表,即属于他的所有自定义值都可以被一次性清空。如果以自定以值作为主索引,那么只能一次性清空所有单位的这种自定义值,而无法针对某个单位进行统一的清除。总结来说,
谁主谁次主要还是根据需求来,看看是否有一种潜藏的从属关系或分类需求
。
哈希表可以有哪些妙用
有的人会觉得,都是存储数据,用全局变量就可以了,干嘛要用哈希表?相比之下,变量更加松散,获取比较死板。而哈希表是一组
结构化
的数据,可以通过一系列的运算来集体获取,方便配置。
比较简单的使用,可以给不同的关卡配置不同的怪物、属性加成、奖励信息等,将关数作为主索引,
随着关卡的推进,自动获取数据
。
另外许多新手比较头疼的计时器获取不到触发内的变量,也可以通过哈希表来传递,主索引使用计时器的整数地址即可。
复杂一点的,可以结合地图的玩法策划,实现一些人物属性、UI配置等的扩展,我此前的可配置物品合成系统也是基于哈希表实现的,只需要配置合成公式,在获取新物品的时候可以自动检查并合成,
而不需在触发种编写冗长的if条件进行判断。
在T作图时,通常都是
事件驱动
的设计思路,直接使用逆天自定义值这类封装好的功能即可,操作简单。而J作图时,通常是
功能驱动
的设计思路,可以结合哈希表编写一些复杂的功能系统。
作者:
尘怨入梦
时间:
2020-8-23 19:18
阿巴阿巴,大佬
作者:
流行小炮
时间:
2020-8-24 05:26
感谢楼主
作者:
CNWorth
时间:
2020-8-24 09:01
这个实在,学习了~
作者:
freecovld
时间:
2020-8-24 09:47
6666666666.看看
作者:
q931358177
时间:
2020-8-25 19:33
阿巴阿巴,大佬
作者:
alwk
时间:
2020-8-26 06:50
啊吧~阿吧·~学习一下
作者:
a505214683
时间:
2020-8-28 01:03
大佬 学习了
作者:
nelson
时间:
2020-8-28 16:10
阿巴阿巴,大佬
作者:
雨散云飞
时间:
2020-8-29 11:18
看看!!!!!
作者:
mpdf1995
时间:
2020-8-29 14:25
厉害了我的楼主
作者:
孤坟大叔
时间:
2020-8-29 14:55
有没有图片呀,,
作者:
Seago
时间:
2020-8-29 17:51
孤坟大叔 发表于 2020-8-29 14:55
有没有图片呀,,
因为平时是用J的,不太习惯搞T,后面会酌情加一些图片说明
作者:
Sun丶包子
时间:
2020-8-29 22:25
大佬 学习了
作者:
chance125
时间:
2020-9-1 14:10
过来看看 学习
作者:
q345895843
时间:
2020-9-3 16:38
支持一下~
作者:
yo梦
时间:
2020-9-5 15:01
感谢楼主
作者:
qzx378168227
时间:
2020-9-5 22:11
感谢楼主,学习一下
作者:
sanyangzhihuo
时间:
2020-9-8 17:26
学习下 谢谢大佬
作者:
瀚海漂流
时间:
2020-9-11 03:13
阿巴阿巴,大佬
作者:
jplenpdl
时间:
2020-9-19 01:36
看看!!!!!
作者:
347780682
时间:
2020-9-22 17:16
学习学习
作者:
Phantom丶
时间:
2020-9-28 17:00
感谢大佬
作者:
W2472032347
时间:
2020-10-10 19:51
感谢大佬分享
作者:
FrostKing
时间:
2020-12-9 12:14
大佬牛逼
作者:
demonsung
时间:
2020-12-16 14:07
学习学习
作者:
uwjhrqxc
时间:
2021-1-3 20:03
感谢!感谢!
作者:
天天曰
时间:
2021-1-6 15:54
感谢楼主
作者:
nkjvxdaf
时间:
2021-1-23 16:42
大佬 学习了
作者:
萌新灰尘
时间:
2021-1-28 01:36
感谢楼主
作者:
泛光灯
时间:
2021-2-2 01:09
谢谢分享!
作者:
yrtpestu
时间:
2021-2-4 00:17
学习了学习了谢谢分享
作者:
gandi2019
时间:
2021-2-16 16:54
学习学习
作者:
lhd11112222
时间:
2021-3-9 12:46
好东西 学习一下
作者:
youwangjile
时间:
2021-3-11 22:09
学习了!不错很详细
作者:
qqwwee147159
时间:
2021-3-18 02:52
学会了 活到老学到老
作者:
11cooker
时间:
2021-3-18 16:04
顶萌新路过
作者:
yingsuhui
时间:
2021-4-10 17:25
好东西 加油
作者:
星火
时间:
2021-4-26 22:17
感谢分享
作者:
han6991833
时间:
2021-4-27 16:46
瞧一瞧 看一看
作者:
cxkj1288
时间:
2021-4-28 09:08
谢谢分享!
作者:
天轮
时间:
2021-5-10 16:41
支持一波
作者:
自由如风
时间:
2021-7-12 10:40
这个不错
作者:
uepthsrq
时间:
2021-7-29 16:20
感谢楼主
作者:
稻草刀
时间:
2021-8-2 18:32
学习学习下
作者:
幻夜的风
时间:
2021-9-9 20:15
学习一下
作者:
枫林小白虎
时间:
2021-9-9 21:08
学习一下
作者:
jin2827
时间:
2021-9-17 21:38
正好需要 感谢 可以学习一波
作者:
x352415
时间:
2021-9-30 19:35
学习了,不错,讲的太有道理了
作者:
贝蒂
时间:
2021-10-10 07:35
今天开始学习 都看一下
作者:
601831398a
时间:
2021-10-12 11:53
刚好需要学习~~
作者:
MotherLand
时间:
2021-10-29 13:54
逆天等于哈希表
作者:
MotherLand
时间:
2021-10-29 13:55
逆天等于哈希表
作者:
hayagu
时间:
2021-10-29 16:18
感谢大佬分享 大佬牛蛙
作者:
牧少皇
时间:
2021-11-19 03:44
被训了 来补课
作者:
xianshi
时间:
2021-11-20 02:16
学习一下!
作者:
万青
时间:
2021-12-16 19:21
走一走看一看
作者:
小脑薯胖了胖
时间:
2021-12-17 00:29
继续学习
作者:
kabasiki
时间:
2022-3-19 13:27
大佬牛逼
作者:
pfdtzbjk
时间:
2022-4-9 23:31
感谢大佬分享!
作者:
根本停不下来
时间:
2022-4-11 06:04
谢谢分享
作者:
斯内克
时间:
2022-5-5 09:44
这个实在,学习了~
作者:
yangxinlin
时间:
2022-5-8 00:35
谢谢大佬教程
作者:
rg001
时间:
2022-5-14 18:04
好东西,学习了
作者:
无忧小木子
时间:
2022-5-17 15:33
感谢大佬,学到了学到了
作者:
梦醒时分
时间:
2022-5-30 04:54
刚好需要学习哈希表 看看教程
作者:
qq2442519362
时间:
2022-6-4 20:35
神了,看完突然就会了
作者:
初心
时间:
2022-6-15 20:54
学习学习!
作者:
学技术哪家强
时间:
2022-6-19 11:36
这个一定要学
作者:
pyx
时间:
2022-6-19 23:06
这我必须给你一个大大的赞啊
作者:
zebin0821
时间:
2022-6-28 09:49
看看有多长
作者:
raxfal
时间:
2022-7-14 09:53
感谢分享
作者:
gxmy2012
时间:
2022-7-17 07:04
感谢分享前来学习
作者:
a1052808697
时间:
2022-8-6 11:00
啊吧!阿吧!学习!学习!
作者:
李再媚
时间:
2022-9-9 14:42
这还有异常内容,其实大多时候都是太长不看,但是写得好的,还是会忍着看的!
作者:
神之旅
时间:
2022-10-3 17:38
最近正好在学习哈希表,来看看
作者:
chenhanshi
时间:
2022-10-5 11:24
这个实在,学习了~
作者:
是我是我
时间:
2022-10-5 22:28
阿巴阿巴,大佬
作者:
reoalugn
时间:
2022-10-8 21:57
这个实在,学习了~
作者:
angiou
时间:
2022-10-29 18:46
真的很不错 感谢!
作者:
wdjnabon
时间:
2022-11-16 16:01
学习学习
作者:
永恒之奕
时间:
2022-11-26 17:56
我来看看
作者:
470908830
时间:
2023-1-2 07:03
感觉说的不错啊
作者:
观茶员
时间:
2023-1-18 13:34
哈希表的介绍
作者:
q782263324
时间:
2023-2-22 14:07
学习!!!!!!!!!!!!!!!!
作者:
GMs2484990328
时间:
2023-5-23 00:46
有用的教学 有视频就好了
作者:
15515521992
时间:
2023-10-13 10:05
学习学习
作者:
人间失格
时间:
2023-11-27 22:17
大佬 学习了
作者:
不吃果子狸
时间:
2023-12-6 19:06
我是一个没有脑子的傻逼我是一个没有脑子的傻逼
作者:
eevvok
时间:
2024-2-24 14:17
支持一下,辛苦了,祝愿天工越来越好
作者:
敏敏敏敏敏敏
时间:
2024-7-15 16:53
感谢大佬,学习一下
作者:
qwe136183
时间:
2024-8-20 07:46
学习 受教了
欢迎光临 天工维度魔兽争霸开发者社区-全国最大的TJ集中营-原提百万联盟 (http://bbs.mvprpg.com/)
Powered by Discuz! X3.4