找回密码
 点一下
查看: 1454|回复: 21

请问一下如何单纯用T来应用二进制?

[复制链接]
发表于 2013-5-12 23:40:17 | 显示全部楼层 |阅读模式
本帖最后由 冷漠 于 2013-5-16 22:25 编辑

JASS实在无能为力...

请问单单用T可以吗....
发表于 2013-5-13 01:30:07 | 显示全部楼层
你就不断地除2求余就好了啊。

点评

我忽然理解头目的不断除2是什么意思了……原来不断除2判断是否整数就可以了……  发表于 2013-5-17 22:46
学渣表示不懂啊……  详情 回复 发表于 2013-5-13 18:12
回复

使用道具 举报

发表于 2013-5-13 01:49:01 | 显示全部楼层
头目早!
回复

使用道具 举报

发表于 2013-5-13 02:00:27 | 显示全部楼层
本帖最后由 lo 于 2013-5-13 12:06 编辑

因为漏掉了一部分内容,所以我又回来了……

十进制转化为二进制,整数部分是除2取余,小数部分是乘2取整。

例:将41.41转化为二进制:
41.41=41+0.41

整数部分:
41÷2=20……1
20÷2=10……0
10÷2=5……0
5÷5=2……1
2÷2=1……0
1÷2=0……1
除法做完了,把余数反向排列,再将商继续除2取余。41转化为二进制就是101001;

小数部分:
0.41×2=0.82
0.82×2=1.64
0.64×2=1.28
0.28×2=0.46
0.46×2=0.96
0.96×2=1.92
0.92×2=1.84
……
将小数部分乘2,所得积的整数部分按正向排列,小数部分继续乘2取整。0.41转化为二进制就是0.0110011……

所以41.41转化为二进制就是101001.0110011……

点评

大致上对二进制有点理解了,那请问如果要应用在触发当中要如何应用呢? 比如,一个1000点MP的英雄发动XX技能,然后转化其9%的MP为攻击力加成,那么就是加90点,那这个过程需要如何处理呢?  详情 回复 发表于 2013-5-13 18:13
回复

使用道具 举报

发表于 2013-5-13 02:14:37 | 显示全部楼层
lo好早啊~~
回复

使用道具 举报

发表于 2013-5-13 02:40:24 | 显示全部楼层
因为“萌”放着时间长了会坏掉的,所以lo一早就来卖萌啦……
回复

使用道具 举报

 楼主| 发表于 2013-5-13 18:12:05 | 显示全部楼层
麦德三世 发表于 2013-5-13 01:30
你就不断地除2求余就好了啊。

学渣表示不懂啊……
回复

使用道具 举报

 楼主| 发表于 2013-5-13 18:13:32 | 显示全部楼层
lo 发表于 2013-5-13 02:00
因为漏掉了一部分内容,所以我又回来了……

十进制转化为二进制,整数部分是除2取余,小数部分是乘2取整 ...

大致上对二进制有点理解了,那请问如果要应用在触发当中要如何应用呢?

比如,一个1000点MP的英雄发动XX技能,然后转化其9%的MP为攻击力加成,那么就是加90点,那这个过程需要如何处理呢?
回复

使用道具 举报

发表于 2013-5-13 19:31:57 | 显示全部楼层
http://bbs.islga.org/forum.php?m ... 0&fromuid=48332

T的算法有,自己去看……

点评

完全看不懂……进入游戏测试一下也看不明白……  详情 回复 发表于 2013-5-13 20:06
回复

使用道具 举报

 楼主| 发表于 2013-5-13 20:06:38 | 显示全部楼层
lo 发表于 2013-5-13 19:31
http://bbs.islga.org/forum.php?mod=redirect&goto=findpost&ptid=1738433&pid=1491030&fromuid=48332

...

完全看不懂……进入游戏测试一下也看不明白……
回复

使用道具 举报

发表于 2013-5-13 20:18:03 | 显示全部楼层
直接测试不可能明白的,老老实实看触发去……话说你都有大概了解了还是看不懂触发么……

点评

我就是看完触发看得糊里糊涂的才进入游戏测试一下看看,然后更加糊里糊涂…… 我本身对二进制没有任何研究,但为了提高地图效率才从头开始学的……  详情 回复 发表于 2013-5-13 20:30
回复

使用道具 举报

 楼主| 发表于 2013-5-13 20:30:03 | 显示全部楼层
lo 发表于 2013-5-13 20:18
直接测试不可能明白的,老老实实看触发去……话说你都有大概了解了还是看不懂触发么……

我就是看完触发看得糊里糊涂的才进入游戏测试一下看看,然后更加糊里糊涂……

我本身对二进制没有任何研究,但为了提高地图效率才从头开始学的……
回复

使用道具 举报

 楼主| 发表于 2013-5-13 20:54:56 | 显示全部楼层
我想知道像这个演示中的做法转换为T的话需要怎么写?

Good.w3x

20.5 KB, 下载次数: 1

回复

使用道具 举报

 楼主| 发表于 2013-5-15 01:36:34 | 显示全部楼层
a
    事件
        玩家 - 玩家1(红色) 按下Esc键
    条件
    动作
        设置 Ability[1] = 01
        设置 Ability[2] = 02
        设置 Ability[3] = 04
        设置 Ability[4] = 08
        设置 Ability[5] = 16
        设置 Ability[6] = 32
        设置 Ability[7] = 64
        设置 Integer_01 = (力量 对 血魔法师 0001 <预设> (包括 加成))
        For循环整数A从 1 到 7, (如果 ((血魔法师 0001 <预设> 的 Ability[循环整数A [R]] 技能等级) 不等于 0) 成立则 (单位 - 为 血魔法师 0001 <预设> 删除 Ability[循环整数A [R]]) 否则 (--------   --------))
        For循环整数A从 1 到 7, 做动作
            Loop - 动作
                如果所有条件成立则做动作1,否则做动作2
                    If - 条件
                        (Integer_01 mod 2) 等于 1
                    Then - 动作
                        单位 - 为 血魔法师 0001 <预设> 添加 Ability[循环整数A [R]]
                        单位 - 设置 血魔法师 0001 <预设> 打开 Ability[循环整数A [R]] 永久性
                        设置 Integer_01 = ((Integer_01 - 1) / 2)
                    Else - 动作
                        设置 Integer_01 = (Integer_01 / 2)











请问这样的做法对吗?

@麦德三世
@lo  
回复

使用道具 举报

发表于 2013-5-15 09:05:11 | 显示全部楼层
虽说这样可以,不过这样做写有点麻烦……而且……其实根本没有转换成二进制嘛……

这个似乎是根据力量提升英雄属性的触发吧。

设置 Ability[1] = 01
设置 Ability[2] = 02
设置 Ability[3] = 04
设置 Ability[4] = 08
设置 Ability[5] = 16
设置 Ability[6] = 32
设置 Ability[7] = 64
设置 Integer = (力量 对 血魔法师 0001 <预设> (包括 加成))
For循环整数A从 1 到 7, (单位 - 为 血魔法师 0001 <预设> 删除 Ability[循环整数A [R]])
For循环整数B从 1 到 7, 做动作
    Loop - 动作
        如果所有条件成立则做动作1,否则做动作2
            If - 条件
                Integer 大于或等于 (2的(循环整数B - 1)次幂)
            then - 动作
                设置 Integer 等于 (Integer - (2的(循环整数B - 1)次幂))
                单位 - 为 血魔法师 0001 <预设> 添加 Ability[循环整数B [R]]
                单位 - 设置 血魔法师 0001 <预设> 打开 Ability[循环整数B [R]] 永久性
            Else - 动作
                无动作

点评

…… 按照你的写法我做完后测试发现不对啊…… 我把两份演示都发上来 麻烦帮我看看……  详情 回复 发表于 2013-5-15 18:27
回复

使用道具 举报

 楼主| 发表于 2013-5-15 18:27:27 | 显示全部楼层
lo 发表于 2013-5-15 09:05
虽说这样可以,不过这样做写有点麻烦……而且……其实根本没有转换成二进制嘛……

这个似乎是根据力量提 ...

……

按照你的写法我做完后测试发现不对啊……

我把两份演示都发上来

麻烦帮我看看……

二进制算法2.w3x

18.41 KB, 下载次数: 1

这是lo的

二进制算法.w3x

18.35 KB, 下载次数: 1

回复

使用道具 举报

发表于 2013-5-16 08:43:06 | 显示全部楼层
打不开呀打不开……什么版本WE的……
回复

使用道具 举报

发表于 2013-5-16 10:01:02 | 显示全部楼层
是我疏忽了,循环应该从7到1做动作的……
于是放上演示图,图中单位生命值越低,攻击力越高。附带有趣的小技能。

lo!.w3x

16.28 KB, 下载次数: 14

点评

噢…… 其实我比较好奇别人都是用Mod来求余为啥lo会想到用幂呢? 话说我用的红狼UI居然打不开吗?  详情 回复 发表于 2013-5-16 18:35
回复

使用道具 举报

 楼主| 发表于 2013-5-16 18:35:13 | 显示全部楼层
lo 发表于 2013-5-16 10:01
是我疏忽了,循环应该从7到1做动作的……
于是放上演示图,图中单位生命值越低,攻击力越高。附带有趣的小 ...

噢……

其实我比较好奇别人都是用Mod来求余为啥lo会想到用幂呢?

话说我用的红狼UI居然打不开吗?
回复

使用道具 举报

发表于 2013-5-16 21:17:18 | 显示全部楼层
因为lo很笨啦,所以别人都在用的方法lo不会;然后lo的魔兽也很笨啦,所以同样是红狼却打不开……果然笨蛋要传染的……
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-5-6 06:11 , Processed in 0.502893 second(s), 30 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表