- 현재 체스말은 모든 말이 모든곳으로 이동할 수 있다.
이 부분을 실제 체스 게임처럼 구현하려고 한다.
https://ko.wikipedia.org/wiki/%EC%B2%B4%EC%8A%A4_%EA%B7%9C%EC%B9%99
이것 이후에 1턴씩 돌아가면서 둔다는 규칙만 추가하면 기본적인 게임의 기능은 추가가 된 셈이고, 현재 내가 띄운 서버에 올려둘 예정이다.
1. 갈 수 있는 곳을 특별한 색으로 표시해보자.
- 지금은 모든곳을 갈 수 있으니 기물을 클릭했을때 모든 색으로 표기될 것이다. 먼저 해당 기능을 구현해보자.
- 해당 기능은 나중에 구현하기로 함
2. 일단 기물이 움직일 수 있는 칸을 리턴하는 함수를 만들자.
- 함수 인자로는 piece, board 배열을 넘겨주었다.
- 기물 객체에 moveHistory 배열을 추가해서 폰의 경우는 맨 처음엔 2칸 전진 할 수 있는 기능을 구현했다.
- index를 이용해서 현재 선택한 기물의 인덱스를 구하고 백의 경우는 -8, 흑의 경우는 +8인 인덱스를 가진 스퀘어만 리턴하도록 하였다.
- 말 잡는 것 판단하는 것도 비슷하게 구현.
아래는 폰의 움직임만 일단 구현해보았다.
'개발일지' 카테고리의 다른 글
[OS개발] 2. 64비트 프로세서 (0) | 2022.07.31 |
---|---|
[OS개발] 1. 프롤로그 (0) | 2022.07.30 |
[사이드프로젝트] 자동 배포 (0) | 2022.04.16 |
[CANVAS - 체스] 8. 리팩토링 중 (0) | 2022.04.16 |
[CANVAS - 체스] 7. 리팩토링 시작 (0) | 2022.04.13 |