Project1

标题: 在一个不规则数组里随机抽3个不重复的数赋给公共变量1,2,3 [打印本页]

作者: taeckle    时间: 2020-1-19 21:22
标题: 在一个不规则数组里随机抽3个不重复的数赋给公共变量1,2,3
本帖最后由 taeckle 于 2020-1-19 21:24 编辑

我遇到了一个数组,想从这个数组里抽取3个不重复的数后依次放到公共变量1,2,3里,咱是这么想的:

arr = [45,854,98,23,45,78,111,9,74,25]             #这就是咱遇到的数组,第一步建立数组,咱会!
3.times do |i|                                                  #这步叫建立循环
  $game_variables[i+0] = arr.delete_at(rand(arr.length))  # 就这里不懂,请问下这里是i+0还是i+1啊??为什么啊?
end

还请大神指点一二,多谢了!


作者: soulsaga    时间: 2020-1-19 22:17
RUBY 代码复制
  1. arr = [45,854,98,23,45,78,111,9,74,25]             #这就是咱遇到的数组,第一步建立数组,咱会!
  2. 3.times do |i|                                                  #这步叫建立循环
  3.   $game_variables[i+1] = arr.delete_at(rand(arr.length))  # 就这里不懂,请问下这里是i+0还是i+1啊??为什么啊?
  4. end


I+1才对..这里I从0幵始所以要+1
你觉得+0有意义么..
作者: 坏数据    时间: 2020-1-20 02:48
关于$game_variables[0]的解答

对变量有疑问的
用print 或者puts 在控制台康康不就知道了?
作者: 怕鼠的猫    时间: 2020-1-20 09:24
所有计算机语言里面,数组编号从0开始。
但是,RM编辑器中的变量集合经过了封装,默认从1开始。 所以尽量不要使用0号。

顺便说一句,数组中抽出三个不重复数字的话,有内置的 sample()方法。
  1. l=[1,3,4,5,8,9]
  2. p l.sample(3)  #随机取出其中三个数字打印出来,保证互不相同。
复制代码

作者: taeckle    时间: 2020-1-20 11:31
怕鼠的猫 发表于 2020-1-20 09:24
所有计算机语言里面,数组编号从0开始。
但是,RM编辑器中的变量集合经过了封装,默认从1开始。 所以尽量不 ...

大神那请问下这个3.times do |i|到底是1.2.3还是0,1,2的意思啊?

有啥好法子一眼就看出来啊?
作者: jyuen    时间: 2020-1-20 14:22
taeckle 发表于 2020-1-20 11:31
大神那请问下这个3.times do |i|到底是1.2.3还是0,1,2的意思啊?

有啥好法子一眼就看出来啊? ...

3.times do |i|
  p i
end
作者: soulsaga    时间: 2020-1-20 14:52
本帖最后由 soulsaga 于 2020-1-20 14:57 编辑
taeckle 发表于 2020-1-20 11:31
大神那请问下这个3.times do |i|到底是1.2.3还是0,1,2的意思啊?

有啥好法子一眼就看出来啊? ...


a=*1..3
a.each do |i|
  p i
end

这样搞还不如用FOR..
作者: taeckle    时间: 2020-1-20 23:22
jyuen 发表于 2020-1-20 14:22
3.times do |i|
  p i
end

请问下怎么用这个字母"p"测试啊?
作者: taeckle    时间: 2020-1-20 23:23
soulsaga 发表于 2020-1-20 14:52
a=*1..3
a.each do |i|
  p i

那这个3.times do |i|到底是1.2.3的循环还是0,1,2的循环啊?
作者: jyuen    时间: 2020-1-22 14:24
taeckle 发表于 2020-1-20 23:22
请问下怎么用这个字母"p"测试啊?

p 本来是ruby内部的用来打印值的一种较特殊的方法,经常在测试的时候用,后来在RGSS里重写过了,效果是弹出一个消息框显示值。具体用法的话就
p 对象
就好了,相当于print嘛




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