념글에 있는 실용회로는 나도 애용하고 있는데 추가로 설명이 필요한 부분이 좀 있음
https://gall.dcinside.com/mgallery/board/view/?id=factorio&no=94942
실용회로 10선누가 회로 알려달래서 써봄다 만져볼 수 있게 블프로도 만들어놨어https://factoriobin.com/post/sau085 실용회로 10선 - FactorioBinFactorioBin is a site for qugall.dcinside.com1. 벨트 양면 골고루 쓰기
이 회로는 특정 상황에서 문제가 발생함
코너에서 멀리 있는 레인을 A, 가까이 있는 레인을 B로 명명함
위 회로는 A 레인의 물류량을 50%로 제한하는 회로이기 때문에, B 레인의 물류량이 50% 미만으로 내려가면 병목이 발생함
B의 물류량이 0이면 입력값 자체가 -1이 되어서 최대 40%의 병목이 발생 (벨트 당 최대 물류량이 2.5개임)
이렇게 설정하면 위 문제가 차단됨
투입 벨트의 내용물 읽기를 체크하고 기존의 3에 벨트의 최대 아이템 갯수인 8을 더해서 입력
이렇게 하면 투입 벨트에 아이템이 7~8개일 때만 회로가 작동을 함
이외의 경우에는 회로 자체가 작동하지 않아서 그냥 회로가 없는 상태랑 똑같음
묶음 투입기로 4스택 쌓은 벨트라면 41로 설정하면 됨 (2 + 8) x 4 + 1 = 41
꺾인 벨트는 최대 아이템 적재량이 8개가 아닌 7개이기 때문에 조건식 상수도 11이 아닌, 1개를 뺀 10을 넣으면 된다.
묶음 투입기 벨트라면 33
2. 하차 상자 밸런싱
상용회로의 상하차 상자 밸런싱 회로는 상차 기준으로만 소개되어 있음
하차역의 경우 E >= -16으로 설정해야 정상적으로 작동함 (음수를 넣어야 함)
3-1. 타이머/카운터
위 회로는 0~22 사이에서 1씩 증가하다 22가 되면 0으로 돌아가는 회로인데, 이 게임에서 출력값이 0이면 0이 아니라 null값으로 출력이 됨
일정신호조합기에서 수치를 0으로 설정해보면 출력이 아예 없는 걸 알 수 있음
그러니까 사실 이 회로는 0~22가 아니라 Null과 1~22를 출력하는 타이머임
3-2. Null값과 매개변수(모두)
입력값이 없을 때(Null) 매개변수(모두)의 조건식은 무조건 참이 되기 때문에 유의해야 함 (이유는 나도 모름)
매개변수(아무거나)의 경우는 문제 없음
3-3. 개선된 타이머 (feat. 일정 신호 조합기)
이 회로는 일정 신호 조합기를 추가로 사용해야 하지만 타이머가 1~n으로 작동하기 때문에 더 직관적이고 Null값의 문제가 원천 차단됨
4. 타이머를 활용한 스시벨트
사실 이건 원래 알려진 방법이긴 한데 타이머랑 같이 묶어서 소개함
0~n 타이머를 사용한 스시벨트
타이머에 '아이템 가짓수 - 1' 값을 넣으면 됨
일정신호조합기를 추가하여 1~n 타이머를 사용한 스시벨트
타이머에 '아이템 가짓수'를 그대로 넣으면 됨
바닐라 연구팩 가짓수인 12가지를 기준으로 만든 스시벨트 청사진
https://docs.google.com/document/d/1bTogTP7kOJxw70iTGhLvTu7Fx_x7Chb-H6Zdw_88FuI/edit?usp=sharing
장점: 빙글빙글 돌아가는 거 보고 있으면 기분이 좋음
모두를 사용한 조건식일때 NULL이 입력되는 경우 출력이 참이 되는건 신호설명에 써있기도 하고 이유를 굳이 따져보자면 (모든 신호에 대해 조건이 참) 이건 어떻게 보면 (조건을 거짓으로 만드는 어떤 신호가 있다의 부정) 이기도 해서임. Null일때는 조건을 만족못하는 신호도 없는거니깐 결국 참이되는게 자연스러움 비슷하게 (어떤 신호에 대해 참)은 동시에 (모든신호가 조건을 거짓으로 만듬 의 부정) 이기도 함
써있었음? 나만몰랐네. 설명서 안읽는 성격이라 세줄짜리도 안읽었네 ㅋㅋㅋ
"모든 신호가 조건을 만족하면 참을 출력합니다." 아무 신호가 없으면 모든신호(아무것도없음)가 조건을 만족한다는 조건을 충족해서 참이 되는 거네. 매개변수(아무거나)는 "입력 신호 중 하나라도 조건을 충족하면"이기 때문에 아무 신호도 없으면 조건을 충족하는 신호가 없으니까 거짓. 이해했음
어떤 조건의 부정으로 정의되는게 뭔가 위상 생각나네