2010-05-22 2 views
2

나는 회전 기반 게임 (그리드가 체스 보드와 비슷 함)에 대해 사각형 격자를 가지고 있지만 게임에서의 움직임은 상대 폰을 적어도 한 번 랩했는지 여부에 따라 다릅니다. 당신이 겹쳐하지 않은 경우 당신이 당신의 상대 폰을 겹쳐 한 경우 턴 기반 게임에서 게임 폰의 경로를 저장하는 방법은 무엇입니까?

한 번 이상, 당신은 도달 할 수

alt text http://img17.imageshack.us/img17/4508/squaregrid7x7home.png

다음과 같이 외부 대부분의 그리드 (상대 졸의 구타) 즉, 홈, 이쪽. "홈"에 도달 한 모든 폰을 먼저 소유 한 플레이어가 먼저 승리합니다.

alt text http://img249.imageshack.us/img249/318/squaregrid7x7movesimple.png

노란색의 사람이 안전 주택, 즉 상대 폰 및 플레이어의 폰 모두 동일한 그리드에 머물 수있다, 이것은 (상대에게) 국지적 인 겹침 폰을 래핑되는 것으로 간주된다 시작 지점으로 돌아갑니다.

이제 모든 질문에 대한 경로를 저장하는 효과적인 방법은 무엇입니까? 플레이어와 4 개의 상대방에게 4 개의 포워드가 있습니다.

그런 정적 정보를 우아한 방식으로 저장하는 패턴이 있습니까? List 그냥 잘 작동합니다

+0

항상 폰이 게임 보드 주변의 설정된 경로를 따라 이동합니까? 각 공백은 처음부터 끝까지 순차적으로 번호가 매겨집니다 (숫자가 화면에 표시되지 않더라도 데이터 구조에있을 수 있음)? 위의 예제를 보면 방금 번호가 매겨진 공백 목록 (예 : 45,48,6,0, ...)이 저장된 경우 폰은 어떤 목표를 향하는 대신 임의로 이동하는 것처럼 보입니다. 공백이 순차적으로 번호가 매겨지면 lapper의 가장 최근 위치가 lapee의 가장 최근 위치보다 높기 때문에 하나의 폰이 다른 폰을 래핑 (추월)했는지 쉽게 판단 할 수 있습니다. –

+0

예, 폰은 항상 설정된 경로로 이동합니다. 공백은 내부적으로 번호가 매겨져 있습니다. 상대방 폰이 겹쳐진 경우에만 폰이 내부 루프 (36,38 ..)에 들어가기 때문에 폰 위치를 추적해야합니다. – panzerschreck

답변

2

시간에 대한

감사합니다. 나에게 꽤 우아한 것 같습니다.

성능에 대한 가장 중요한 요구 사항이있는 경우; 예 : 당신은 대안의 거대한 나무를 탐험 할 필요가있는 자동 선수를 구현하고 있습니다. 당신은 다른 것을 고려할 수도 있습니다. 그러나 데이터 구조에 대한 요구 사항은 게임 재생 알고리즘에 의해 동기 부여되며 예측할 수 없습니다.

+0

상대방이 일부 AI로 구동해야합니다. 다음 움직임을 결정하십시오. – panzerschreck

관련 문제