아이디어는 에이전트를위한 환경을 모델링하는 것입니다. ("이동 왼쪽!"예를 들어)비동기 게임과 유사한 환경 모델링
- 시스템
- 에이전트가 응답 다음 조치에 대한 에이전트를 요청
- 시스템이 적절한 상태 에 에이전트를 이동 : 가장 기본적인 경우는 좋아하는이 보인다
그러나 비동기 방식 (스레딩 등)으로이 문제를 구현하는 데 문제가 있습니다.
현재 내 시스템은 다음과 같습니다
void Start(){
while(true && !gameOver){
askAgent()
moveAgent()
if(agentState == terminalState){
gameOver = True;
}
}
}
을 분명히,이 블록이 실이가 실행 중입니다. (OSGi를 사용하는 것이 당황 스럽다. 따라서 모든 단일 번들로 모든 처리 시간을 단축해서는 안된다!)
또한 시스템이 환경에 나타나는 새로운 에이전트에 반응하고 그들과 교전하고 싶습니다.
void setAgent(Agent agent){
system.addAgentToEnvironment(agent);
system.simulateAgent(agent);
}
대신에 단지 바로 주에서 실행 ...
나는 이것을 알고 : 뭔가를 (무언가가 나타나거나 시스템에서 사라지면 내 런타임은 OSGi는 이미 저를 통지의 시설이 있습니다) 매우 혼란스럽고, 질문을 올바르게 제기하고 있는지 확신 할 수 없습니다. n 내가 볼 수있는 아키텍처 또는 접근법은 크게 감사하겠습니다.
"이벤트 대기 중"이 현재 쓰레드를 차단하지 않습니까? – drozzy
아이디어는 마스터 스레드와 작업자 스레드가 있다는 것입니다. 내가 게시하는 코드는 거의 작동하지 않는 마스터 스레드 용입니다. 그렇습니다. 이벤트가 끝날 때까지 기다리지 만 이벤트가 생기고 아이가 이벤트를 처리 할 때까지만 기다리게됩니다. – dbeer