Project1
标题:
关于odds 职业受袭率的计算公式
[打印本页]
作者:
wangswz
时间:
2010-8-24 14:10
标题:
关于odds 职业受袭率的计算公式
本帖最后由 wangswz 于 2010-8-24 14:23 编辑
#--------------------------------------------------------------------------
# ● 随机目标选择
#--------------------------------------------------------------------------
def random_target
roulette = []
for member in existing_members
member.odds.times do
roulette.push(member)
end
end
return roulette.size > 0 ? roulette[rand(roulette.size)] : nil
end
怎么计算受袭率的?
do循环。。
谁越大几率越高??大概4人的情况下1点等于多少几率?完全被这段代码镇住了。
作者:
DeathKing
时间:
2010-8-24 14:14
rand(roulette.size),每个人的几率均等 0_0
4.times do |i|
p i
end
#=> this is out put
0
1
2
3
(4 times)
作者:
八云紫
时间:
2010-8-24 14:18
本帖最后由 八云紫 于 2010-8-24 14:23 编辑
position
职业的战斗位置。(0:队列前、1:队列中、2:队列后)。
odds = 4 - position
odds 等于多少就压入角色多少次,然后随机抽取一个~~
类似提高地图上某个队伍的敌人随机遇到的概率一样的做法~~~多次压入数组,被抽到的概率也就越大~~~
例如:
[ 1, 2 , 3, 4] 四个数字的随机抽取的概率是一样的,都是 25%
[ 1, 1, 2 , 3, 4] 四个数字的随机抽取的概率就不一样了,2 , 3, 4 都是 20% ,但是 1 是 40%
作者:
DeathKing
时间:
2010-8-24 14:25
times貌似是Fixnum提供的方法:
root@deathking-desktop:/etc/apt# irb
irb(main):001:0> Integer.instance_methods.include? :times
=> false
irb(main):002:0> Fixnum.instance_methods.include? :times
=> false
# 囧,上面完全是我把我的ruby当1.9.1了
irb(main):003:0> Fixnum.instance_methods.include? "times"
=> true
复制代码
times就是循环的次数。
2.times 差不多就是for i in 0..1 的意思。
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1