스피드런에서 자주 사용하는 일정 신호 조합기 트릭을 알아보자
오버플로트릭 이라는 것인데 주로 일정 신호 조합기 하나만을 이용한다
"철광석이 20개 이하 라면"
이 문구에서는 조건이 하나 들어가기 때문에 항상 일정 신호 조합기 + 산술 연산 조합기를 세팅 해야한다
각각 22개가 필요 하다면 일정 신호 조합기에서 22개를 세팅하고
산술 연산 조합기의 input 으로 inventory(상자, 플랫폼, 수집기 등)를 연결해주고 output에 분쇄기와 일정 신호 조합기를 연결 해준다
산술 연산 조합기는 "각각" -1 곱한 결과를 "각각" 출력하라고 한다
현재는 inventory가 비어 있기 때문에 아무것도 안나온다.
이 때 일정 신호 조합기에서 22개의 철광석,탄소,얼음을 세팅해 두었으니
분쇄기는 각각 22개의 아이템의 신호로 받아들이고 여기서 우선순위가 가장 높은 순서대로(철광석>얼음>탄소 - 위키 참조) 조합법을 세팅한다
철광석이 가장 높으므로 "철광석을 만드는" 제조법인 "금속 소행성 분석" 제조법을 선택하게 된다
여기서 철광석이 22개 이상이라면
(23개의 철광석을 넣어주었다)
이렇게 다음 우선순위가 높은 얼음 소행성 분쇄로 레시피가 바뀌게 된다
이렇게 기본적으로 해당 아이템 개수를 카운트 하여 원하는 만큼만 생성하게 하려면 두 개의 아이템(일정신호, 산술연산)이 필요하게 된다
다음은 오버플로 트릭을 봐보자
나같은 컴돌이야 언더플로, 오버플로라고 하면 바로 알아들었겠지만 모르는 사람들을 위해서 간략하게 설명하자면
컴퓨터가 표현할 수 있는 숫자표현범위를 넘어서는 경우를 언더(아래로)플로우(넘쳐), 오버(위로)플로우(넘쳐) 버린 경우를 뜻한다
(컴돌이들 태클 ㄴㄴ 여기서 32bit니 float이니 그런 나쁜말은 ㄴㄴ)
정말 간단하게 일정 신호 조합기로 나타낼 수 있는 숫자범위는 -2147483648 ~ 2147483647 까지다
여기서 -2147483648에 -1을 하면 +2147483647이 되어 버린다(언더플로)
반대로 2147483647에서 +1을 하면 -2147483648이 되어 버린다(오버플로)
팩토리오에서 신호는 + 신호를 올바른 신호 라고 말한다
반대로 - 신호는 후보에는 올라가지만 올바른 신호라고 판단하지 않는다
즉, 오버플로 + 1 을 하면? 올바르지 않은 신호
반대로 오버플로 - 5를 한다면? 올바른 신호
여기서 오버플로 -5를 세팅하고 아이템이 5개가 된다면? 오버플로 + 1이 되기 때문에 올바르지 않은 신호로 변경된다
이 트릭을 이용해서 신호 조합기를 오버플로 - (원하는 아이템 개수)로 설정한다면 산술연산 조합기 없이도 같은 효과를 낼 수 있게 된다
(MAX_INT - 5)
철광석을 오버플로 - 5로 세팅을 하고
참고로 신호 조합기에서 수식 사용 가능하다
분쇄기에 연결한 뒤에 실제로 철광석 5개를 넣으면 레시피가 변경되는지 확인해 보자
실제로 오버플로우를 일으키면서 - 신호로 변경 되었다
파쇄기도 다음 우선순위인 얼음 소행성 파쇄로 바뀐 것을 확인 할 수 있다
주로 Wall ship에서도 많이 쓰긴 하는데
(AntiEltiz는 흰팩에서도 씀)
알아두면 좋은 트릭이다
아 float 태클걸려 했는데
ㅋㅋㅋㅋ 그런 나쁜말은 ㄴㄴ
수식 사용 가능하니 2147483648 일일히 적을필요도 없이 그냥 2^31만 써도 되고
하지만 숫자를 외워버렸는걸...
-2^31을 복사하는건 상식이잖아
근데 컴퓨터 문외한들한테는 상식이 아니라는게..
근데 AntiEltiz Wall ship에서 같은 아이템에 하나는 -2^31-133, 다른 하나는 -2^30-3을 적어서 쓰던데.. -2^30-3에서 -1씩 더할때마다 수집기 저장량이 2개씩 늘어나던데 그건 왜 그런건지 모르겠음.
일단 영상에서 그런거면 나도 그건 모르겠고, 가끔씩 다른 버전 세이브 열면 깨지는경우가 있음 wall ship 왼쪽에는 -5 -5 -22 로 소행성 잡아도 잘 동작함. 옆에는 -2^31로 소행성들 각각 잡아줘야 파쇄기 무한루프 안돌아
@툴키디 그렇고만.. 다른 회로는 계속 보니까 이해됐는데 오버플로 부분은 아무리 봐도 이해가 안되서 그냥 적당히 결과물만 보고 써먹고 있음 ㅋㅋ
대충 스쳐지나가다 담번에 공부해야지 미뤘는데.. 간단히 정리해주니까 이제 써먹을수 있을거 같음 고마워
상수입력란에 수식드가는건 또 첨알았네