Minecraft(我的世界)中文论坛

标题: 【CBL|CHYX】命令方块制生命游戏 原理讲解

作者: chyx    时间: 2015-5-15 13:26
标题: 【CBL|CHYX】命令方块制生命游戏 原理讲解
本帖最后由 chyx 于 2015-5-19 01:40 编辑
效果/下载链接:见http://www.mcbbs.net/thread-444933-1-1.html
此贴只是讲解 算法是赶出来的 有许多地方可以改进





首先 这里是切换两个fillclock的地方
下面是标配的
  1. summon FallingSand ~ ~.5 ~ {Block:redstone_block}
复制代码
*2
左侧是指示灯
  1. /replaceitem entity @e[name=Timer] slot.armor.head minecraft:wool 1 5
复制代码
*2
上面是支持展示框用的
  1. execute @e[name=Use] ~ ~ ~ /fill ~ ~ ~ ~ ~ ~-1 minecraft:piston_extension
复制代码
*2

右侧是fill
  1. /fill 108 19 -574 108 19 -518 minecraft:redstone_block 0 destroy
复制代码








这里是面板
  1. /scoreboard players remove Timer timemax 1
  2. /scoreboard players add Timer timemax 1
复制代码
按钮的指令 负责加减时间间隔


显示器的指令:
  1. /blockdata 105 16 -570 {Text1:"时间间隔",Text2:"["",{"score":{"name":"Timer","objective":"timemax"},"color":"white","bold":"true"}]"}
复制代码
按两个按钮都会激活它


fillclock#1

先检测框内物品(做的时候安不上Map It)
  1. /scoreboard players set @e[name=Use] b 0
  2. /scoreboard players set @e[name=Use] b 1 {Item:{id:"minecraft:coal_block"}}
复制代码
检测是否右键
  1. /scoreboard players set @e[name=Use] tur 1
  2. /scoreboard players set @e[name=Use] tur 0 {ItemRotation:0b}
复制代码

然后是拓展,显示部分 最后讲


fillclock#2
先摆正所有的框
  1. entitydata @e[name=Use] {ItemRotation:0b,Invulnerable:1b}
复制代码
然后是可控制频率时钟
  1. /scoreboard players operation @e[name=Timer] time = Timer time
  2. /execute @e[name=Timer,score_time=0] ~ ~ ~ /fill 110 19 -569 110 19 -500 minecraft:redstone_block 0 destroy
  3. /execute @e[name=Timer,score_time=0] ~ ~ ~ /scoreboard players operation Timer time = Timer timemax
  4. /scoreboard players remove Timer time 1

复制代码
不要问我为何写的这么恶心 问mojang 因为计分板的一个bug才不得已这么写的



低频时钟

正片开始
先置零
  1. /scoreboard players set @e[name=Use] near 0
复制代码
8*
  1. /execute @e[score_b=0] ~ ~1 ~ /scoreboard players add @e[r=0,c=1,name=Use] near 1
复制代码

游戏规则:
  1. /scoreboard players set @e[name=Use] tur 0
  2. /scoreboard players set @e[name=Use,score_b_min=1,score_near_min=3,score_near=3] tur 1
  3. /scoreboard players set @e[name=Use,score_b=0,score_near_min=0,score_near=1] tur 1
复制代码
tur表示要变化

然后又是拓展,显示部分 clone过来

拓展,显示部分
隐藏内容重复8次 对应各个方向

切换黑白状态
b=(b-1)^2 很科学
  1. /scoreboard players remove @e[score_tur_min=1,name=Use] b 1
复制代码
  1. execute @e[score_tur_min=1] ~ ~ ~ /scoreboard players operation @e[c=1,r=0,name=Use] b *= @e[c=1,r=0,name=Use] b
复制代码


最后修改显示
  1. entitydata @e[score_b_min=1] {ItemRotation:0b,Invulnerable:1b,Item:{id:"minecraft:coal_block",Count:1b,Damage:0s}}
复制代码
  1. entitydata @e[score_b=0] {ItemRotation:0b,Invulnerable:1b,Item:{id:"minecraft:wool",Count:1b,Damage:0s}}
复制代码



新版本已做好http://pan.baidu.com/s/1c0yGwNI*将羊毛和煤块换成地图*增加装饰性屏风 一面是滑翔机图案 一面是cbl logo




[groupid=546]Command Block Logic[/groupid]
作者: 海潮    时间: 2015-5-15 13:33
我说,能不能合到一页上
作者: 咕噜and呼噜    时间: 2015-5-15 13:43




作者: xiaope    时间: 2015-5-15 16:10
提示: 作者被禁止或删除 内容自动屏蔽
作者: chyx    时间: 2015-5-15 16:30
本帖最后由 chyx 于 2015-5-15 17:49 编辑

at人 @lzs1234
作者: bobby275    时间: 2015-5-15 16:38
合到一页上面好吗……
作者: 咕噜and呼噜    时间: 2015-5-15 19:28
xiaope 发表于 2015-5-15 16:10
233333什么鬼

CBL小组成员爆照的 颜龄
作者: z9481752630    时间: 2015-5-15 19:53
试了一下,很好呦~~~~~~~~
作者: xiaope    时间: 2015-5-16 00:34
提示: 作者被禁止或删除 内容自动屏蔽
作者: lzs1234    时间: 2015-5-16 09:08
来晚了…昨天停电…
不错呢,我去抱来玩玩
作者: 咕噜and呼噜    时间: 2015-5-16 10:20
xiaope 发表于 2015-5-16 00:34
中间那个PM也是CBL小组成员吗?233

那个是PM发的微博 他说现在成这个样子也不想说什么了
作者: jianghr    时间: 2015-5-22 23:53
本帖最后由 jianghr 于 2015-5-22 23:54 编辑

生命游戏知名度还是不如扫雷的,所以发帖之前建议说下规则,不然人家不知道你在说什么。
然后原帖最大的糟点是没这么多的内容强行分了8页。我想上下通读一下还要点来点去,忍无可忍自己把你page替换成了分割线。——能用滚轮解决的问题,为什么要变成点击苍蝇大小的区域?
然后是帖子本身,不否认作品是好作品,但是这个实在不是好的解说。合理的解说应该是根据游戏规则,介绍算法架构,再根据用途介绍各个模块的设计。而本帖是根据或者没根据运行顺序直接平铺直叙了各个CB的代码……在死生判定和周围细胞数统计上我大概根据游戏规则能看明白一些,其它代码的认识只是停留在表面的作用上而已,对作品整体运行机制把握还是不够,这部分写得没乙烯好。当然乙烯第一帖也有诸多不足,在补遗中还是很好得满足了我的要求。
对于有着运行过程的命令方块作品,解说重点是它是怎么按照命令运行的,而不是像加特技那样把一层层代码列出来而已。
作者: saokedi1    时间: 2015-5-23 11:11
不错不错,真的不错
作者: ufof    时间: 2015-6-4 22:20
本帖最后由 ufof 于 2015-6-4 22:22 编辑

@jianghr @贰逼 这个可不可以给个图章什么的?

edit:好吧对不起我没看到你上面的回复{:10_527:}