| 赞 | 68 |
| VIP | |
| 好人卡 | |
| 积分 | 65 |
| 经验 | |
| 最后登录 | 2023-7-2 |
| 在线时间 | 119 小时 |
- 梦石
- 0
- 星屑
- 6483
- 在线时间
- 119 小时
- 注册时间
- 2020-1-8
- 回帖
- 205
|
发表于 2022-11-5 17:44:35
|
显示全部楼层
本帖最后由 RPGzh500223 于 2022-11-5 17:51 编辑
帖子的文字说明……我是一点都没看懂,还是看代码吧
2楼的代码 => Array#shuffle!(rmxp的ruby版本没有)
获取非重复值的话,必须保证数据的初始值是唯一的,如@f = [0, 0, 1, 1]就不行
多重赋值是同时进行的, 数组是可以这么写的,如:[pre lang="ruby"]@f[a], @f = @f, @f[a][/pre]
Array#shift => 删除数组的首单元并返回它。剩余单元依次提前。若数组为空返回 nil。(F1原文)
假设 @f = [0, 5, 3, 1, 2, 4]
p @f.shift # 0
case @f.shift # 5
case 表达式
[when 表达式 [, 表达式] ... [then]
表达式 ..]..
[else
表达式 ..]
end (F1原文)
[pre lang="ruby"]# 条件:@f未声明或已初始化为数组
if @f.nil? || @f.empty?
@f = [0, 1, 2, 3, 4, 5]
n = @f.size
n.times do |k|
a = rand(n)
@f[a], @f[k] = @f[k], @f[a]
end
end
if (n = @f.shift) != nil
case n
when 0, 1, 2 then update_message(n, "系统")
when 3, 4, 5 then update_message(n, "提示")
end
# 或者 update_message(n, n < 3 ? "系统" : "提示")
end[/pre]
这和随机数有什么关系 |
|