@@ -91,12 +91,12 @@ func (b *Board) generatePinnedMoves(moveList *[]Move, allowDest uint64) uint64 {
91
91
92
92
// Calculate king moves as if it was a rook.
93
93
// "king targets" includes our own friendly pieces, for the purpose of identifying pins.
94
- kingOrthoTargets := calculateRookMoveBitboard (ourKingIdx , allPieces )
94
+ kingOrthoTargets := CalculateRookMoveBitboard (ourKingIdx , allPieces )
95
95
oppRooks := oppPieces .Rooks | oppPieces .Queens
96
96
for oppRooks != 0 { // For each opponent ortho slider
97
97
currRookIdx := uint8 (bits .TrailingZeros64 (oppRooks ))
98
98
oppRooks &= oppRooks - 1
99
- rookTargets := calculateRookMoveBitboard (currRookIdx , allPieces ) & (^ (oppPieces .All ))
99
+ rookTargets := CalculateRookMoveBitboard (currRookIdx , allPieces ) & (^ (oppPieces .All ))
100
100
// A piece is pinned iff it falls along both attack rays.
101
101
pinnedPiece := rookTargets & kingOrthoTargets & ourPieces .All
102
102
if pinnedPiece == 0 { // there is no pin
@@ -126,7 +126,7 @@ func (b *Board) generatePinnedMoves(moveList *[]Move, allowDest uint64) uint64 {
126
126
continue
127
127
}
128
128
// all ortho moves, as if it was not pinned
129
- pinnedPieceAllMoves := calculateRookMoveBitboard (pinnedPieceIdx , allPieces ) & (^ (ourPieces .All ))
129
+ pinnedPieceAllMoves := CalculateRookMoveBitboard (pinnedPieceIdx , allPieces ) & (^ (ourPieces .All ))
130
130
// actually available moves
131
131
pinnedTargets := pinnedPieceAllMoves & (rookTargets | kingOrthoTargets | (uint64 (1 ) << currRookIdx ))
132
132
pinnedTargets &= allowDest
@@ -135,12 +135,12 @@ func (b *Board) generatePinnedMoves(moveList *[]Move, allowDest uint64) uint64 {
135
135
136
136
// Calculate king moves as if it was a bishop.
137
137
// "king targets" includes our own friendly pieces, for the purpose of identifying pins.
138
- kingDiagTargets := calculateBishopMoveBitboard (ourKingIdx , allPieces )
138
+ kingDiagTargets := CalculateBishopMoveBitboard (ourKingIdx , allPieces )
139
139
oppBishops := oppPieces .Bishops | oppPieces .Queens
140
140
for oppBishops != 0 {
141
141
currBishopIdx := uint8 (bits .TrailingZeros64 (oppBishops ))
142
142
oppBishops &= oppBishops - 1
143
- bishopTargets := calculateBishopMoveBitboard (currBishopIdx , allPieces ) & (^ (oppPieces .All ))
143
+ bishopTargets := CalculateBishopMoveBitboard (currBishopIdx , allPieces ) & (^ (oppPieces .All ))
144
144
pinnedPiece := bishopTargets & kingDiagTargets & ourPieces .All
145
145
if pinnedPiece == 0 { // there is no pin
146
146
continue
@@ -180,7 +180,7 @@ func (b *Board) generatePinnedMoves(moveList *[]Move, allowDest uint64) uint64 {
180
180
continue
181
181
}
182
182
// all diag moves, as if it was not pinned
183
- pinnedPieceAllMoves := calculateBishopMoveBitboard (pinnedPieceIdx , allPieces ) & (^ (ourPieces .All ))
183
+ pinnedPieceAllMoves := CalculateBishopMoveBitboard (pinnedPieceIdx , allPieces ) & (^ (ourPieces .All ))
184
184
// actually available moves
185
185
pinnedTargets := pinnedPieceAllMoves & (bishopTargets | kingDiagTargets | (uint64 (1 ) << currBishopIdx ))
186
186
pinnedTargets &= allowDest
@@ -446,7 +446,7 @@ func (b *Board) rookMoves(moveList *[]Move, nonpinned uint64, allowDest uint64)
446
446
for ourRooks != 0 {
447
447
currRook := uint8 (bits .TrailingZeros64 (ourRooks ))
448
448
ourRooks &= ourRooks - 1
449
- targets := calculateRookMoveBitboard (currRook , allPieces ) & (^ friendlyPieces ) & allowDest
449
+ targets := CalculateRookMoveBitboard (currRook , allPieces ) & (^ friendlyPieces ) & allowDest
450
450
genMovesFromTargets (moveList , Square (currRook ), targets )
451
451
}
452
452
}
@@ -466,7 +466,7 @@ func (b *Board) bishopMoves(moveList *[]Move, nonpinned uint64, allowDest uint64
466
466
for ourBishops != 0 {
467
467
currBishop := uint8 (bits .TrailingZeros64 (ourBishops ))
468
468
ourBishops &= ourBishops - 1
469
- targets := calculateBishopMoveBitboard (currBishop , allPieces ) & (^ friendlyPieces ) & allowDest
469
+ targets := CalculateBishopMoveBitboard (currBishop , allPieces ) & (^ friendlyPieces ) & allowDest
470
470
genMovesFromTargets (moveList , Square (currBishop ), targets )
471
471
}
472
472
}
@@ -487,10 +487,10 @@ func (b *Board) queenMoves(moveList *[]Move, nonpinned uint64, allowDest uint64)
487
487
currQueen := uint8 (bits .TrailingZeros64 (ourQueens ))
488
488
ourQueens &= ourQueens - 1
489
489
// bishop motion
490
- diag_targets := calculateBishopMoveBitboard (currQueen , allPieces ) & (^ friendlyPieces ) & allowDest
490
+ diag_targets := CalculateBishopMoveBitboard (currQueen , allPieces ) & (^ friendlyPieces ) & allowDest
491
491
genMovesFromTargets (moveList , Square (currQueen ), diag_targets )
492
492
// rook motion
493
- ortho_targets := calculateRookMoveBitboard (currQueen , allPieces ) & (^ friendlyPieces ) & allowDest
493
+ ortho_targets := CalculateRookMoveBitboard (currQueen , allPieces ) & (^ friendlyPieces ) & allowDest
494
494
genMovesFromTargets (moveList , Square (currQueen ), ortho_targets )
495
495
}
496
496
}
@@ -570,7 +570,7 @@ func (b *Board) countAttacks(byBlack bool, origin uint8, abortEarly int) (int, u
570
570
for diag_attackers != 0 {
571
571
curr_attacker := uint8 (bits .TrailingZeros64 (diag_attackers ))
572
572
diag_attackers &= diag_attackers - 1
573
- diag_attacks := calculateBishopMoveBitboard (curr_attacker , allPieces )
573
+ diag_attacks := CalculateBishopMoveBitboard (curr_attacker , allPieces )
574
574
attackRay := diag_attacks & origin_diag_rays
575
575
blockerDestinations |= attackRay
576
576
}
@@ -589,7 +589,7 @@ func (b *Board) countAttacks(byBlack bool, origin uint8, abortEarly int) (int, u
589
589
for ortho_attackers != 0 {
590
590
curr_attacker := uint8 (bits .TrailingZeros64 (ortho_attackers ))
591
591
ortho_attackers &= ortho_attackers - 1
592
- ortho_attacks := calculateRookMoveBitboard (curr_attacker , allPieces )
592
+ ortho_attacks := CalculateRookMoveBitboard (curr_attacker , allPieces )
593
593
attackRay := ortho_attacks & origin_ortho_rays
594
594
blockerDestinations |= attackRay
595
595
}
@@ -625,8 +625,9 @@ func (b *Board) countAttacks(byBlack bool, origin uint8, abortEarly int) (int, u
625
625
626
626
// Calculates the attack bitboard for a rook. This might include targeted squares
627
627
// that are actually friendly pieces, so the proper usage is:
628
- // rookTargets := calculateRookMoveBitboard(myRookLoc, allPieces) & (^myPieces)
629
- func calculateRookMoveBitboard (currRook uint8 , allPieces uint64 ) uint64 {
628
+ // rookTargets := CalculateRookMoveBitboard(myRookLoc, allPieces) & (^myPieces)
629
+ // Externally useful for evaluation functions.
630
+ func CalculateRookMoveBitboard (currRook uint8 , allPieces uint64 ) uint64 {
630
631
blockers := magicRookBlockerMasks [currRook ] & allPieces
631
632
dbindex := (blockers * magicNumberRook [currRook ]) >> magicRookShifts [currRook ]
632
633
targets := magicMovesRook [currRook ][dbindex ]
@@ -635,8 +636,9 @@ func calculateRookMoveBitboard(currRook uint8, allPieces uint64) uint64 {
635
636
636
637
// Calculates the attack bitboard for a bishop. This might include targeted squares
637
638
// that are actually friendly pieces, so the proper usage is:
638
- // bishopTargets := calculateBishopMoveBitboard(myBishopLoc, allPieces) & (^myPieces)
639
- func calculateBishopMoveBitboard (currBishop uint8 , allPieces uint64 ) uint64 {
639
+ // bishopTargets := CalculateBishopMoveBitboard(myBishopLoc, allPieces) & (^myPieces)
640
+ // Externally useful for evaluation functions.
641
+ func CalculateBishopMoveBitboard (currBishop uint8 , allPieces uint64 ) uint64 {
640
642
blockers := magicBishopBlockerMasks [currBishop ] & allPieces
641
643
dbindex := (blockers * magicNumberBishop [currBishop ]) >> magicBishopShifts [currBishop ]
642
644
targets := magicMovesBishop [currBishop ][dbindex ]
0 commit comments