const lookup table
This commit is contained in:
parent
752150107e
commit
0d22c59cc3
8 changed files with 573 additions and 542 deletions
15
src/setup.rs
15
src/setup.rs
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
use crate::bitboard::*;
|
||||
use crate::board::*;
|
||||
use crate::lookup::*;
|
||||
use crate::lookup;
|
||||
use crate::position::*;
|
||||
|
||||
/// **A builder type for chess positions.**
|
||||
|
|
@ -253,7 +253,6 @@ impl Setup {
|
|||
debug_assert!((self.p_b_q & self.n_b_k & self.r_q_k).is_empty());
|
||||
|
||||
let mut reasons = IllegalPositionReasons::new();
|
||||
let d = InitialisedLookup::init();
|
||||
|
||||
let blockers = self.p_b_q | self.n_b_k | self.r_q_k;
|
||||
let pieces = self.bitboards();
|
||||
|
|
@ -274,13 +273,13 @@ impl Setup {
|
|||
|
||||
if pieces.get(!self.turn).king().any(|enemy_king| {
|
||||
let pieces = pieces.get(self.turn);
|
||||
!(d.king(enemy_king) & *pieces.get(Role::King)
|
||||
| d.bishop(enemy_king, blockers)
|
||||
!(lookup::king(enemy_king) & *pieces.get(Role::King)
|
||||
| lookup::bishop(enemy_king, blockers)
|
||||
& (*pieces.get(Role::Queen) | *pieces.get(Role::Bishop))
|
||||
| d.rook(enemy_king, blockers)
|
||||
| lookup::rook(enemy_king, blockers)
|
||||
& (*pieces.get(Role::Queen) | *pieces.get(Role::Rook))
|
||||
| d.knight(enemy_king) & *pieces.get(Role::Knight)
|
||||
| d.pawn_attack(!self.turn, enemy_king) & *pieces.get(Role::Pawn))
|
||||
| lookup::knight(enemy_king) & *pieces.get(Role::Knight)
|
||||
| lookup::pawn_attack(!self.turn, enemy_king) & *pieces.get(Role::Pawn))
|
||||
.is_empty()
|
||||
}) {
|
||||
reasons.add(IllegalPositionReason::HangingKing);
|
||||
|
|
@ -353,7 +352,7 @@ impl Setup {
|
|||
.king()
|
||||
.first()
|
||||
.is_some_and(|king_square| {
|
||||
!(d.bishop(king_square, blockers)
|
||||
!(lookup::bishop(king_square, blockers)
|
||||
& (pieces.get(!self.turn).queen() | pieces.get(!self.turn).bishop()))
|
||||
.is_empty()
|
||||
})
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue