2012-12-03 4 views
0

나는 MIT Sceheme에서 체스 게임을 만들고 있습니다. 나는 모든 조각에 의해 만들어진 움직임을 추적하는 절차를 만들고 싶다.보드 게임에서 만든 움직임을 추적하십시오.

다음은 예입니다. 나는 루크를 5 칸 위로 움직입니다. 다음 번에는 5 칸 뒤로 이동하고 싶습니다. 문제는 이전 턴에서 앞으로 나아갈 부분을 추적하는 방법을 모른다는 것입니다. 따라서 그것을 어떻게 되돌릴 지 모릅니다. 내가 현재 할 수있는 것은 보드의 전체 상태를 취하는 것입니다. 나는 어떤 종류의 돌연변이를 사용해야한다고 생각하니?

+0

어레이는 옵션이 아닙니까? –

+0

"다음 번엔 5 칸 뒤로 이동하고 싶습니다."- 아마도 이동을 정의하는 방법이 아닙니다. "c7에서 c2로 조각을 이동하십시오"와 비슷합니다. 참고 : AI 태그를 제거했습니다. 왜 당신이 그것을 사용했는지 전혀 모르겠습니다. –

+0

최선의 선택 일지 모르지만 mutables를 사용할 필요는 없습니다. 두 가지 질문이 있습니다. 첫째, 드로우 케이스를 다루지 않는 한 다른 이동을하기 위해 왜 당신의 움직임을 유지해야 하는가? 둘째, 현재 보드를 보관하기 위해 무엇을 사용하고 있습니까? – RonaldBarzell

답변

1

목록에서 이전 이동을 모두 추적하십시오. 가장 최근의 이동 (이동을 수행 한 부분을 알려주는 기호)의 cons 만 이동 로그 목록에 기록하고 절차와 함께 전달하십시오. 어떤 이유로 최근 이동을 찾아야하는 경우 목록을 몇 단계 뒤로 검색하는 것이 간단하며 게임을 추적하려는 경우 몇 가지 추가 기능을 제공합니다.

일부 코드를 공유하려는 경우 구현에 대한 자세한 내용을 포함하여이 답변을 편집 해 드리겠습니다.

+0

내 코드를 볼 수 있다면 좋을 것입니다. 그래도 여러 파일을 가지고 있기 때문에 나를 보내려면 그냥 [email protected]에서 줄을 내 보내십시오. – Art

+0

@Art : 글쎄, 여기에 글을 편집 할 때, 움직임을 만들지 만, 게시물에 git repo에 대한 링크를 원한다면, 그 위에 눈을 돌려 볼 시간을 가질 수 있습니다. – oobivat

+0

귀하의 댓글 기록을보고, 나는 당신이 1901을 가져간 것을 봅니다. 이것은 공개적으로 파일을 게시하지 않기 때문에 사실 1901과 관련이 있습니다. – Art