Search found 8 matches
- Fri Feb 24, 2012 9:01 am
- Forum: Programming and Technical Discussions
- Topic: Using a Transposition Table with Zobrist Keys
- Replies: 29
- Views: 16255
Re: Using a Transposition Table with Zobrist Keys
If you are at a root node, and you retrieve an UPPER bound from the TT, and if you find that
"UPPER BOUND FROM TABLE <= alpha", you can safely return alpha. But, like I said, if you are at the root node,
can you safely use the move stored in the TT, since that corresponded to the upper bound in ...
- Fri Feb 24, 2012 4:26 am
- Forum: Programming and Technical Discussions
- Topic: Using a Transposition Table with Zobrist Keys
- Replies: 29
- Views: 16255
Re: Using a Transposition Table with Zobrist Keys
That should be:Miyagi403 wrote: if (entry.depthleft <= depthleft) { ... }
if (entry.depthleft >= depthleft) { ... }
- Tue Mar 01, 2011 11:40 am
- Forum: Programming and Technical Discussions
- Topic: Fire's null_new_depth
- Replies: 25
- Views: 12171
Re: Fire's null_new_depth
...could you explain what your addition, below, to evaluation.h and .c does?
This is standard bitboard pin-detection adapted to positional scoring for pins or discovered attack (wR -> bQ). With the proviso that I haven't seen the full source (i.e. based only on the code snippets):
On entry ...
- Fri Feb 11, 2011 10:08 am
- Forum: Programming and Technical Discussions
- Topic: LZCNT and bitboards
- Replies: 6
- Views: 4367
Re: LZCNT and bitboards
[...] im currently developing using gcc and the assembler there is just a bitch [...]
These built-ins work nicely with gcc and clang. No assembler; no look-up tables; just plain function calls.
static inline int GetLowestBit( BitBoard b ) { return __builtin_ctzll( b ); }
static inline int ...
These built-ins work nicely with gcc and clang. No assembler; no look-up tables; just plain function calls.
static inline int GetLowestBit( BitBoard b ) { return __builtin_ctzll( b ); }
static inline int ...
- Sun Oct 31, 2010 12:18 pm
- Forum: Programming and Technical Discussions
- Topic: General query about bitboard
- Replies: 3
- Views: 2875
Re: General query about bitboard
I have got the concept of knight moves in bitboard. I need an array knight[64] in which all possible knight moves will be stored.
But how can I get the position of my knights in bitboard without looping through the bits of knight ??
i.e. How can I know , where my knights are placed in chessboard ...
But how can I get the position of my knights in bitboard without looping through the bits of knight ??
i.e. How can I know , where my knights are placed in chessboard ...
- Tue Oct 26, 2010 8:47 am
- Forum: Programming and Technical Discussions
- Topic: Good examples for magic or rotated boards
- Replies: 7
- Views: 6284
Re: Good examples for magic or rotated boards
The easiest bitboard slider-attacks code to write is the standard or classical method:
http://chessprogramming.wikispaces.com/Classical+Approach
Here's an implementation of RookAttacks().
extern BitBoard gRayN[64], gRayE[64], gRayS[64], gRayW[64];
BitBoard RookAttacks( int fromSquare, BitBoard ...
http://chessprogramming.wikispaces.com/Classical+Approach
Here's an implementation of RookAttacks().
extern BitBoard gRayN[64], gRayE[64], gRayS[64], gRayW[64];
BitBoard RookAttacks( int fromSquare, BitBoard ...
- Wed Oct 06, 2010 4:57 am
- Forum: Programming and Technical Discussions
- Topic: Copy Board vs Unmake Move
- Replies: 8
- Views: 9066
Re: Copy Board vs Unmake Move
Until now, my Board struct has contained an 'attack board'
BitBoard attacksFrom[64];
as a distant legacy from Slate & Atkin's Chess 4.5.
Caching attacks in this way not only inflates Board size, it requires elaborate code for incremental updating in MakeMove().
Stimulated by this thread, I ...
BitBoard attacksFrom[64];
as a distant legacy from Slate & Atkin's Chess 4.5.
Caching attacks in this way not only inflates Board size, it requires elaborate code for incremental updating in MakeMove().
Stimulated by this thread, I ...
- Sat Oct 02, 2010 7:23 am
- Forum: Programming and Technical Discussions
- Topic: Copy Board vs Unmake Move
- Replies: 8
- Views: 9066
Re: Copy Board vs Unmake Move
My engine uses CopyBoard() because of laziness. In a new engine it's much easier to copy (essentially one line of code) than to write a complex and bug-prone Unmake().
Careful profiling shows that time is spent:
15.7% MakeMove
5.5% CopyBoard
77.9% MoveGen, Evaluate, Search,...
I doubt that I am ...
Careful profiling shows that time is spent:
15.7% MakeMove
5.5% CopyBoard
77.9% MoveGen, Evaluate, Search,...
I doubt that I am ...