异星工厂吧 关注:62,623贴子:401,261

做了个(几乎)完美的通用星岩处理系统

只看楼主收藏回复

简单总结一下思路和流程:随便抓一个星岩过来,然后根据库存状况判断要对这颗星岩进行基本处理/高级处理/再处理(需要利用平台枢纽调度资源,算是个硬伤)
原本想在1L发个动图展示效果的,结果老是被吞,还是发到2L吧


IP属地:广东1楼2024-11-23 07:01回复

    2L效果图,原理与解说缓慢施工中(不要在意上面那两个铸造厂


    IP属地:广东2楼2024-11-23 07:02
    回复
      2025-08-19 15:36:33
      广告
      不感兴趣
      开通SVIP免广告
      能给个代码看看吗


      IP属地:吉林来自Android客户端3楼2024-11-23 07:09
      收起回复
        众所周知,在后期的飞船上,粉碎机的9种配方几乎都要用到。并且3种星岩、6种产物的供需关系会被各种各样的因素影响导致不断波动,所以设计起来其实挺头疼的:如果特定的粉碎机设置固定的处理配方,效率就会很低(要么经常摸鱼,要么干不过来成为产线瓶颈)。
        所以我就突发奇想:不如换个方向解决星岩处理的问题,与其规定某个粉碎机的配方再把对应的星岩送过去,不如把所有的星岩都送到同一台粉碎机里面,然后让粉碎机在接收星岩之后再决定怎么处理它。
        那么接下来有两个问题要解决:一个是选择配方的逻辑,另一个是具体实现。当然,实现的过程有一大堆乱七八糟的细节困扰(具体的问题会在最后详细说明),有一部分我自己尚未解决,这里也希望有大佬指点一下
        先讲选择配方,通过观察我们可以发现,每种星岩的处理方式对应了不同的产出:金属基础-铁、金属高级-铜、碳化基础-碳、碳化高级-硫、氧化基础-冰、氧化高级-方解石(虽然高级处理也会产出基础处理对应的产物,但是显然在你不缺高级产物时,使用基础处理的效率更高。

        所以选择配方的原则很简单,就是最缺什么要什么。举个例子,假设你有一颗金属星岩,那么如果你更缺铁就需要使用基础处理,更缺铜就需要使用高级处理,铜铁都不缺就会使用再处理——所以这就是选择配方的逻辑。
        然后就是具体实现了。因为我们的思路和游戏内部逻辑是反过来的:游戏需要先给工厂设置配方,然后爪子才会去抓原材料,但我们的思路是先抓原材料,然后再通过抓到的原材料给粉碎机设置配方。所以这里无论如何都需要两个爪子,一个黄爪从传送带上随便抓一个星岩同时给粉碎机设置上配方,然后蓝爪把星岩接过去塞进机器里面。
        判断选那个配方则需要利用到平台枢纽:用一个常数(比如我设置了100)减去库存里的产物数量得到一个反映产物紧缺度的数值,把结果赋值给对应的星岩处理配方:

        然后再用常量运算器设置再处理对应的“紧缺度”为一个很低的值(比如说0),再把每种星岩对应的三个数值传入选择运算器,让它输出最大的信号:

        随后在每个粉碎机旁边放置三个判断运算器,当黄爪抓到对应的星岩的时候把对应选择运算器的输出设置为粉碎机的配方:

        这样的话基本原理就大功告成了......吗?


        IP属地:广东4楼2024-11-23 07:46
        回复
          写过程序的人都知道,当你刚写完一个自认为非常完美的程序的时候,一般它都是不能运行的(不是
          由于这个进料原理非常反底层逻辑,所以遇到死锁的概率并不低:如果黄爪抓到一个星岩并把它放到了地板上,而后面的蓝爪因为各种原因没有【在黄爪抓到下一个星岩之前】把这个星岩抓起来,上面的判断运算器就会输出错误的配方,从而导致死机。

          不过一般来说,这个系统在不出意外的情况下是不会出意外的(?)真出了意外排障方式也很简单,只要手动右键点击地上的星岩把它丢掉就行了(
          诱发机器死锁的原因通常是粉碎机内的产物没有及时清空(输出端卡带或者飞船断电等)。虽然绿带的运送能力很强,但是考虑到基础的金属星岩处理一次会输出20个物品,如果有多台粉碎机同时在运行这个配方,还是很容易卡带的。
          除了这个比较致命的问题,剩下的问题基本都属于设计层面:首先是每台粉碎机占地面积太大,基本上要占用常规设计中两倍的空间;其次是所有星岩产物都会混在一起,要么借助枢纽有限的调度能力,要么就需要弄一个占地面积巨大的回转寿司转盘。
          不过如果你看到这里还是很喜欢我的这个设计,我也非常欢迎你使用,如果能帮忙改进的话就更好啦(


          IP属地:广东5楼2024-11-23 08:28
          回复
            蓝图代码:
            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
            顺便一提,在某些情况下,基础星岩产物(铁、碳、冰)可能会溢出,所以还需要在枢纽附近接一个简单的信号网络把多余的物品扔出去


            IP属地:广东6楼2024-11-23 08:30
            回复
              我的思路是,对快转到星岩粉碎机的那几格传送带进行局部持续信号读取,加入判断运算器的并且条件里面,也可以减少机器闲置时间,这样如果产物够多也可以判断不工作省的扔垃圾


              IP属地:江苏7楼2024-11-23 09:31
              收起回复
                其实只要再处理系统做好就行了 自然就会平衡好各种星岩的比率
                再处理系统的思路很清楚
                首先是三种石头都要保留一个最低数量 这只需要是用一个常量箱和容器连起来 常量箱输出三种石头的负值即可
                第二步是将三种石头进行两次排序 分别输出最多的和最少的 只要最多的比最少的多出一定数量 就开始处理最多的
                这样只要有少量粉碎机负责做这个事 容器内的三种星岩比例自然会维持平衡


                IP属地:日本8楼2024-11-23 10:05
                回复
                  2025-08-19 15:30:33
                  广告
                  不感兴趣
                  开通SVIP免广告
                  我用了另外一种办法,铜铁冰一组粉碎机,方解石碳板硫磺一组,要做什么一起做,都没事就碎方解石出来


                  IP属地:吉林来自Android客户端9楼2024-11-23 16:06
                  收起回复
                    不用那么麻烦,传送带转转乐,输入口接上信号就行


                    IP属地:浙江来自Android客户端10楼2024-11-23 16:14
                    回复
                      星矿处理还是要分层处理最好,也就是三种转换是初级层,负责每种矿都有,具体用是二级层,把单一种类星矿夹出去用了,多余产物扔掉。比方,炸药模块就只用碳素星矿,用硫转换保证硫磺供应,多余碳扔掉。金属冶炼用铁素星矿,用铁铜转换,多余的铜或铁扔掉。这样思路简单,电路也好做,效率也高。破碎空间的大船只能这种设计才能保证原材料充分供给。环带混料处理虽然方便,想要追求效率,也要遵循材料种类尽量少,带子尽量短的原则


                      IP属地:北京11楼2024-11-23 16:23
                      回复
                        说下我的控制思路:
                        1.每个夹子只夹每种星岩各10颗,把夹子的库存也利用上
                        2.确保枢纽里有且只有每种星岩各10颗
                        3.三个粉碎器紧贴枢纽,按照高级处理副产物数量判断用哪个配方,按照主产物数量判断是否运行
                        4.夹子把星岩运出来到枢纽的过程中,传送带接上信号,读取运输中的数量,算入枢纽星岩总数
                        5.枢纽+传送带上某种星岩数量为0时,启动转转乐开始摇匀


                        IP属地:广东来自Android客户端12楼2024-11-23 16:32
                        回复
                          搞得太复杂了,直接量化好就行


                          IP属地:美国来自Android客户端13楼2024-11-23 17:23
                          回复
                            逻辑没问题,但是这个运算器的数量看着令人缺氧其实解构一下就几个点:
                            1、抓多少(总量控制)。判断当传送带及爪子上总体星岩数量大于x时,停止星岩爪向传送带输入星岩。
                            2、转化什么(种类均衡)。判断当传送带及爪子上某种星岩数量过多时,执行该种星岩的转换配方。
                            3、粉碎什么(产物控制)。判断当传送带及爪子及仓库中某种二级产物数量低于某值时,输出对应的生产配方。
                            4、谁先来(生产优先级控制)。通过运算器对配方进行升/降权后,输出带优先级的生产配方。


                            IP属地:广东来自iPhone客户端14楼2024-11-23 17:36
                            回复
                              2025-08-19 15:24:33
                              广告
                              不感兴趣
                              开通SVIP免广告
                              末端加个自环锁,等粉碎机结束工作信号解锁应该就可以了吧


                              IP属地:北京15楼2024-12-30 12:00
                              回复