• QQ21031394

    工作时间

    周一至周五:9:30-18:30

    周末及节日:根据情况调休

  • 手机版二维码

    随时手机查素材

  • 扫描二维码

    加入官方QQ群

站长推荐
Seago 一级会员
  • 未知地域
  • 84发帖数
  • 20主题数
  • 0关注数
  • 24粉丝

[Seago教程] 【通用】哈希表的应用实例(三)

[复制链接]
Seago 发表于 2020-8-29 18:38:06 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题 <
提莫作坊QQ群:提莫作坊www.tbwlm.cn

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本帖最后由 Seago 于 2020-8-29 18:39 编辑

哈希表的应用实例(三)——面向接口编程
“面向接口编程”可以说是面向对象的一种实现方式。
Jass并不能实现狭义概念上的“接口”,这里说的是广义上的接口思想。通俗来说,“接口”可以理解为双方达成共识的一种交互规则。
比如插头和插座。对插座而言,只要插头的型号和它匹配就可以插进去通电,至于插头所连接的到底是什么电器他并不关心。对于插头而言,只要有和它匹配的插座他就可以插上去通电供电器使用,而并不在乎到底是哪里的插座。
不难发现,“接口”使得数据与功能得以分离,让我们的系统搭建更加灵活。我们可以专注于功能的开发,而不在乎数据的获取形式——因为彼此已经达成了统一的数据交互方式。换言之,我们可以脱离地图独立完成功能的编码,具体的数值可以后续再进行补充而不影响我们已经开发好的功能。

以(二)中的实例练功房刷兵来说。
核心功能是刷兵,刷兵需要两个核心属性:“怪物类型”、“刷兵数量”。所以我们抽象出了一个虚拟的“练功房”对象,每次刷兵时只需要去获取对应对象的相应属性即可。刷兵的功能是独立的触发,对象数据的填充可以再别处进行,即:初始化时预置默认数据、变更怪物类型、数量时直接修改“练功房”的属性。
第一部分:
预置数据。lgf这个哈希表变量可以看作是我们设计的对象,也可以看作是这个功能的接口。
刷兵变量.png

第一部分

第一部分

用不同的整数来分别作为怪物类型(typeKey)、怪物数量(numKey)在哈希表中的索引。主索引上的1用来代表是玩家1,其他玩家数据依次类推。
向哈希表中填入数据的过程就是进行接口的实例化。
(这里要说明一点,在jass中,单位类型、物品类型其实都是整数,所以哈希表存数据时只能保存整数,而没有单位类型的选项。这也是我说用T不方便的原因。T对于哈希表的处理确实不太友好。)

第二部分:
刷兵功能

第二部分

第二部分

这里只是简单处理。根据不同的玩家来获取到刷兵的数量进行循环,创建单位时获取怪物类型。创建的位置、面向角度等,也可以考虑作为练功房的属性。

第三部分:
修改数据

第三部分

第三部分

这一部分是以购买物品的形式进行怪物的切换。自定义值的设置部分被我省略了,和第一部分一起进行即可。
直接将物品的自定义值赋予练功房的相关属性。避免了繁琐的if判断。

我们借鉴了“接口”的概念并进行了简化——根据功能的需求来设计对象的属性,这一设计就可以看作是这个功能对外的接口,而哈希表中记录的对象的不同数据就可以看作是对接口的不同实现方式。示例中只是进行了简化的形式展示,具体应用时自行完善。


游客,如果您要查看本帖隐藏内容请回复

楼主热帖
免责条款:本站仅提供学习的平台,所有资料均来自于网络,版权归原创者所有!本站不提供任何保证,并不承担任何法律责任,如果对您的版权或者利益造成损害,请提供相应的资质证明,我们将于3个工作日内予以删除。

本网站所收集的部分公开资料来源于互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。本站部分作品是由网友自主投稿和发布、编辑整理上传,对此类作品本站仅提供交流平台,不为其版权负责。如果您发现网站上有侵犯您的知识产权的作品,请与我们取得联系,我们会及时修改或删除。

本网站所提供的信息,只供参考之用。本网站不保证信息的准确性、有效性、及时性和完整性。本网站及其雇员一概毋须以任何方式就任何信息传递或传送的失误、不准确或错误,对用户或任何其他人士负任何直接或间接责任。在法律允许的范围内,本网站在此声明,不承担用户或任何人士就使用或未能使用本网站所提供的信息或任何链接所引致的任何直接、间接、附带、从属、特殊、惩罚性或惩戒性的损害赔偿。

精彩评论43

jzclikeyz21 发表于 2020-8-30 11:39:25 | 显示全部楼层 <
感谢楼主的分享!
mpdf1995 发表于 2020-8-30 17:29:15 | 显示全部楼层 <
厉害了我的楼主
雨散云飞 发表于 2020-8-30 23:29:32 来自手机 | 显示全部楼层 <
大佬,讲解不错,下次讲下自定义值
[img]https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fd.zdqx.com%2Fhyrz_161
 楼主| Seago 发表于 2020-8-31 02:06:12 | 显示全部楼层 <
雨散云飞 发表于 2020-8-30 23:29
大佬,讲解不错,下次讲下自定义值

自定义值其实没啥好讲的,就是YDWE封装好的一套哈希表用法。主要我平时是用J的,几乎没用过T,所以对【逆天】的很多功能只是知道他的原理,但具体用法我讲不出太多细节。
CNWorth 发表于 2020-9-1 09:31:38 | 显示全部楼层 <
崔更崔更~继续学习~
Sun丶包子 发表于 2020-9-1 22:39:43 | 显示全部楼层 <
提示: 作者被禁止或删除 内容自动屏蔽
chance125 发表于 2020-9-2 09:43:08 | 显示全部楼层 <
学习了学习了
q345895843 发表于 2020-9-3 16:39:30 | 显示全部楼层 <
支持一下
[发帖际遇]: q345895843 在老提莫家吃蘑菇,花了 23 枚 绿钻. 幸运榜 / 衰神榜
sanyangzhihuo 发表于 2020-9-3 16:55:23 | 显示全部楼层 <
秒啊 方便好多

强调下版规的规定,如有恶意灌水从重处罚:
=====发表主题规则=======
1.主题内容请一定要附带预览图片,谢谢;
2.搬运来的东西请尽量不要卖钱!;
3.发帖有任何疑问请联系QQ21031394;
=====发表回复规则=======
1.禁止直接复制标题内容的;
2.禁止纯数字或者纯字母的;
3.禁止乱打一通文不对题;
4.禁止屠版和刷分行为;
第一次扣分处理,第二次扣分+警告,警告三次禁言三天,绝不手软,情况严重的直接封号,请大家珍惜自己的账号!

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

猜你喜欢
天工维度唯一QQ群
786014245

欢迎进群交流,入群答案:编辑器

  • 官方在线客服

    QQ客服:小雪

    点击交谈

    QQ客服:砂糖

    点击交谈

    团队老大:荀公子

    商务合作
  • 上海市静安区共和新路4718号宏慧新汇园6号楼603室

  • 手机扫码查看手机版

    手机查找资源更方便

  • 扫一扫关注官方微信

    加入官方QQ群

Powered by 天天RPG&DZX3.4 ©2020-2021 Comsenz Inc.提百万设计( 沪ICP备18032615号-1 )营业执照