저번에 물류 상자 를 종류별로 하나의 조립기에 제작하는 글을 하나 썻었는데
https://gall.dcinside.com/mgallery/board/view/?id=factorio&no=93204&page=1
[일기] 팩린이 잘 하고 있는지 모르겠따~!@첨에는 아무렇게 했다가. 다른사람들 공장 보고 개쩐다 내 공장은 왜 이렇지? 하면서 엎고~ 엎고~ 엎고~ 하다가풀고라, 불카누스 다른행성가면 재료 부족하고 답답하고 그래서그냥 나우비스 부터 메가베이스로 가자는 생각을gall.dcinside.com술먹고 기분 좋아져서 막 적었더니 일기가 되어 버렸다....
근데 오늘도 술을 먹었으니까 좆대로 적을꺼임
코딩 공부는 안하고 팩토리오로 하고 있는 내가 ㄹㅈㄷ
우리의 나우비스.... 나우비스에는 큰 문제가 하나가 있따....
읍내에 있는 다이소로 물건을 전달하는 로보포트가 너무 느려서 부품 배송이 너무 느리다는 것이다!
메인 버스는 이미 말라버렸고 별도의 철도 모드를 쓰고 있지 않아서 한 정류장에 여러가지 재료를 받을수도 없는 상황이다!
풀고라로 가서 로봇속도를 올리면 되겠지만 지금은 불카누스 여행이 한참이라 풀고라는 언제 갈지 모르겠다!
그래서 기차를 하나 놓았다.
이친구는 다이소 전용이고 필요한 물품을 가져다 줄 터이다...
하지만 치명적인 문제점이 있다..
결론만 말하자면 내가 구성한 철도 로직으로는 원하는 재료를 그때그때 가져오지 못한다.
그 이유는
모든 상차 역은 2^ 라는 이름으로 설정되어 있기 때문이다...
이것은 팩토리오의 시스템적인 부분이고 내가 세팅한 철도 운영 방식의 문제인데
모든 물류 기차가 비어있는 2^으로 간 다음 거기서 얻은 재료의 "이름" 으로 된 역으로 떠나도록 설계 되어 있기 때문 이다.
모든 기차는 2^(2줄짜리 기차라는 뜻.) 로 가고 거기서 뭘 얻으면 "뭘" 이라는 역으로 가게끔 설정해 놨음
그러니까 !!!! 내가 필요한 재료만 가져와!! 해도 이미 모든 상차역은 이름이 2^ 이기 때문에 구별할 수가 없다!!
"야야.. 저기 2^라고 적힌 역 중에 파란칩 나오는 곳에서 가져 와 봐" 해도 멍청한 기차는 알아 들을수 없다
서론이 길다! 근데 왜 안되는지는 설명을 해야 될것 아님?
암튼 그래서
다이소역에 온 기차가 뭐든지 다 가져다 줄수 있게끔 하면 되겠지?
그냥 무식하게 다이소 밑에 공급상자를 겁나 많이 둠 나우비스에 존재하는 모든 2^정류장 을 돌아서 일단 뭐든지 가져와라 컨셉임
근데 여기서 하나만 너무 가져오면 곤란하잖슴??????
지금 상황은 구리판 상차역이 많아서 기차가 구리판만 가져오는 상황임
그러면 언젠가는 저 상자들이 구리판으로 가득 차 버리겠지?? 그러면 안되니까 회로를 써 보자!!!!
기존 물류기차 조건
1. 기차는 비어있는 2^상차역으로 무작위로 간다.
2. 무작위로 간 2^상차역에서 얻은 재료 "A"의 이름과 동일한 역 을 다음 목적지로 하고 화물을 비운다.
3. 2가 완료되면 1로 돌아간다.
(이거 완벽....)
다이소 물류기차 조건
1. 기차는 비어있는 2^상차역으로 무작위로 간다.
2. 무작위로 간 상차역에서 얻은 재료 "A" 를 "다이소 역" 으로 가져간다.
3. "다이소 역" 에서 화물 인벤토리를 비우거나 10초동안 활동이 없을경우 1.으로 돌아간다.
(인터럽트)
4. 하지만 "다이소 역" 에서 기차의 회로 신호가 X = 1 을 만족 할 경우 가지고 있는 재료의 "이름" 과 같은 역으로 이동하고 화물 인벤토리를 비운다
X=1 이 뜻하는 바는 "그 재료는 이미 많아서 필요없음" 임
필요 없으니까 그거 필요한 역 으로 가서 주고 오라는 뜻......
이 회로가 하고 싶은 말은
"기차가 가져온 물건이 지금 다이소 저장고에서 제일 많이 있는 재료랑 같은거면 나는 안받을거임"
이 말 인거임
상자에서 제일 많은 재료는 받지 않는다.
STEP1. 다이소 저장 물품 중 뭐가 제일 많은지 읽자
내림차순 정렬해서 저 상자중에 제일 많은 재료가 뭔지 출력으로 쏴줌...
상자들 중에 제일 많이 들어있는거 하나만 말 해 줄께!!!!
그러니까 제일 많은 하나의 재료만 보내겠지??
어 저는 쏴주는 재료가 다르면 다른 갯수를 세어 드릴께용!!!!!
구리,구리, 를 받으면 둘다 같은 거니까 1를 출력하고 구리,철,구리, 신호를 받으면 구리랑 철 이니까 2개 2를 출력하는 회로임
이친구는 서로 다른 입력 신호의 개수를 출력 해 준다!!!
그럼 지금 상자에서 제일 많은 재료가 기차에서 또 들어온다면 그걸
기차가 못 주도록 막으면 되겠네??
여기서 부터 시작된 생각인데
재료가 들어옴을 판단 - 재료가 무엇인지 판단 - 받고 싶지 않은 재료와 같은 것 이라면 - 받지 않고 그 재료는 다른 필요한 역으로 운송
아 구현은 했는데 어케 적어야 할지 모르겠음
하나하나 설명하면 끝이 없을거 같아서 스샷으로 그냥 남김
옆에 빨간 네모출력이 정류장에 들어온 재료가 없으면 ^1 을 더 해 줘서 항상 2를 유지 하도록 해줌
지금은 재료가 들어오고 있지 않은 상황
재료가 들어오면 체크표시 = 1 을 전송!!!
바로옆에 있는 친구는 재료가 들어 오지 않을때 지속적으로 보내는 빨간신호
그린 체크 신호와 함께 기차가 가지고 있는 화물을 레드 신호로 보내줌
결론
1, 다이소에서 제일 많이 가지고 있는 재료는 받지 않고 돌려보냄
2. 다른건 다 받음
글로 적으려니까 너무 어렵다...
흠... 느낌적인 느낌으로 받아 주면 좋겠음.
흠.. 읽다 말았는데, 그냥 모든 아이템(선별한아이템)을 x개 (ex. 2000개) 이하일때 요청하면 어떨까? 내가 풀고라할때 x개 이상이면 갈았는데, 반대로 x개 이하면 요청해서 채우는 것이지 그리고 열차에서 바로 보라(능동공급)상자로 내리고 투입기 체인 할 필요 없이 노란(보관)상자로 도배하면 투입기 자리에서 상자 놓을 수 있어서 좋을 것 같은데?
요청이 안되는게 요청 하려면 정류장 이름을 바꿔야됨
@글쓴 팩붕이(183.104) 요청이 되었으면 쉽게 했음
n개 이상이면 환불하도록?