https://www.reddit.com/r/factorio/comments/6k7iya/have_you_ever_needed_to_graph_any_given_value/
에서 팩토리오에서 그래프 그려주는 장치 청사진을 찾아서 원리를 파악해보기로 했다.
나는 회로네트워크를 써 본 적이 없기 때문에 념글 회로 튜토리얼부터 정독하고 시작하겠다.
https://gall.dcinside.com/mgallery/board/view/?id=factorio&no=1760
https://gall.dcinside.com/mgallery/board/view/?id=factorio&no=10372
https://gall.dcinside.com/mgallery/board/view/?id=factorio&no=13800
팩토리오프린트에서 청사진을 내려받은 뒤 테스트를 위해 청사진을 설치하고 유체 탱크에 물을 넣었다 뺐다 했더니 그래프가 그려지는 것을 볼 수 있다.
중간에 있는 반복 구간들을 걷어낸 기본 장치는 다음과 같다.
이 상태로는 연결 관계를 파악하기 어려우니 다음과 같이 더욱 더 분해해 보자.
조합기 사이는 이런 식으로 연결되어 있다.
맨 오른쪽 부분부터 알아보도록 하자.
먼저 위에서 두 번째 조합기로 (아무신호)를 입력한다.
1틱 후: (아무신호)에 13을 곱하고 신호 종류를 (검정신호)로 바꾼다.
2틱 후: (검정신호)를 (M신호) 로 나눈 몫을 구하고 결과값을 (검정신호)로 출력한다.
3틱 후: (검정신호)가 0이 될 수 있으므로 1을 더한 뒤 (검정신호)로 출력한다.
전체 장치는 (아무신호)를 13등분해 주고 1을 더해 주는 장치였다.
*위에서 2번째 조합기의 상수값을 바꾸고 조면의 개수를 늘리는 것으로 그래프의 y축을 늘릴 수 있을 것 같다.
이제 왼쪽에 있는 장치를 분석해 보도록 하자.
맨 아래에 있는 조합기에서 (C신호) 1개와 (T신호) 300개를 내 보낸다.
1틱 후: (C신호) 1개와 (T신호) 300개가 위에 있는 두 개의 조합기에 입력되고 두 번째 조합기는 (C신호) 1개, 맨 위 조합기는 (W신호) 1개를 내 보낸다.
2틱 후: 맨 아래 조합기가 내 놓은 (C신호) 1개와 두 번째 조합기에서 내 놓은 (C신호) 1개가 합산되어 맨 위 조합기로 들어간다. 두 번째 조합기는 (C신호) 2개를 내 보낸다.
3틱 후: 맨 아래 조합기가 내 놓은 (C신호) 1개와 두 번째 조합기에서 내 놓은 (C신호) 2개가 합산되어 맨 위 조합기로 들어간다. 두 번째 조합기는 (C신호) 3개를 내 보낸다.
.
.
.
300틱 후: 맨 아래 조합기가 내 놓은 (C신호) 1개와 두 번째 조합기에서 내 놓은 (C신호) 299개가 합산되어 맨 위 조합기로 들어간다. 두 번째 조합기는 (C신호) 300개를 내 보낸다.
301틱 후: 두 번째 조합기에서 (C신호) 를 내보내지 않는다. 맨 아래 조합기가 내 놓은 (C신호) 1개가 맨 위 조합기로 들어가고, 맨 위 조합기는 (W신호) 1개를 내 보낸다.
302틱 후: 맨 아래 조합기가 내 놓은 (C신호) 1개와 두 번째 조합기에서 내 놓은 (C신호) 1개가 합산되어 맨 위 조합기로 들어간다. 두 번째 조합기는 (C신호) 2개를 내 보낸다.
303틱 후: 맨 아래 조합기가 내 놓은 (C신호) 1개와 두 번째 조합기에서 내 놓은 (C신호) 2개가 합산되어 맨 위 조합기로 들어간다. 두 번째 조합기는 (C신호) 3개를 내 보낸다.
(반복)
전체 장치는 300틱에 한 번씩 (W신호) 1개를 내 보내는 장치였다.
*맨 아래 조합기의 (T신호) 값을 바꾸면 더 짧은 시간 간격마다 그래프를 그릴 수 있을 것 같다.
가운데 있는 장치를 분석해 보도록 하자.
(n틱검정신호)가 지속적으로 2열 2행 조합기로 입력된다.
1틱 후: (W신호) 1개가 1열 5행 조합기와 1열 3행 조합기로 입력된다.
2틱 후: (W신호) 1개가 1열 4행 조합기로 입력되고, (R신호) 1개가 1열 1행 조합기로 입력된다.
3틱 후: (W신호) 1개가 1열 2행 조합기, 2열 5행 조합기, 2열 3행 조합기로 입력된다.
4틱 후: (W신호) 1개가 2열 4행 조합기로 입력되고, (R신호) 1개가 2열 1행 조합기로 입력된다.
5틱 후: (W신호) 1개와 (5틱검정신호)가 2열 2행 조합기로 입력된다.
6틱 후: (5틱검정신호)가 2열 1행 조합기로 입력된다.
7틱 후: (5틱검정신호)가 2열 1행 조합기와 조명, 1열 2행 조합기로 입력된다.
8틱 후: (5틱검정신호)가 2열 1행 조합기와 조명, 1열 2행 조합기로 입력된다.
9틱 후: (5틱검정신호)가 2열 1행 조합기와 조명, 1열 2행 조합기로 입력된다.
.
.
.
301틱 후: (W신호) 1개가 1열 5행 조합기와 1열 3행 조합기로 입력된다. (301틱검정신호)가 2열 1행 조합기와 조명, 1열 2행 조합기로 입력된다.
302틱 후: (W신호) 1개가 1열 4행 조합기로 입력되고, (R신호) 1개가 1열 1행 조합기로 입력된다. (302틱검정신호)가 2열 1행 조합기와 조명, 1열 2행 조합기로 입력된다.
303틱 후: (W신호) 1개가 1열 2행 조합기, 2열 5행 조합기, 2열 3행 조합기로 입력된다. (303틱검정신호)가 2열 1행 조합기와 조명, 1열 2행 조합기로 입력된다.
304틱 후: (303틱검정신호)가 1열 1행 조합기로 입력된다. (W신호) 1개가 2열 4행 조합기로 입력되고, (R신호) 1개가 2열 1행 조합기로 입력된다.
305틱 후: (303틱검정신호)가 1열 1행 조합기로 입력된다. (W신호) 1개와 (305틱검정신호)가 2열 2행 조합기로 입력된다.
306틱 후: (303틱검정신호)가 1열 1행 조합기로 입력된다. (305틱검정신호)가 2열 1행 조합기로 입력된다.
307틱 후: (303틱검정신호)가 1열 1행 조합기와 조명으로 입력된다. (305틱검정신호)가 2열 1행 조합기와 조명, 1열 2행 조합기로 입력된다.
308틱 후: (303틱검정신호)가 1열 1행 조합기와 조명으로 입력된다. (305틱검정신호)가 2열 1행 조합기와 조명, 1열 2행 조합기로 입력된다.
309틱 후: (303틱검정신호)가 1열 1행 조합기와 조명으로 입력된다. (305틱검정신호)가 2열 1행 조합기와 조명, 1열 2행 조합기로 입력된다.
(반복)
전체 장치는 (W신호) 1개가 n열 5행과 n열 3행에 입력되면 1틱 후 n열 1행과 n열 4행, 2틱 후 n열 2행과 (n+1)열 5행과 (n+1)열 3행에 입력해 주는 것과,
1틱 후 n열 1행 조합기를 리셋하고 3틱 후 (n+1)행 1열의 (검정신호)를 n행 1열로 옮겨 주는 역할도 하고 있고,
각 행 1열의 조합기는 (R신호)가 들어오기 전까지는 현 상태를 유지하는 일을 하는 장치였다.
각 열 1행을 잇는 빨간 선은 플레이어가 직접 (R신호)를 전달해 전체 디스플레이를 리셋시키는 용도였다.
각 열 4행의 조합기가 필요 없을 것 같아서 제거한 다음 각 열 5행이 각 열 2행과 다음 열 5행으로 신호를 전달하도록 했더니 정상 작동했다.
*맨 오른쪽 조명 옆에 붙어 있는 조합기는 색깔 신호를 내 보내는데 이를 이용하면 어디까지가 어느 색인지 범위를 바꾸던가 색을 없애 버릴 수도 있을 것 같다.
*현재 조명은 (검은신호)값이 정확히 일치할 때만 켜지도록 되어 있는데, =설정을 >설정으로 바꾸면 아랫부분이 가득 차게 만들 수 있을 것 같다.
*=설정을 <설정으로 바꾸면 역으로 윗부분이 가득 차게 만들 수 있을 것 같다.
공간절약형.
청사진은 41kb라서 디씨가 못받아들이므로, https://pastebin.com/6Twh1DeE 링크 타고 들어가면 됨.
이로써 조합기를 추가로 20프로 절약할 수 있다.
이 디스플레이는 본진에서 멀리 있는 기지의 물자 비축량을 한눈에 보는 데 유용하게 사용될 수 있다.
레딧에서 관련글 본 이후 글 작성까지 걸린 시간 총 3시간. 회로 재밌네
그래프 그리기에 대해 더 관심이 있으면 https://forums.factorio.com/viewtopic.php?f=80&t=19987 링크로 들어가서 관련 게시글들을 읽어볼 것.
개추야 - dc App
게임이라매 미친놈들아 - dc App