그래서 저는 문제를두고 머리를 감싸는 데 어려움을 겪고 있습니다. 저는 현재 Java에서 체스 엔진을 기반으로 한 판지를 씁니다. 지금까지 모든 pawn/king/knight 이동은 예상대로 버그없이 작동합니다.체스 엔진에서 슬라이딩 조각 생성
이해에 도움이 필요한 것은 슬라이딩 이동 생성입니다. 각 사각형/조각에 대해 빈 보드 이동 배열을 생성했습니다. 나의 현재 이해에서 나는 또한 각 사각형에 가능한 각각의 점유를 포함하는 배열을 개발할 필요가있다. 그리고 어떻게 든 다양한 방법을 기반으로 그 배열을 찾는다.
올바른 생각인가요? 0에서 2^63까지의 모든 숫자를 선택하고 해당 사각형의 이동 비트 보드로 xor'ing 한 다음 배열을 초기화하고 같은 방식으로 액세스 할 수있는 일부 방법 (마술/회전 된 비트 보드)을 저장하는 것입니다. 실행 시간?
가짜 코드 및 설명을 매우 환영합니다. (나는 그런데 >>>를 사용하고있다).
감사합니다.하지만 마법의 비트 보드를 사용해도 마법 번호를 사용하여 조회 테이블을 정확하게 참조 할 수 있습니다. 내 질문은 어떻게 그렇게 조회 테이블을 생성하는 것입니다. 이해가 안되면 않는 한. – thePanthurr
@thePanthurr 귀하의 질문은 당신이 같은 조회 테이블이 모든 슬라이딩 피스 방법에 사용될 것이라고 생각하는 것처럼 보입니다. 하지만 그들은 모두 다른 조회 테이블이 필요합니다. 그 중 일부 (예 : 마법의 비트 보드)는 여러 개의 조회 테이블을 사용합니다. 어떤 방법을 사용할지 결정하고 그것에 대해 읽은 다음 구체적으로 이해하지 못하는 것에 대해 질문해야합니다. – interjay
@thePanthurr 직접 테이블을 생성 할 필요가 없습니다. – SmallChess