버그 해결을 위한 모든 질문을 던져
+2 votes
317 views

 

첨부한 사진처럼 현재 맵을 바둑판처럼 나누고, AI 축구선수들이 자신이 위치한 구역을 인식해서

행동결정에 가중치를 부여하려고 합니다. (Ex. 센터포워드가 상대방 골문 앞에 위치할 경우 슈팅할 빈도가 상승)

축구게임이기에 필드 포지션 값은 고정이며 변하지 않습니다.

 

현재 제가 배운 수준에서 떠오르는 방안은 각각 

1. 플레이어가 단순히 자신 포지션의  xy를 비교하여 현재 구역을 찾는 것.

2. 플레이어가 레이를 쏴서 자신이 위치한 구역오브젝트를 찾아내고 ,해당 오브젝트에 있는 int값을 읽어오는 것. 

 

더 현명한 방법이 있을텐데 아직 공부가 부족해서 잘 모르겠습니다...

답변 감사히 기다리겠습니다.

 

 

 

asked (16 point) , 317 views

2 answers

+4 votes
우수 답변
1번이 맞구요. 전체 맵 크기에 자기 위치만 나눈 후에 배열 행 또는 열의 크기를 곱하면 배열 인덱스가 나옵니다.

x 좌표만 보시죠.

( (현재 위치 x / 맵 width) * 배열 x 크기) - 1

(960 / 1920) * 10 - 1 = 0.5 * 10 -1 = 4

-1은 배열이 0부터 시작하니까 빼준거구요.

 

이렇게 찾으면 배열을 다 돌 필요가 없습니다.
answered (65 point)
선택됨
더 없이 명쾌한 답변 감사드립니다.
+2 votes

AI 쪽은 공개된 자료나 책이 많지가 않죠..ㅋㅋㅋ

축구게임에 쓰이는 행동 알고리즘은 잘 몰라서.. 뭐라 답변드리기가 어렵네요.

다만, 자신이 위치한 구역을 찾는다는 문제에 있어서 작성자분이 생각하시는 1. 배열순회 / 2. 광선충돌은 결국, 두 방법 모두 배열의 모든 원소들을 순회하며 비교해야 할거라 생각합니다. 그러므로, 배열의 크기가 커질수록 그 비용또한 크게 증가하겠죠.

그래서..Octree, Quadtree등 공간 분할 기법등을 활용하면 어떨까 싶습니다.

 

p.s. 국내 인공지능 개발자 모임 사이트입니다. 참고해보세요. :>  http://aidev.co.kr/

answered (89 point)
수정됨
공개된 자료가 없어서 논문까지 찾아보고 있었습니다....ㅠㅠ

가뭄에 단비같은 정보 감사합니다. 잠시 둘러봤는데도 매혹적인 자료가 많네요!

버그 해결을 위해 도움을 구하고, 도움을 주세요. 우리는 그렇게 발전합니다.

throw bug 는 프로그래밍에 대한 전분야를 다룹니다. 질문,논의거리,팁,정보공유 모든 것이 가능합니다. 프로그래밍과 관련이 없는 내용은 환영받지 못합니다.

126 질문
221 answers
253 댓글
245 users