找回密码
 点一下
查看: 1983|回复: 22

就一个超级简单的计算,编辑器都算不对?

[复制链接]
发表于 2018-11-27 18:55:04 | 显示全部楼层 |阅读模式
本帖最后由 hzmwe 于 2018-11-27 19:19 编辑

bbbb.jpg
两个整数数组用算法实数计算 编辑器显示=0
为什么不等于0.5?
 楼主| 发表于 2018-11-27 19:18:27 | 显示全部楼层
补充下:上图结果,赋值和算法都是实数
搞不懂这10秒能解决的计算,到了编辑器里都出问题..........
回复

使用道具 举报

 楼主| 发表于 2018-11-27 19:21:39 | 显示全部楼层
如何计算才能=0.5?
回复

使用道具 举报

发表于 2018-11-27 19:44:40 | 显示全部楼层
本帖最后由 yxxiaobin 于 2019-9-7 21:45 编辑

我以为是下述解释,但根据7楼priceles的解释,我测试了一下,果然是舍弃不能整除的部分,所以无论如何也不会进位。
错误解释:
1.  0.5属于实数,整数与整数进行计算,输出结果依然是整数,如果不是整数,那么编辑器会帮你保留到整数。
2.  既然是保留,那么根据四舍五入,0.5应该进位到1,为什么是0呢?这是因为最公平的做法是4舍6入,而5总是舍入为偶数。这么做能尽量减少误差逐渐积累,使数值尽量精确。0.5介于0和1之间,0为偶数,所以0.5舍入以后,结果为0。




正确的解释是:仅计算整数部分,余数会被舍弃。实际结果相当于做实数计算后再用trunc函数取整。所以1/2=0,3/2=1。
感谢priceles的分享。

点评

多谢前辈这么耐心的解释,按你的说法,先定义一个实数,计算出来是对的 就是觉的图上的,结果已经我定义为实数,算法也是采用实数,计算出来确是不对 还要先把一个整数定义为实数再参与计算,就这简单的计算,确要  详情 回复 发表于 2018-11-27 20:20
回复

使用道具 举报

发表于 2018-11-27 19:48:12 | 显示全部楼层
正确做法:将结果合参与计算的任意一个数定义为实数,或者在计算时,使用实数算法,并将任意一个数转换为实数。
回复

使用道具 举报

 楼主| 发表于 2018-11-27 20:20:57 | 显示全部楼层
yxxiaobin 发表于 2018-11-27 19:44
楼主的算法基础需要恶补啊。
1.  0.5属于实数,整数与整数进行计算,输出结果依然是整数,如果不是整数, ...

多谢前辈这么耐心的解释,按你的说法,先定义一个实数,计算出来是对的
就是觉的图上的,结果已经我定义为实数,算法也是采用实数,计算出来确是不对
还要先把一个整数定义为实数再参与计算,就这简单的计算,确要搞的如此麻烦,唉..........
回复

使用道具 举报

发表于 2018-11-27 21:59:05 | 显示全部楼层
整数的除法计算直接舍弃不能整除的部分,因此3/2等于1,99除50等于1,这在c语言和类c语言里计算结果都是一样的。在星际2也一样。

点评

感谢分享。  发表于 2018-11-28 10:25
我对专业程序语言是不了解,虽说是很小的问题,也多谢各位前辈的大力帮助.......  详情 回复 发表于 2018-11-28 00:02
回复

使用道具 举报

 楼主| 发表于 2018-11-28 00:02:19 | 显示全部楼层
priceles 发表于 2018-11-27 21:59
整数的除法计算直接舍弃不能整除的部分,因此3/2等于1,99除50等于1,这在c语言和类c语言里计算结果都是一 ...

我对专业程序语言是不了解,虽说是很小的问题,也多谢各位前辈的大力帮助.......
回复

使用道具 举报

发表于 2018-11-28 00:30:40 | 显示全部楼层
你觉得是2个整数相除可以直接得到一个实数结果。然而计算机里,整数除整数结果一样也是整数,是先得到一个整数结果,然后再转化为实数。你如果想做实数范围内的计算,那最初的运算数就用实数就好了,整数和实数的存储格式并不一样
回复

使用道具 举报

 楼主| 发表于 2018-11-28 15:04:39 | 显示全部楼层
作为计算机专业语言来说,几位前辈说的都是对的,但作为一个游戏设计编辑器,不是人人都是程序员,能适当简化就该简化
下图也是个专业软件,做起来根本没那么麻烦,这种计算3秒写好了,而且函数功能,DLL支持能力,丝毫不逊色于这个游戏编辑器
图上是个排序代码
kkkk.jpg

点评

你拿一个游戏编辑器跟一个编程软件比?经常见你说这是啥bug那又是啥bug,你要是觉得bug多不好用就不要用啊,纯靠编辑XML也是可以的  详情 回复 发表于 2018-11-28 15:38
回复

使用道具 举报

发表于 2018-11-28 15:38:37 来自手机 | 显示全部楼层
hzmwe 发表于 2018-11-28 15:04
作为计算机专业语言来说,几位前辈说的都是对的,但作为一个游戏设计编辑器,不是人人都是程序员,能适当简 ...

你拿一个游戏编辑器跟一个编程软件比?经常见你说这是啥bug那又是啥bug,你要是觉得bug多不好用就不要用啊,纯靠编辑XML也是可以的

点评

图上不是编程软件,是个炒股软件 另外我说了几个可能的BUG,也不是无中生有 单位框选数量都发生变化了,但是不触发 伤害响应,需要的效果已经给了,还是不响应 单位碰撞方式,按编辑器的描述做,出来效果根本不  详情 回复 发表于 2018-11-28 15:52
回复

使用道具 举报

 楼主| 发表于 2018-11-28 15:52:54 | 显示全部楼层
超级007x 发表于 2018-11-28 15:38
你拿一个游戏编辑器跟一个编程软件比?经常见你说这是啥bug那又是啥bug,你要是觉得bug多不好用就不要用 ...

图上不是编程软件,是个炒股软件
另外我说了几个可能的BUG,也不是无中生有
单位框选数量都发生变化了,但是不触发
伤害响应,需要的效果已经给了,还是不响应
单位碰撞方式,按编辑器的描述做,出来效果根本不符合描述
你可以看下我发的贴是否如此?还是我在无中生有呢?
难不成有BUG还不能让人说不成。。。。。。

点评

这是你的逻辑理解问题,那个动作明明就叫单位已被框选,响应条件只在于有单位从未被框选到已被框选的状态,根本就不是你说的框选数量变化  详情 回复 发表于 2018-11-28 17:29
回复

使用道具 举报

发表于 2018-11-28 17:29:48 来自手机 | 显示全部楼层
hzmwe 发表于 2018-11-28 15:52
图上不是编程软件,是个炒股软件
另外我说了几个可能的BUG,也不是无中生有
单位框选数量都发生变化了 ...

这是你的逻辑理解问题,那个动作明明就叫单位已被框选,响应条件只在于有单位从未被框选到已被框选的状态,根本就不是你说的框选数量变化

点评

作为编辑器论坛,有问题大家应该要提出来的是吧 我作为编辑器新手确实有不少不懂的地方,但我每次来问的,都是简单的概念问题,并没有极为复杂的问题 也并没有无中生有的乱说一通。。。肯定我也有理解不正确地方,  详情 回复 发表于 2018-11-28 17:53
回复

使用道具 举报

 楼主| 发表于 2018-11-28 17:53:08 | 显示全部楼层
超级007x 发表于 2018-11-28 17:29
这是你的逻辑理解问题,那个动作明明就叫单位已被框选,响应条件只在于有单位从未被框选到已被框选的状态 ...

作为编辑器论坛,有问题大家应该要提出来的是吧
我作为编辑器新手确实有不少不懂的地方,但我每次来问的,都是简单的概念问题,并没有极为复杂的问题
也并没有无中生有的乱说一通。。。肯定我也有理解不正确地方,也欢迎各位前辈的指正。。。。
前辈指正讨论我欢迎,但没必要发生争吵,谢谢!

点评

如果觉得我的语气偏激,我向你道歉。 但告诉你原因,你不太理解,让你多测试,你又嫌麻烦。做游戏很考验细心和耐心,而且编辑器是非常严谨的,暴雪经过这么多次的改进,基本上看不到什么能影响游戏的bug,出现与自  详情 回复 发表于 2018-11-28 18:16
回复

使用道具 举报

发表于 2018-11-28 18:16:32 来自手机 | 显示全部楼层
hzmwe 发表于 2018-11-28 17:53
作为编辑器论坛,有问题大家应该要提出来的是吧
我作为编辑器新手确实有不少不懂的地方,但我每次来问的 ...

如果觉得我的语气偏激,我向你道歉。
但告诉你原因,你不太理解,让你多测试,你又嫌麻烦。做游戏很考验细心和耐心,而且编辑器是非常严谨的,暴雪经过这么多次的改进,基本上看不到什么能影响游戏的bug,出现与自己的预期不符的结果,绝大多数情况是自己有地方出错了,但也并不是说出错很不好,再厉害的人也会有粗心而出错的时候,而测试就是为此存在的,我平时做一个东西都要多次测试找出错误直到达到预期,仅单个地图的统计测试次数超过千次。由粗心导致的错误应尽量避免,也不要图一时懒惰,而导致日后花费更多的时间来补回。

点评

你客气了,我并没有觉的你过于偏激,也时常见你在论坛帮助其他人的....... 也许我耐心差,不愿意过多的测试,但从严谨的角度看,比如我上次的伤害响应说BUG 我的理解,在我这样的测试条件下,已经可以给出结论了,  详情 回复 发表于 2018-11-28 21:47
回复

使用道具 举报

 楼主| 发表于 2018-11-28 21:47:15 | 显示全部楼层
超级007x 发表于 2018-11-28 18:16
如果觉得我的语气偏激,我向你道歉。
但告诉你原因,你不太理解,让你多测试,你又嫌麻烦。做游戏很考验 ...

你客气了,我并没有觉的你过于偏激,也时常见你在论坛帮助其他人的.......
也许我耐心差,不愿意过多的测试,但从严谨的角度看,比如我上次的伤害响应说BUG
我的理解,在我这样的测试条件下,已经可以给出结论了,并且引起的问题也找到了。
至少应该不会是我使用不当发生的吧。
回复

使用道具 举报

发表于 2018-11-29 21:38:10 | 显示全部楼层
007的性子是比较火爆的,我们都领教过。所以楼主也不要太激动,该原谅要原谅,实在看不了,就忽略。事实上我也被一些人喷过,比楼主你这个可厉害多了,不过事后我也没太在意,到现在被谁喷了都记不得了。因为我觉得大家有共同爱好,玩编辑器时为了兴趣,是为了心情愉悦,如果最后反而弄得心情很不爽,反倒不值了。

点评

我常来问些基本概念问题,事实上被别人喷也应该是我才对 007为人其实挺热心,我不会介意的,希望大家也不要因我提出一些对编辑器的疑问和建议有所反感。。。  详情 回复 发表于 2018-11-29 22:16
回复

使用道具 举报

 楼主| 发表于 2018-11-29 22:16:37 | 显示全部楼层
yxxiaobin 发表于 2018-11-29 21:38
007的性子是比较火爆的,我们都领教过。所以楼主也不要太激动,该原谅要原谅,实在看不了,就忽略。事实上 ...

我常来问些基本概念问题,事实上被别人喷也应该是我才对
007为人其实挺热心,我不会介意的,希望大家也不要因我提出一些对编辑器的疑问和建议有所反感。。。

点评

怀疑编辑器从来都不是错,反倒是吧里某些人认为编辑器时无敌的,是完美的,凡是实现不了的设计都是用户的问题。这种想法才是难以理解的。  发表于 2018-11-30 10:13
回复

使用道具 举报

发表于 2019-4-4 14:00:52 | 显示全部楼层
这个编辑器用户体验本来就不好,里面的函数和语言基本上是阉割的c,命名反人类,如果能给个接口用vs ide编, 或者支持面向对象的比如c#java之类,效率能高100倍
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-22 00:13 , Processed in 2.042382 second(s), 35 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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