查看: 3123|回复: 6

[已经解决] 用脚本比较多个变数的问题

[复制链接]
梦石
0
星屑
1388
在线时间
343 小时
注册时间
2016-7-17
回帖
82
发表于 2020-4-20 13:19:27 | 显示全部楼层 |阅读模式

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

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

×
com = [$game_variables[201],$game_variables[221],$game_variables[223]]
com.max

这样的写法只能传回最大值,怎么确认是哪个变量最大呢?
头像被屏蔽
梦石
0
星屑
5706
在线时间
922 小时
注册时间
2013-8-29
回帖
1401
发表于 2020-4-20 13:27:28 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 1 0

使用道具 举报

梦石
0
星屑
3130
在线时间
419 小时
注册时间
2015-8-8
回帖
371

R考场第七期纪念奖

发表于 2020-4-20 13:42:13 | 显示全部楼层
  1. def var_max(vars)
  2.   max = -999999
  3.   max_id = -1
  4.   for i in vars
  5.     if $game_variables[i] > max
  6.       max = $game_variables[i]
  7.       max_id = i
  8.     end
  9.   end
  10.   return max_id # 或者你return [max, max_id] 也可以
  11. end

  12. print( var_max([201,221,223]))
复制代码
旧作《邵彦朝的大冒险》下载

默默无闻的论坛观察者
回复

使用道具 举报

梦石
0
星屑
1388
在线时间
343 小时
注册时间
2016-7-17
回帖
82
 楼主| 发表于 2020-4-20 13:58:55 | 显示全部楼层
刚刚想到了,似乎可以用哈希表做
回复

使用道具 举报

梦石
10
星屑
39550
在线时间
1919 小时
注册时间
2010-11-14
回帖
3214

R考场第七期纪念奖

发表于 2020-4-20 20:01:31 | 显示全部楼层
[pre lang="ruby"]ary = [201, 221, 223]
max_id = ary.max_by {|id| $game_variables[id] }
max = $game_variables[max_id][/pre]

简单的才是最好的。
用头画头像,用脚写脚本
回复 1 0

使用道具 举报

梦石
0
星屑
1388
在线时间
343 小时
注册时间
2016-7-17
回帖
82
 楼主| 发表于 2020-4-21 00:58:46 | 显示全部楼层
本帖最后由 b200077 于 2020-4-21 01:02 编辑
KB.Driver 发表于 2020-4-20 20:01
ary = [201, 221, 223]
max_id = ary.max_by {|id| $game_variables }
max = $game_variables[max_id][/pre ...


是的,做的功能是因好感度进入入线,用写进类方法里有点杀鸡用牛刀。
我写的代码是这个。
  1. com = {}
  2. com["厄莉絲"] = $game_variables[201]
  3. com["狄高"] = $game_variables[222]
  4. com["夜"] = $game_variables[227]
  5. $game_variables[220] = com.index(com.values.max)
复制代码

点评

这样写也能达到目的,不过从流程上说遍历了2次,浪费了不必要的资源  发表于 2020-4-21 10:51
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部