2010-04-27 4 views
4

나는 다음과 같은 교통 시뮬레이터를 만들고 싶다. http://www.doobybrain.com/wp-content/uploads/2008/03/traffic-simulation.gif 그러나 나는 이것에 관해 매우 깊이 생각하지 않았다.파이썬 : 교통 시뮬레이션 (도로 위의 차량)

클래스 카를 만들 것입니다. 모든 차량에는 자신의 색, 위치 등이 있습니다.

그리고 배열로 도로를 만들 수 있습니다.

하지만 어떻게 어디로 가야 차를 말합니까? 내 아이디어를들을 수 있을까요?

편집 : 그것은 좋은 프로그래머에서 새로운 아이디어를 얻기 위해 금지되어 있습니까? 왜 어떤 사람들은이 스레드를 닫으려고합니까? 아니면 그런 질문을하는 것이 었습니까? 나는 그들을 이해하지 못한다. :(

EDIT2가 :. 다음에 내가 게이머-포럼에 갈 것이다 나는 지금까지 아이디어를 좋아 감사

+0

개발자들로부터 아이디어를 얻는 것이 금지되어 있지는 않지만,보다 일반적인 아이디어보다 문제를 해결하는 방법 인 구현에 관한 포럼 isa입니다. 그물에 도박 공개 토론이 또한있다. 이것은 단지 그 중 하나가 아닙니다 :) – extraneon

+1

이것이 완벽하게 합법적 인 질문이라고 생각합니다. 범위가 상당히 넓을 수 있지만 아래 답변에서 볼 수 있듯이 사람들은 아이디어와 경험으로 반응했습니다. 아마도 이것은 게임 개발 기반의 StackExchange에 대한 완벽한 질문일까요? – djhworld

+1

나는 이것이 공정한 질문이라고 생각한다. 그러나 나는 또한 여기에 답변 유형이 게임 사이트와 매우 다르다고 생각합니다. 그래서 게이밍 사이트를 사용하여 빌드 할 아이디어를 얻은 다음 여기로 와서 빌드하십시오. – extraneon

답변

1

예술가와 아주 좋은 시각화 기능이 포함되어 비 또는 초급 프로그래머 타겟으로한다 processing라는 자바 기반의 패키지가있다 단순화 된 개발 환경을 제시하면서 (더 "공공 정적 무효 메인 (문자열 [] 없습니다 args) "). 입자 시스템을 보여주는 데모를보고 개별 자동차를 모델링하는 방법에 대한 아이디어를 얻으십시오. 동일한 코드 작성 관용구의 대부분을 따르는 코드 호출 pyprocessing의 파이썬 변환이 있습니다.

내 작은입니다 "tesla" applet - 두 개의 구형 전극 사이에 마우스를 이동하십시오.

6

당신은 어디로 가야 차를 말하지 않는 그것은 인해 속도에 어쨌든 간다.!. (속도계를 조정할 필요가 있는지 알 수 있습니다.)

도로는 배열이 아니며 매트릭스입니다. 모퉁이에서 빨리 지나갈 수는 없으며 도로에서 날아갈 수도 있습니다.

먼저 목표와 범위를 명확하게 공식화하는 것이 좋습니다. 모델링 (물리학 관련)의 범위와 자동차 움직임의 복잡성 (충돌, 굴곡 도로 등)에 대해 생각해보십시오.

난 당신이 일반 영어 (또는 내 경우에는 네덜란드)에서 명확하게 개념을 진술 할 수있는 경우, 코드를 작성하는 것은 때때로 거의 사소한, 훨씬 쉽게 될 것을 찾을 수 있습니다.

편집 명확성을 위해

, 내가 크기 (10MPH)와 방향을 모두 가지고있는 벡터에 대해서 이야기하고 속도에 대해 이야기하고있다. 당신은 또한 비행기를 원하거나 언덕을 모델링 등 (당신이 언덕 '원인을 원하지 않는 원하지 않는다면, 당신은 또한 계정으로 중력을해야 할 것 Y 귀하의 벡터는 2 개 요소, X있을 것입니다 :) 곳 z 위치와 속도가 사용됩니다.

+0

@extraneon : 왜 이렇게 가혹한가? 당신은 어떤 종류의 시뮬레이션이 될지조차 알지 못합니다. 물리학이 관련되어있는 지 등등. 어쩌면 그는 거리 "모델"을 배열 (타일 기반 세계를 설명하는 2 차원 배열)로 말하고 있었을 것입니다 ... @kame : 아마도 좀 더 구체적이어야합니다 (시뮬레이션의 초점은 무엇이 될 것인가). , etc.) –

+0

@das_weezul 네 말이 맞아. 이드는 약간 가혹한 듯했다. 나는 거친 부분을 조금 줄이기 위해 답을 업데이트했습니다. – extraneon

+0

예 타일 기반 세계를 의미했습니다. 어쩌면 모두가 내가 그림을 볼 때 "쉬운"일을하기를 원한다는 것을 이해할 것입니다. :/ – kame

2

각 차량에는 위치, 속도, 방향/궤도/목적지가 있습니다. 이 정보와 다른 차량의 상대적인 위치 및 "결국 도로 표지판"의 존재 여부에 따라 각 차량의 다음 위치를 계산할 수 있고 차량이 감속하거나 가속 할 수 있습니다.

당신이 시뮬레이션에 새 차를 추가

, 그냥 초기 위치, 속도, 목적지를 설정합니다.

2

또한 자동차 간의 충돌이 아니라 충돌 감지를 고려해야하지만 다른 차량 근처에서 브레이크를 걸 때 적절한 경우 상담원 (AI)에게 알릴 수있는 방법이 필요합니다. 너는 각 차의 주위에 경계 구체에 이것을 할 수 있었다.

2

나는 이것에 대한 내 자신의 프로젝트를 사용하는 것이 좋습니다. GarlicSim이라고 불리는이 모델은 시뮬레이션을위한 플랫폼이며, 여러분이 염두에두고있는 종류의 시뮬레이션에 적합합니다. (덧붙여 말하면, just yesterday 나는 큰 릴리즈 버전 0.4를 만들었다).

모두 파이썬이며 멋진 GUI를 제공합니다.

당신이 진지하게 생각한다면, 나는 당신이 당신의 심팩을 쓸 수 있도록 도울 수 있습니다. 그렇게하고 싶다면 메일 링리스트에서 메일을 보내십시오.

+1

이러한 링크가 작동하지 않습니다. 우리가이 프로젝트를 github에서 볼 수 있을까요? – ldavid

2

시뮬레이터의 이론은 Queing Theory입니다. 모교에있는 한 페이지에서 몇 가지 키워드를 보여주었습니다.이 키워드는 당신을 도울 수 있습니다 - https://www.erasmus.cvut.cz/prospectus/FTS/11THO-E.html. 시뮬레이터 자체가 "더 쉬울 것"입니다.

0

첫 번째 질문 : 시뮬레이션의 범위는 무엇입니까?

정교한 인공 지능과 고급 사진 리얼리즘을 사용하면 이산 시간에 1 차원 셀룰러 오토 마톤처럼 간단하게 구현할 수도 있고 완전한 실제 시스템 (엔진의 화학 반응도 모델링 할 수 있습니다!)만큼 복잡 할 수 있습니다 그래픽 및 사운드 효과.

중간에는 여러 가지 가능성이 있습니다. 당신이 할 수있는 것과 배우고 싶은 것을 생각하십시오.

+0

정말 쉽습니다. 사진 에서처럼. 자동차는 2 차원 직사각형입니다. – kame

+0

그림이 정지 이미지이므로 시간이나 시뮬레이션의 역 동성에 대해 아무 것도 알려주지 않습니다. 당신은 당신이 무엇을하고 싶은지를 알기 위해 상세한 명세를 찾아야한다. – fortran