진짜 바닐라 회로만으로 만들었음 ㅎ


이론적으로는 된다고 생각했는데 막상 기차 여러개 돌리니까 문제가 많더라.

해결하느라 고생했음... (아직도 큰 문제 몇 개 남은듯)






일단은 검사역 > 요청역 사이를 한 번에 한 기차만 지나갈 수 있도록 했음.

한번에 둘 이상의 기차를 검사하게 되면 요청역이 두 개 켜지는데,

기차가 교차로에 정차하면 경로가 재설정됨.

요청역은 모두 같은 이름을 쓰기 때문에 여러개의 요청역이 켜져 있다면 이 때 다른 역으로 빠질 수 있다.

그래서 하나의 기차가 요청역에 무사히 도착한 후 다음 기차를 검사하도록 했음.






의외로 제일 고생한게 공급역 회로였음.

정확히는 '기차가 역을 떠나면 공급이 완료되기 전까지 기차수 제한을 0으로 유지하는것'

저번 회로에서는 기차가 역을 벗어나도 요청신호는 계속 오고 있어서 새로운 기차가 물건을 받으러 오는 문제가 있었음.

기차가 공급역에 도착하면 기차수 제한을 1 빼주고, 그걸 메모리셀에 기억한 후, 요청이 완료되면 초기화하는 식으로 해결함.

전역 네트워크에 올릴 수 있는 정보가 해당 품목 신호 뿐이라 (요청역을 구별할 수 있는) 너무 어려웠음.

나름 회로 초보라 이것저것 만져보다가 결국 조합기 되게 많이 써버렸다.

회로 고수님들아 최적화좀...



여기까지 일단 첫 번째 목표인 '기본적인 공급 및 요청' 기능은 구현했음.

하지만 아직 큰 문제가 몇 개 있다.

대표적으로 한 품목당 하나의 공급역 밖에 못 쓴다는 점.

공급역이 두개면 요청이 들어올 때 두 공급역이 모두 켜지고, 두개의 기차가 서로 물건을 실으러 감....

이걸 어떻게 해결해야 할 지 아예 감이 안잡힌다.

다른 문제는 하나의 요청역에 동시에 열차를 두 개 이상 배정하지 못하는 점.

이건 회로질 잘하면 해결할 수는 있을듯.


사실 지금 구현한거만 해도 '바닐라' 선에서는 크게 문제가 없다.

채광같이 단일품목 공급역이 많이 필요한 부분은 어쩔수 없이 일반기차 써야겠지만

이걸로 다품종 소량생산 유사 ltn그리드는 돌릴 수 있음