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

Project1

 找回密码
 注册会员
搜索
查看: 3732|回复: 16
打印 上一主题 下一主题

[已经解决] "include" 的意思是“or”,那怎么写“and”啊?

[复制链接]

Lv4.逐梦者

梦石
0
星屑
9163
在线时间
466 小时
注册时间
2015-5-8
帖子
866
跳转到指定楼层
1
发表于 2019-10-20 12:03:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
比如我想写这两句:
"当身上带有第100号、或第105号、或第114号、或第666号物品时"
“当身上带有第100号、和第105号、和第114号、和第666号物品时”

都该怎么写啊?

Lv5.捕梦者

梦石
0
星屑
36437
在线时间
10798 小时
注册时间
2009-3-15
帖子
4814
2
发表于 2019-10-20 13:01:45 | 只看该作者
本帖最后由 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]
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
14629
在线时间
2152 小时
注册时间
2016-9-20
帖子
861
3
发表于 2019-10-20 15:06:58 | 只看该作者
我的方法
道先腳本合集里找到这个判別状态编号
特定角色的状态
$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
我发的贴子大多未经整理是草稿抱歉
回复 支持 1 反对 0

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3117
在线时间
205 小时
注册时间
2019-9-16
帖子
224
4
发表于 2019-10-20 16:18:35 | 只看该作者
本帖最后由 寒凌天 于 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

评分

参与人数 2+2 收起 理由
miantouchi + 1 精品文章
taeckle + 1 塞糖

查看全部评分

回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9163
在线时间
466 小时
注册时间
2015-5-8
帖子
866
5
 楼主| 发表于 2019-10-20 17:13:02 | 只看该作者
本帖最后由 taeckle 于 2019-10-20 17:16 编辑
寒凌天 发表于 2019-10-20 16:18
#你要先明白“并”和“或”的写法
#比如a大于2,并且小于5,则写成 (该条件需要两个条件同时满足才会执行 ...


我想问的是怎么用一个数组 +一句话搞定,
你这还是用了4句话,对应4个物品...
不过还是要给你点个赞!
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9163
在线时间
466 小时
注册时间
2015-5-8
帖子
866
6
 楼主| 发表于 2019-10-20 17:14:09 | 只看该作者
soulsaga 发表于 2019-10-20 13:01
用F1里Array项介绍的&并集
a=[2,1,3,4]
b = a & [1,3,4]

大神我想问的是怎么用一个数组 +一句话搞定这个if.......
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
36437
在线时间
10798 小时
注册时间
2009-3-15
帖子
4814
7
发表于 2019-10-20 17:33:14 | 只看该作者
本帖最后由 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) }

这写法接触的不多..所以不太会写..

评分

参与人数 1+1 收起 理由
taeckle + 1 继续努力!

查看全部评分

回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
39016
在线时间
5717 小时
注册时间
2006-11-10
帖子
6619
8
发表于 2019-10-20 17:40:09 | 只看该作者
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}

评分

参与人数 4星屑 +50 +4 收起 理由
RyanBern + 50 + 1 认可答案
taeckle + 1 大神威武,力挽狂澜!
miantouchi + 1 精品文章
KB.Driver + 1 我很赞同

查看全部评分

回复 支持 1 反对 0

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9163
在线时间
466 小时
注册时间
2015-5-8
帖子
866
9
 楼主| 发表于 2019-11-8 20:25:05 | 只看该作者
本帖最后由 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来写啊..

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-23 13:05

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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