태그 보관물: c++

c++

2D 레이싱 게임을위한 AI 구축을위한 팁 가속 및 조종을 위해 몇

2D 레이싱 게임을 위해 AI를 구축하는 학교 프로젝트가 있는데 다른 AI와 경쟁 할 수 있습니다 ( 충돌 없음 ).

경주 트랙의 흑백 비트 맵 이미지가 제공되며,지도를받은 후 자동차의 기본 통계 (처리, 가속, 최대 속도 및 브레이크)를 선택할 수 있습니다. AI는 게임 서버에 연결하여 현재 가속 및 조종을 위해 몇 초의 숫자를 제공합니다. 내가 선택한 언어는 C ++입니다. 질문은 :

최선의 전략이나 알고리즘은 무엇입니까 (내가 이기고 싶어서)? 나는 현재 그물과 하나 또는 두 개에서 발견 된 몇 가지 아이디어를 염두에두고 있지만 내 관점이 최고 중 하나임을 코딩하기 전에 싶습니다. 그 문제에 관해 어떤 좋은 책이 있습니까? 어떤 사이트를 참조해야합니까?



답변

기본 AI를 설정 한 다음 자신의 차량을 처리 할 API를 설정하십시오. 이길 수 있다면 AI를 긍정적으로 강화할 수있는 기록 알고리즘을 설정해야합니다. 이것은 인공 지능의 행동을 조정하기위한 신경망 일 수 있습니다. 코너 등으로 점진적 제동 등

프로젝트에서 외부 라이브러리를 사용할 수 있습니까? 그렇다면 FANN 을 살펴 보십시오 . 빠른 신경망 라이브러리입니다. 자신의 글을 쓰지 않아도됩니다. 소스 코드가 필요한 경우 언제든지 직접 작성할 수 있지만 시간이 걸릴 수 있습니다.


답변

AI를 실행하기 전에 맵을 전처리 할 수 ​​있다면 맵 세그먼트를 통해 최상의 레이싱 라인을 계산하면됩니다.

GameDev.net 의이 게시물 에는 여러 가지 제안이 있습니다.

AI 지혜의 책은 AI 경주에 대한 기사를 많이 가지고있다. 특히 AI 내에서지도를 데이터 구조로 표현할 수있는 방법을 설명하는 기사가 포함 된 기사를 추천합니다.

내가 본 또 다른 방법은 간단한 강화 학습 (Q-learning)입니다. 최적의 길을 얻으려면 수천 번의 반복이 필요할 것입니다. 이 백서에 설명되어 있습니다 : http://www.cs.ubc.ca/~zhijin/540report.pdf


답변

다음은 AI 구동을위한 훌륭한 참고 자료입니다 : 자율적 인 캐릭터를위한 조향 동작 . 모든 사람의 참조를 위해 여기에 게시. 시작하는 데 필요한 정보가 많지만 정보가 많으므로 세부 정보에 너무 신경 쓰지 마십시오.


답변