묶음 투입기가 자꾸 스택 모자르게 잡으면 하염없이 기다리길래 회로로 집은 아이템의 스택이 모자르면 줄여주도록 해서 제어하려고 하는데 막힘
작동 순서는
0. 묶음 투입기의 손 내용물 읽기(유지), 묶음 크기 설정(점 신호) 사용
1. 일정 신호 조합기에서 점 신호가 16으로 나간다. 이는 평상시(아무것도 들고 있지 않은 상태) 묶음 투입기의 스택을 관리.
2. 투입기가 물건을 집으면 수량 비교 조합기로 들어가 잡은 품목이 16 개보다 적은지 확인한다.
3. 만약 최대 스택인 16보다 적다면 점 신호를 들고 있는 품목의 개수만큼 출력한다. 예를 들어 12개를 잡았다면 수량 비교 조합기의 출력은 점 신호 12가 된다.
4. 이후 산술 연산 조합기에서 3번에서 받은 출력에서 1번의 점 신호를 뺀 값을 계산한다. 예의 경우엔 -4가 출력된다.
5. 그 후, 4번의 출력과 1번의 출력을 합쳐 묶음투입기로 입력시킨다.
일단 위의 과정을 통해 잡은 스택에 따라 묶음 투입기의 묶음 크기가 바뀌는 것 까진 확인을 했는데, 문제는 스택이 변경되었음에도 불구하고 손에 들고있는 상태로 얼어있음
그런데 더 이상한건 상자의 물품을 빼면 작동을 함 무슨말이냐면
이렇게 왼쪽 상자에 석탄 50개를 넣고 실행을 시키면
48개는 옮기고 2개는 묶투에 그대로 남아있음. 이때 묶투의 스택은 회로로 조정되서 2가 되어있음.
즉, 물건을 집고 -> 스택이 2로 바뀌었는데 -> 묶투가 움직이질 않음
여기서 오른쪽 상자의 석탄을 빼면
굳어있던 묶투가 움직여서 상자에서 남은 2개를 옮김. 이게 이해가 안감
벨트는 괜찮은가 하고 같은 실험을 해 봐도 같은 현상. 위의 경우도 벨트의 석탄을 직접 먹으면 귀신같이 움직임.
그럼 투입기로 하면 되는건가 해서 벨트위의 석탄을 투입기로 빼봐도 마찬가지로 스택은 2인데 석탄 2개를 내려놓지 않음
이게 프로그램상의 문제인지 아니면 내가 뭘 잘못한건지 감이 안잡혀서 조언을 구합니다....
나는 잘 모르겠지만 이래서 스택 4개로 설정하긴 함... - dc App
따지면 버그려나 좀 재밌네 - dc App
오 이건 좀 흥미로운데 나도 실험해봐야지. 지금 읽기만 해서 짐작하기로는, 그냥 투입기 작동 코드가 그렇게 되어있는것 뿐이 아닐까 싶긴 함. 내려놓을곳에 변화가 감지되어야 투입기의 작동을 다시 검토하게된다던가.
테스트해보니까 진짜 그렇게 작동하네요. 그리고 짐작도 맞는거 같아요. '회로를 통해 투입기의 운반스택을 변경해도, 투입기의 작동 재검토가 이루어지지 않는다.'
완전한 해결은 아니고, 부족한 해결책은 하나 찾았습니다. 1. 투입기에 활성 비활성 조건을 건다. (A>0 일때 활성화) 2. 투입기에 따로 회로 또 연결해서, A가 0~100 사이를 반복하는 신호를 준다. (일정신호+비교연산기로 만들수있음) 이렇게 하면 투입기가 100틱마다 1틱씩 비활성되었다가 활성화되니까, 활성화될때 작동 재검토가 이루어지고, 투입기가 작동되는거죠. 다만 투입기의 성능이 약 1% 정도 저하될듯. 100틱마다 1틱씩 멈추게되니까.
글쓴 팩붕이인데 글 작성 마치고 추가로 실험해본결과 왼쪽상자에 석탄말고 다른 물건이 있다면 정상작동하는것이 확인됐네요. 아마 왼쪽상자에 다른 물건이 존재하고 필터를 걸어놓으면 해결될거같은데 해보고 글 수정해볼게요
이정도면 버그성에 가까운데
근데 이건 묶투의 컨셉을 생각하면 안 고쳐지지 않을까 싶네 - dc App
와 이게 될려나 - dc App