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项介绍的&并集
a=[ 2 ,1 ,3 ,4 ]
b = a & [ 1 ,3 ,4 ]
p b == [ 1 ,3 ,4 ]
a=[ 2 ,1 ,3 ,4 ]
b = a & [ 1 ,3 ,4 ]
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 编辑
#你要先明白“并”和“或”的写法
#比如a大于2,并且小于5,则写成 (该条件需要两个条件同时满足才会执行)
if a>2 &&a<5
#这里写执行代码
end
#当a=3,或者a=6时(该条件只要满足其中一条就可执行)
if a==2 ||a==6
#这里写执行代码
end
#另外,“并”和“或”也能一起用,比如这样
if a>2 &&a<5 ||a==6
#这里写执行代码
end
#$game_party.item_number(100)的值代表物品100你所拥有的数量
#下面是你的问题1的完整代码,只要拥有4种物品的任意一个就会执行代码
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
end
#下面是你的问题2的完整代码,必须四个物品都拥有时才会执行代码
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
end
#你要先明白“并”和“或”的写法
#比如a大于2,并且小于5,则写成 (该条件需要两个条件同时满足才会执行)
if a>2 &&a<5
#这里写执行代码
end
#当a=3,或者a=6时(该条件只要满足其中一条就可执行)
if a==2 ||a==6
#这里写执行代码
end
#另外,“并”和“或”也能一起用,比如这样
if a>2 &&a<5 ||a==6
#这里写执行代码
end
#$game_party.item_number(100)的值代表物品100你所拥有的数量
#下面是你的问题1的完整代码,只要拥有4种物品的任意一个就会执行代码
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
end
#下面是你的问题2的完整代码,必须四个物品都拥有时才会执行代码
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
end
作者: taeckle 时间: 2019-10-20 17:13
本帖最后由 taeckle 于 2019-10-20 17:16 编辑
我想问的是怎么用一个数组 +一句话搞定,
你这还是用了4句话,对应4个物品...
不过还是要给你点个赞!
作者: taeckle 时间: 2019-10-20 17:14
大神我想问的是怎么用一个数组 +一句话搞定这个if.......
作者: soulsaga 时间: 2019-10-20 17:33
本帖最后由 soulsaga 于 2019-10-20 17:56 编辑
a=[ 1 ,3 ,2 ,4 ]
道具数组=[ 2 ,3 ,1 ,4 ]
p a.all ? { |f| 道具数组.include ?( f) }
a=[ 1 ,3 ,2 ,4 ]
道具数组=[ 2 ,3 ,1 ,4 ]
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