找回密码
 点一下
查看: 1158|回复: 4

RD半圆随机问题。。

[复制链接]
发表于 2010-9-15 22:47:15 | 显示全部楼层 |阅读模式
我设置了一个dota 的RD模式(随机征召),我设置25个单位,以一个半圆的角度随机创建10个单位不重复
出现了一个奇怪问题。。有一个特定的单位(女祭司)始终会随机到2个。。不知道怎么回事各位高手请指点啊。。
多打几次-rd就会发现女祭司始终会随机到2个。。

RD半圆.w3x

20 KB, 下载次数: 22

发表于 2010-9-15 23:34:38 | 显示全部楼层
于是乎我发现,在15号位置的英雄,当你第二次输入RD的时候都会出现两个,应该是重叠了吧,貌似25-10正好等于15



然后我又发现,不管Hero_All取什么数字,处在于中间数字的英雄都会刷出2个


最后我发现原来是随机整数最小值的原因,


又发现接近了答案,但又不是答案...好纠结= =


当我把Hero_All调成26的时候,发现问题解决了,但是只会少刷出一个英雄,所以我推断,可能在第一次刷英雄的时候,由于系统原因第一次将不会将随机数减去一什么的......我表示我自己都不知道自己在说什么



我懂了。,RandomHero最小值改为HeroAll.,然后把触发器03的顺序调一下,先设置变量,再创建单位


[trigger]
未命名触发器 003
    事件
        玩家 - 玩家1(红色) 输入 -rd ,信息过滤方式 完全匹配
    条件
    动作
        循环动作[循环整数A]从 0 到 25, 运行 (Loop - 动作)
            Loop - 动作
                设置 Hero[RandomHero] = Hero[Hero_all]
                设置 Hero_all = (Hero_all - 1)
                单位 - 创建 1 Hero[RandomHero] 给 中立被动 在 (从 (RD <预设> 的中心点) 开始,距离 600.00 ,方向为 ((转换 (循环整数A) 为实数) x 18.00) 度的位移处) ,面向 (RD <预设> 的中心点)
[/trigger]
回复

使用道具 举报

 楼主| 发表于 2010-9-17 17:03:54 | 显示全部楼层
额,,,前几天一直没上。。你的意思是说把2个设置变量提到上面?
RandomHero最小值改为HeroAll这个是什么意思??
回复

使用道具 举报

 楼主| 发表于 2010-9-17 17:06:20 | 显示全部楼层
懂了。。是初始话random最大值和最小值都是设置成hero-all?
回复

使用道具 举报

发表于 2010-9-17 20:14:29 | 显示全部楼层
不重复随机很简单,如果你要在n个单位中选出m个,不重复,那么设置一个数组从0开始到n-1保存备选内容,另外一个空数组。循环m次,设循环整数为i空驶,初始为0,每次设置空数组的i项值为原始数组的随机0到n-i-1项,再交换原数组随机值项与第n-i-1项。直到结束。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-25 04:37 , Processed in 0.033442 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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