查看: 2255|回复: 3

[RMVA发布] 【VA】HASH表的作用

[复制链接]
梦石
0
星屑
50
在线时间
56 小时
注册时间
2012-10-1
回帖
29
发表于 2012-10-8 22:21:52 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
hash表理论上来说是散列表,可以根据输入的键值快速插入,删除和查找相应元素。当然在VA中不知道这个hash数据类型是怎么实现的。最近我在学习内置脚本和看各位的教程学习到了hash表在va中的应用。

va中的hash表象是一个数组,只不过它的下标是任意数据结构。总结了一些好的作用。

1,可以当作一个快速查询的数组。比如,在地图中的一些坐标关联了一些任务数据。假设人物走到一个位置然后按确定键。而接下来要触发的事件跟这个人物所在的位置有关,我们就可以这样来检索这个数据。
[pre lang="ruby" line="1"]thing=hash_data[[$game_player.x,$game_player.y]];[/pre]
当然之前初始化的时候要在那些预订的位置初始化值。

2,可以当作一个集合。很容易判断一个元素是不是在这个集合中。也是同样的例子,人物走到一个位置按确定键,这个时候如果这个位置已经存在数据,就返回真;如果不存在数据,就在这个位置关联数据,并返回假。那么就可以这么些。
[pre lang="ruby" line="1"]tmp=hash_data[[$game_player.x,$game_player.y]];
if(tmp==nil)
hash_data[[$game_player.x,$game_player.y]]=thing;
return false;
else
return true;
end


[/pre]
这样就可以检测是否重复。
梦石
0
星屑
50
在线时间
56 小时
注册时间
2012-10-1
回帖
29
 楼主| 发表于 2012-10-8 22:24:23 | 显示全部楼层
个人感觉va的hash表作用可以当作数组的超集。。。
回复

使用道具 举报

头像被屏蔽
梦石
0
星屑
653
在线时间
3774 小时
注册时间
2011-2-26
回帖
1577

开拓者

发表于 2012-10-8 22:57:34 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复

使用道具 举报

梦石
0
星屑
50
在线时间
56 小时
注册时间
2012-10-1
回帖
29
 楼主| 发表于 2012-10-8 23:13:46 | 显示全部楼层
恩,其实我想说的就是va的hash数据结构在功能上封装了映射键值和冲突检测和这两个麻烦的东西,所以使用的时候可以多用它,在时间上更有效率。我估计也是个链地址的结构。

点评

链地址+1  发表于 2012-10-8 23:21
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部