设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 3205|回复: 20

[已经解决] 在一个不规则数组里随机抽3个不重复的数赋给公共变量1,2,3

[复制链接]

Lv4.逐梦者

梦石
0
星屑
9128
在线时间
463 小时
注册时间
2015-5-8
帖子
865
发表于 2020-1-19 21:22:21 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 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

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

Lv5.捕梦者

梦石
0
星屑
33043
在线时间
10470 小时
注册时间
2009-3-15
帖子
4756
发表于 2020-1-19 22:17:23 | 显示全部楼层
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有意义么..

点评

这和+0有什么关系..  发表于 2020-1-20 00:13
感觉ruby里有好多是要从0开始计算,比如 case rand(5) 不就是从0开始的吗。。  发表于 2020-1-20 00:03
0+0还是0啊..意义何在..  发表于 2020-1-19 23:47
为什么要有0?有什么关系..  发表于 2020-1-19 23:06
$game_variables从1开始的..  发表于 2020-1-19 23:05

评分

参与人数 1+1 收起 理由
taeckle + 1 有$game_variables[0]这玩意嘛?

查看全部评分

回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
4881
在线时间
425 小时
注册时间
2019-10-22
帖子
666
发表于 2020-1-20 02:48:27 | 显示全部楼层
关于$game_variables[0]的解答

对变量有疑问的
用print 或者puts 在控制台康康不就知道了?

点评

请问下这控制台怎么用啊..  发表于 2020-1-20 23:24
















回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
5402
在线时间
2559 小时
注册时间
2011-9-27
帖子
1119

极短23参与开拓者

发表于 2020-1-20 09:24:50 | 显示全部楼层
所有计算机语言里面,数组编号从0开始。
但是,RM编辑器中的变量集合经过了封装,默认从1开始。 所以尽量不要使用0号。

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

评分

参与人数 4星屑 +50 +3 收起 理由
RyanBern + 50 认可答案
taeckle + 1 受教了!
KB.Driver + 1 毕竟MATLAB
SixRC + 1 所有前需要几乎吧 毕竟lua.

查看全部评分

从平淡走向更平淡。
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9128
在线时间
463 小时
注册时间
2015-5-8
帖子
865
 楼主| 发表于 2020-1-20 11:31:43 | 显示全部楼层
怕鼠的猫 发表于 2020-1-20 09:24
所有计算机语言里面,数组编号从0开始。
但是,RM编辑器中的变量集合经过了封装,默认从1开始。 所以尽量不 ...

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

有啥好法子一眼就看出来啊?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
179
在线时间
17 小时
注册时间
2019-6-21
帖子
2
发表于 2020-1-20 14:22:35 | 显示全部楼层
taeckle 发表于 2020-1-20 11:31
大神那请问下这个3.times do |i|到底是1.2.3还是0,1,2的意思啊?

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

3.times do |i|
  p i
end
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
33043
在线时间
10470 小时
注册时间
2009-3-15
帖子
4756
发表于 2020-1-20 14:52:27 | 显示全部楼层
本帖最后由 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..

点评

我更喜欢写成(1..3).each{|i| }  发表于 2020-1-22 23:47
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9128
在线时间
463 小时
注册时间
2015-5-8
帖子
865
 楼主| 发表于 2020-1-20 23:22:19 | 显示全部楼层
jyuen 发表于 2020-1-20 14:22
3.times do |i|
  p i
end

请问下怎么用这个字母"p"测试啊?

点评

运行游戏到这段就会弹出窗口显示I的值...  发表于 2020-1-21 00:18
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9128
在线时间
463 小时
注册时间
2015-5-8
帖子
865
 楼主| 发表于 2020-1-20 23:23:10 | 显示全部楼层
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的循环啊?

点评

OK!  发表于 2020-1-22 02:26
012  发表于 2020-1-21 00:17
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
179
在线时间
17 小时
注册时间
2019-6-21
帖子
2
发表于 2020-1-22 14:24:51 | 显示全部楼层
taeckle 发表于 2020-1-20 23:22
请问下怎么用这个字母"p"测试啊?

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

评分

参与人数 1+1 收起 理由
taeckle + 1 我很赞同

查看全部评分

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-3-29 23:29

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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