Project1
标题:
进一步请教rand(x)的应用
[打印本页]
作者:
灬心魔o
时间:
2011-7-5 17:15
提示:
作者被禁止或删除 内容自动屏蔽
作者:
精灵使者
时间:
2011-7-5 17:16
本帖最后由 精灵使者 于 2011-7-5 17:38 编辑
rand(100) > 44 就是百分比45
case rand(100)
when 0..29
return 3
when 30..89
return 2
else
return 1
end
作者:
IamI
时间:
2011-7-5 17:18
本帖最后由 IamI 于 2011-7-5 17:21 编辑
1 可以说是正确的……当然随机数其实是可以规律的 - -||
s = rand(100) # 0~99
if s < 45 # 0~44 共计45
# TODO
end
end
复制代码
问题2提供鬼畜物一枚……如果你这么喜欢1行的话
1 + ((rand(100) < 60) ? ((rand(100) < 50) ? 2 : 1) : 0)
作者:
灬心魔o
时间:
2011-7-5 17:47
提示:
作者被禁止或删除 内容自动屏蔽
作者:
精灵使者
时间:
2011-7-5 17:49
本帖最后由 精灵使者 于 2011-7-5 17:49 编辑
如果重叠的话,就会执行第一个when了的说。
那个问号运算符感觉应该能符合要求
作者:
Wind2010
时间:
2011-7-5 17:57
本帖最后由 Wind2010 于 2011-7-5 18:08 编辑
其实LZ想说的是100/190(190分之100)恢复1点MP,60/190恢复2点MP,30/190恢复3点MP吧?
还是说下判定是否30%,是的话恢复3MP,否则判定是否60%,是的话恢复2MP,都不是的话才恢复1MP?
那样的话就是这样
case rand(100+60+30)
when 0..99
return 1
when 100..59
return 2
when 160..189
return 3
end
复制代码
第二种的话是这样:
if rand(100) < 30
return 3
elsif rand(100) < 60
return 2
else
return 1
end
复制代码
作者:
灬心魔o
时间:
2011-7-5 19:01
提示:
作者被禁止或删除 内容自动屏蔽
作者:
菜鸟飞呀飞
时间:
2011-7-5 19:16
提示:
作者被禁止或删除 内容自动屏蔽
作者:
fux2
时间:
2011-7-5 19:58
[nil,100,60,30].each_index {|i| mp+=i if rand(100)<self[i]}
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1