命令方块吧 关注:6,128贴子:69,040

【1.8+】命令版生命游戏

只看楼主收藏回复

镇楼√



1楼2015-09-21 22:55回复
    游戏介绍
    生命游戏其实是一个零玩家游戏,它包括一个二维矩形世界,这个世界中的每个方格居住着一个活着的或死了的细胞。一个细胞在下一个时刻生死取决于相邻八个方格中活着的或死了的细胞的数量。如果相邻方格活着的细胞数量过多,这个细胞会因为资源匮乏而在下一个时刻死去;相反,如果周围活细胞过少,这个细胞会因太孤单而死去。实际中,你可以设定周围活细胞的数目怎样时才适宜该细胞的生存。如果这个数目设定过高,世界中的大部分细胞会因为找不到太多的活的邻居而死去,直到整个世界都没有生命;如果这个数目设定过低,世界中又会被生命充满而没有什么变化。实际中,这个数目一般选取2或者3;这样整个生命世界才不至于太过荒凉或拥挤,而是一种动态的平衡。这样的话,游戏的规则就是:当一个方格周围有2或3个活细胞时,方格中的活细胞在下一个时刻继续存活;即使这个时刻方格中没有活细胞,在下一个时刻也会“诞生”活细胞。在这个游戏中,还可以设定一些更加复杂的规则,例如当前方格的状况不仅由父一代决定,而且还考虑祖父一代的情况。你还可以作为这个世界的上帝,随意设定某个方格细胞的死活,以观察对世界的影响。
    默认规则
    1. 如果一个细胞周围有3个细胞为生(一个细胞周围共有8个细胞),则该细胞为生(即该细胞若原先为死,则转为生,若原先为生,则保持不变) 。
    2. 如果一个细胞周围有2个细胞为生,则该细胞的生死状态保持不变;
    3. 在其它情况下,该细胞为死(即该细胞若原先为生,则转为死,若原先为死,则保持不变)
    ————转自度娘
    这是1.8以上可正常运行的cb版生命游戏,屏幕采用了50×50黑白染色黏土,从屏幕下方可以看出这里采用了盔甲架来代替上方显示屏的每一个点。为了体现cb的优越感,这里还增设了多个手持道具来控制游戏本身,包括开启/关闭播放、单步执行、清空屏幕、点亮/熄灭屏幕单个格子,同时设有一个操作台,用于玩家自定义游戏规则和调整播放速度


    2楼2015-09-21 22:56
    收起回复
      计分板

      1:每个细胞周围有多少个活细胞
      2:该细胞是否为活细胞(这里雷鸣偷懒把玩家的手持信息也放在了里面)
      time:播放速度
      snow:雪球使用次数(这里用于单步执行的检测)


      3楼2015-09-21 22:57
      回复
        判断——周围细胞数、生?死?
        此处是最为核心的判断部分,包括周围细胞数的判断和生死的判断

        /execute @e[type=ArmorStand] ~ ~ ~ detect ~ ~3 ~ stained_hardened_clay 15 scoreboard players set @e[r=0,type=ArmorStand] 2 0
        /execute @e[type=ArmorStand] ~ ~ ~ detect ~ ~3 ~ stained_hardened_clay 0 scoreboard players set @e[r=0,type=ArmorStand] 2 1
        判断目前细胞的生死
        /scoreboard players set @e[type=ArmorStand] 1 0
        /execute @e[type=ArmorStand,score_2_min=1] ~ ~ ~ scoreboard players add @e[r=1,type=ArmorStand] 1 1
        /execute @e[type=ArmorStand,score_2_min=1] ~1 ~ ~1 scoreboard players add @e[r=0,type=ArmorStand] 1 1
        /execute @e[type=ArmorStand,score_2_min=1] ~1 ~ ~-1 scoreboard players add @e[r=0,type=ArmorStand] 1 1
        /execute @e[type=ArmorStand,score_2_min=1] ~-1 ~ ~1 scoreboard players add @e[r=0,type=ArmorStand] 1 1
        /execute @e[type=ArmorStand,score_2_min=1] ~-1 ~ ~-1 scoreboard players add @e[r=0,type=ArmorStand] 1 1
        /scoreboard players remove @e[type=ArmorStand,score_2_min=1] 1 1
        这些命令的作用是给活细胞周围八个细胞在计分板“1”增加分数【这里可以采取实体选择器dx、dz来简化命令,把中间的五个命令变成一个


        5楼2015-09-21 22:59
        收起回复
          输出部分

          这里是处理周围细胞数1~8的八种情况(0默认为死亡),通过setblock输出至屏幕,此处这样放置还涉及到规则调整,后面会说到

          这里是各种物品的检测,其中运用了药水效果检测、物品使用及检测手持,在这里就不一一解释


          6楼2015-09-21 23:02
          回复
            【the end】
            另外自我介绍下这里新人雷鸣√


            9楼2015-09-21 23:07
            收起回复
              卧槽。。。。这尼玛都啥时候的作品了。。。


              IP属地:北京10楼2015-09-21 23:10
              收起回复
                @乙烯_中国 @丹东的小南瓜 推荐精品


                IP属地:上海11楼2015-09-22 21:39
                收起回复
                  是生命游戏唉


                  IP属地:北京来自iPhone客户端12楼2015-09-23 21:29
                  收起回复
                    生物数学学的一个非常不得了的研究。。


                    IP属地:陕西来自Android客户端13楼2015-09-24 23:26
                    回复
                      雷鸣发帖怎能不顶


                      IP属地:浙江14楼2015-09-26 00:09
                      收起回复
                        嗯有位工作室大触要来审核暂时暖一下w


                        来自Android客户端15楼2015-12-15 22:21
                        收起回复
                          好牛逼!!!楼主。


                          IP属地:上海来自Android客户端16楼2016-01-27 22:47
                          收起回复
                            hi翾颚


                            IP属地:重庆来自Android客户端17楼2016-02-02 20:39
                            回复