Minecraft(我的世界)中文论坛

标题: [CBL∫2b]指令方块进阶教程——模块 §3 : else表达 [打印本页]

作者: ⭐✔️    时间: 2015-11-15 18:51
标题: [CBL∫2b]指令方块进阶教程——模块 §3 : else表达
本帖最后由 贰逼 于 2015-11-15 18:53 编辑

        3.3+ else
之前的枚举就是:
if和if else,是对于不同结果的输出。
情况不能被全部枚举,如果我要检测并不是枚举过的条件并输出,那么就需要else(另)

在1.9中,else有三种表达方式。
(↓表示输出接口,∨表示condition输出)






/scoreboard players tag 转存实体 add bool变量名


/execute 条件1 输出1


/execute 条件1 /scoreboard players tag 转存实体 remove bool变量名


/execute 条件2 输出2


/execute 条件2 /scoreboard players tag 转存实体 remove bool变量名


/execute 条件n 输出n


/execute 条件n /scoreboard players tag 转存实体 remove bool变量名


/execute 转存实体[tag=bool变量名] else输出

主要就是使用bool变量转存枚举的输出情况,然后else判断后输出







将串联分为并联,仍然使用bool变量


/scoreboard players tag 转存实体 add bool变量名


条件1


输出1


条件2



输出2


条件n


输出n


/testfor 转存实体[tag=bool变量名]


else输出

原理和execute的bool法相同。
*需要注意核心的位置先后顺序,否则逻辑矛盾)
图中使用的还是execute并联,可以对比以下"条件嵌套"和execute区别和共同点)






不用任何实体转存,靠NBT修改完成

条件1


/blockdata else输出核心坐标 {conditionMet:0b}


输出1


条件2


/blockdata else输出核心坐标 {conditionMet:0b}


输出2


条件n


/blockdata else输出核心坐标 {conditionMet:0b}


输出n


else输出核心


else输出)


/blockdata else输出核心坐标 {conditionMet:1b}



原理就是如果前面的并联模块的枚举有任意输出,就使else输出的核心变为conditional,从而中断else输出的模块。
*其中需要注意何处摆放condition和指令方块的类型(否则无法达成目的),依旧需要注意核心的位置(先后顺序,否则逻辑矛盾)


这些方式输出依据主要运用时钟,而时钟以后会讲到。


对比:
方案一是串联模块枚举

方案二是并联模块枚举的逻辑层次简化

方案三是并联模块枚举的指令数量简化


模块1.9补丁总索引

模块总索引
[groupid=546]Command Block Logic[/groupid]
作者: asjkdaskljda    时间: 2015-11-15 18:53
有鸡有鸡有牛有牛
鸡.鸡.鸡.鸡.牛牛牛牛!表示看不懂~

作者: 青格大D    时间: 2015-11-15 18:59
又一次堪比高三数学试卷的技术帖
作者: Faint_King    时间: 2015-11-15 19:17
有点像编程
作者: zkxn    时间: 2015-11-15 19:59
提示: 作者被禁止或删除 内容自动屏蔽




欢迎光临 Minecraft(我的世界)中文论坛 (https://www.mcbbs.net/) Powered by Discuz! X3.5