Project1

标题: va中用不了rand(limit)? [打印本页]

作者: chd114    时间: 2018-1-29 15:49
标题: va中用不了rand(limit)?
ruby版本的确是1.9.2
但是http://ruby-doc.org/core-1.9.2/Random.html
这里面的rand(5..9)我使用会提示

TypeError
can't convert Range into Integer

  1. a=rand(5..9)
  2. p a
复制代码

这种也不行
作者: Nil2018    时间: 2018-1-29 15:59
可以啊,类似 rand(30)
作者: chd114    时间: 2018-1-29 16:03
Nil2018 发表于 2018-1-29 15:59
可以啊,类似 rand(30)

你试试看rand(5..9)这种可以吗
作者: RedWK    时间: 2018-1-29 17:38
提供一個可以達到類似效果的寫法,VA可用
  1. a = (5..9).to_a
  2. n = a.sample
  3. p n
复制代码

作者: imsy    时间: 2018-1-29 17:53
本帖最后由 imsy 于 2018-1-29 17:54 编辑
  1. module Kernel  # by 晴岚
  2.   alias oldrand rand unless defined?(oldrand)
  3.   def rand(thing = 0)
  4.     case thing
  5.     when Range
  6.       oldrand(thing.end - thing.begin + (thing.exclude_end? ? 0 : 1)) + thing.begin
  7.     else
  8.       oldrand(thing)
  9.     end
  10.   end
  11. end
复制代码

不记得是从哪里挖到的了
作者: chd114    时间: 2018-1-29 18:10
RedWK 发表于 2018-1-29 17:38
提供一個可以達到類似效果的寫法,VA可用

如果需要的结果是浮点数呢?
作者: fux2    时间: 2018-1-29 19:37
也不知道谁告诉你传入一个range的……
rand*5+4
作者: chd114    时间: 2018-1-29 19:42
fux2 发表于 2018-1-29 19:37
也不知道谁告诉你传入一个range的……
rand*5+4

从1.9.2的random里面看到的,但是自己试的时候行不通···突然怀疑自己用的是假软件
http://ruby-doc.org/core-1.9.2/Random.html
  1. prng.rand(5..9)  #=> one of [5, 6, 7, 8, 9]
  2. prng.rand(5...9) #=> one of [5, 6, 7, 8]
  3. prng.rand(5.0..9.0) #=> between 5.0 and 9.0, including 9.0
  4. prng.rand(5.0...9.0) #=> between 5.0 and 9.0, excluding 9.0
复制代码

作者: fux2    时间: 2018-1-29 19:43
chd114 发表于 2018-1-29 19:42
从1.9.2的random里面看到的,但是自己试的时候行不通···突然怀疑自己用的是假软件
http://ruby-doc.or ...

人家示范也是新建了一个Random对象啊,你的呢?
作者: chd114    时间: 2018-1-29 19:49
fux2 发表于 2018-1-29 19:43
人家示范也是新建了一个Random对象啊,你的呢?

···只能用Random的新对象能这样做吗···
我以为3个例子分开的...
作者: chd114    时间: 2018-1-29 23:16
fux2 发表于 2018-1-29 19:43
人家示范也是新建了一个Random对象啊,你的呢?

那已经有了Random.new的情况为什么事件指令的随机范围还是用的x+rand(y-x+1)这样的方式而不是Random.new.rand(x..y)
作者: 晴兰    时间: 2018-2-2 09:07
提示: 作者被禁止或删除 内容自动屏蔽
作者: taroxd    时间: 2018-2-2 09:42


实名反对楼上,不是 patchlevel 的问题。只是因为 Random#rand 并不是 Kernel#rand
作者: chd114    时间: 2018-2-2 13:05
taroxd 发表于 2018-2-2 09:42
实名反对楼上,不是 patchlevel 的问题。只是因为 Random#rand 并不是 Kernel#rand ...

那这两个算平行关系吗?有人贴了两个rand的脚本(本来我还以为这两其中一个会是继承另一个)
按理说ruby不是有方法的链式调用的特点吗
像公共事件-变量操作里面的随机数用的是a+rand(b-a+1)而不是Random.new.rand(a..b)
这个是制作者为了避免用Random.new.rand可能出现bug还是单纯地忘了有Random类···




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1