Project1

标题: "include" 的意思是“or”,那怎么写“and”啊? [打印本页]

作者: taeckle    时间: 2019-10-20 12:03
标题: "include" 的意思是“or”,那怎么写“and”啊?
比如我想写这两句:
"当身上带有第100号、或第105号、或第114号、或第666号物品时"
“当身上带有第100号、和第105号、和第114号、和第666号物品时”

都该怎么写啊?
作者: soulsaga    时间: 2019-10-20 13:01
本帖最后由 soulsaga 于 2019-10-20 13:52 编辑

用F1里Array项介绍的&并集
RUBY 代码复制
  1. a=[2,1,3,4]
  2. b = a & [1,3,4]
  3. p b == [1,3,4]

作者: ppspssss    时间: 2019-10-20 15:06
我的方法
道先腳本合集里找到这个判別状态编号
特定角色的状态
$game_actors[角色编号].state?(状态编号)

#第一题
$a = [100,105,114,666]
for i in $a
if  $game_actors[角色编号].state?(i) == true
#角色编号带有四中状态之中的一种
end
end

#第二题
$a = [100,105,114,666]
b = 0
for i in $a
if  $game_actors[角色编号].state?(i) == true
b+=1
end
end
if b == 4
#角色编号带有四中状态全部四种
end

作者: 寒凌天    时间: 2019-10-20 16:18
本帖最后由 寒凌天 于 2019-10-20 16:21 编辑

RUBY 代码复制
  1. #你要先明白“并”和“或”的写法
  2. #比如a大于2,并且小于5,则写成 (该条件需要两个条件同时满足才会执行)
  3. if a>2&&a<5
  4. #这里写执行代码
  5. end
  6.  
  7. #当a=3,或者a=6时(该条件只要满足其中一条就可执行)
  8. if a==2||a==6
  9. #这里写执行代码
  10. end
  11.  
  12. #另外,“并”和“或”也能一起用,比如这样
  13. if a>2&&a<5||a==6
  14. #这里写执行代码
  15. end
  16.  
  17.  
  18. #$game_party.item_number(100)的值代表物品100你所拥有的数量
  19. #下面是你的问题1的完整代码,只要拥有4种物品的任意一个就会执行代码
  20. if $game_party.item_number(100)>0||$game_party.item_number(105)>0||$game_party.item_number(114)>0||$game_party.item_number(666)>0
  21.  
  22. end
  23.  
  24. #下面是你的问题2的完整代码,必须四个物品都拥有时才会执行代码
  25. if $game_party.item_number(100)>0&&$game_party.item_number(105)>0&&$game_party.item_number(114)>0&&$game_party.item_number(666)>0
  26.  
  27. end

作者: taeckle    时间: 2019-10-20 17:13
本帖最后由 taeckle 于 2019-10-20 17:16 编辑
寒凌天 发表于 2019-10-20 16:18
#你要先明白“并”和“或”的写法
#比如a大于2,并且小于5,则写成 (该条件需要两个条件同时满足才会执行 ...


我想问的是怎么用一个数组 +一句话搞定,
你这还是用了4句话,对应4个物品...
不过还是要给你点个赞!
作者: taeckle    时间: 2019-10-20 17:14
soulsaga 发表于 2019-10-20 13:01
用F1里Array项介绍的&并集
a=[2,1,3,4]
b = a & [1,3,4]

大神我想问的是怎么用一个数组 +一句话搞定这个if.......
作者: soulsaga    时间: 2019-10-20 17:33
本帖最后由 soulsaga 于 2019-10-20 17:56 编辑
taeckle 发表于 2019-10-20 17:14
大神我想问的是怎么用一个数组 +一句话搞定这个if.......


RUBY 代码复制
  1. a=[1,3,2,4]
  2. 道具数组=[2,3,1,4]
  3. p a.all? {|f| 道具数组.include?(f) }

这写法接触的不多..所以不太会写..
作者: 灯笼菜刀王    时间: 2019-10-20 17:40
if [100,105,114,666].any? {|i| $game_party.item_number(i) > 0}

if [100,105,114,666].all? {|i| $game_party.item_number(i) > 0}
作者: taeckle    时间: 2019-11-8 20:25
本帖最后由 taeckle 于 2019-11-8 20:27 编辑
灯笼菜刀王 发表于 2019-10-20 17:40
if [100,105,114,666].any? {|i| $game_party.item_number(i) > 0}

if [100,105,114,666].all? {|i| $game ...


大神那要是判断第6,66,666号敌人是否同时在敌方队伍里且这三个敌人的HP是否都大于0用all又该怎么写啊?


实在不想用for来写啊..






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