본문 바로가기

개발일지

[CANVAS - 체스] 9. 체스말 이동 가능조건 추가

- 현재 체스말은 모든 말이 모든곳으로 이동할 수 있다.

 

이 부분을 실제 체스 게임처럼 구현하려고 한다. 

https://ko.wikipedia.org/wiki/%EC%B2%B4%EC%8A%A4_%EA%B7%9C%EC%B9%99

 

체스 규칙 - 위키백과, 우리 모두의 백과사전

여섯개의 체스 기물의 모습. 왼쪽부터 킹, 룩, 퀸, 폰, 나이트, 비숍이다. 체스 규칙이란 보드게임 체스를 두고 진행하는데 필요한 규칙들이다. 체스의 기원에 대해서는 논란이 있지만, 현대 체스

ko.wikipedia.org

이것 이후에 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