《缺氧》怎麼實現嚴格依序的過程循環?大家有嘗試過嗎?有玩家用門電路實現了這個循環過程,以下為「sunny白水004」分享的《缺氧》嚴格依序過程循環圖文指南,感興趣的朋友們一起看下這位玩家的具體過程吧。
在聖誕打折時入了這個遊戲,被深深地迷住了,各種資源的循環利用、氣液固的轉化、溫度控制等等非常有意思,尤其是其中的自動化部分,研究起來真是樂趣無窮。下面分享我的一個研究成果,用門電路實現嚴格依序的過程循環。
先說一下事情的緣起,在建造汙水處理廠時發現,汙水池裡繁殖了大量細菌,即使經過淨化器處理也無法去除。開始我以為帶菌淨水只要不喝,拿來電解製氧就沒事,沒想到這神奇的外太空細菌連電解都殺不死啊,隨著氧氣在基地裡到處飄,實在不能忍。後來發現用液體加熱器把水加熱到75度以上就可以滅菌,於是設計了這樣的系統:
左邊是帶菌水,經過中間的加熱池加熱到75度以上,然後排到右邊的公共淨水池。在實際做的時候發現,如果只是簡單的用溫度和水壓來控制泵和加熱器的話,很容易亂套。比如熱好的淨水還沒排淨,新的帶菌水又進來把淨水汙染了;或者淨水正排到一半溫度突然低了,加熱器又重新開始加熱等等。所以我希望設計這樣一套電路,能夠讓放水➡加熱➡排水這3個過程嚴格依照順序運行,並不斷循環。推而廣之,對於任意多個需要按順序運行的過程,都能做到只有過程n運行完畢,過程n+1才能夠開始,而其他所有過程則保持待機。如下圖所示:
這裡的終止條件從各類感測器傳來,用於控制過程的終止。可以發現,這裡傳遞給下一過程的運行信號必須為脈衝信號,如果是持續信號的話,過程n+1則不能正常終止。既然是脈衝信號,那麼需要電路具備「自持」的能力,來把運行信號保持住。
基於以上思路,在反覆實驗和簡化後,我找到了一種相對滿意的設計方案,如下圖:
電路大佬可能看到這裡就明白了,下面給對電路不太熟的人再解釋一下。這個遊戲內電路的運作機制是,每0.1秒作為一個tick,一個門電路在當前tick的輸出值,取決於上一個tick的輸入值。其實電路值每一個tick都在刷新,所謂的「連續信號」只是連續很多tick的值都相同而已。以最簡單的非門來舉例:
開始時輸入0,輸出1。在tick2輸入變化為1,而此時非門的輸出取決於tick1的輸入,所以仍然為1,直到tick3才根據tick2的輸入變成0。如果之後每個tick的輸入都相同,那麼輸出也一直不變,看起來就像是輸出連續的信號0一樣。
下面我們來細緻分析一下這個電路的工作過程:
Tick1,設備在等待運行信號,沒有工作。
Tick2,前一個過程結束後傳來了運行信號,設備開始工作。
Tick3,外來運行信號消失,但由於上面與門的輸出連回了輸入,可以把這個信號自我保持下去。
然後一直工作到Tick90都沒有發生變化。
Tick91,由感測器傳來的終止條件滿足了,但是與門的輸出還要多等一個tick再改變。
Tick92,下方與門輸出變為1,向下一個過程輸出了運行信號。
Tick93,上方與門輸出變為0,設備停止工作。
Tcik94,下方與門停止輸出,最終成功輸出了2個tick的運行信號脈衝給下一個過程。
通過分析可見,這個設計完全實現了之前的構思,嚴格按照順序運行每個過程並可不斷循環。
最後把遊戲裡的具體實現圖貼一下。
需要注意的是,電路剛開始建成的時候不存在運行信號,所以在左下角加了一個手動開關,開一下再關掉,整個電路就可以正常運行了。
後來我還用這套設計建了個天然氣加熱系統,把所有的天然氣加熱到120度再燒掉,從中可以賺一些負熱量。
後記:其實在學習了一些電路知識後(作者非電子專業),最開始是用RS觸發器做的,但是這種現實中的東西照搬到遊戲裡給人非常繁瑣的感覺,就想了很多辦法去簡化,最後才變成這個樣子。如果你還有更簡單的實現方法,歡迎一起來探討。
看到前面很多人說不懂,令我懷疑電路圖的講解方式過於抽象了,也許結合遊戲內的實際運行圖會更易懂些?我們先來看第一個過程「送水」工作時的運行圖:
綠線表示值為1(啟動),紅線表示值為0(待命)。可見只有送水的水泵在工作,而藍箭頭所指的壓力感測器,當壓力高於900kg時,將控制送水過程終止。
下面來看第二個過程,加熱:
現在加熱器正在工作,當溫度感測器超過76度時,加熱過程即終止。
最後看第三個過程,排水:
當壓力低於500kg時,感測器將使排水過程終止,之後啟動過程1,完成循環。
來源:遊民星空