benstoker wrote:Can someome please explain what the "POSITION->DYN . . . " construct is throughout the robbo* code. What does "DYN" stand for?
From Robbo*:
Code: Select all
void Mobility (typePOS* POSITION)
{
uint64 U, A, T, AttB, AttR;
int b;
POSITION->DYN->wXray = 0;
POSITION->DYN->bXray = 0;
A = AttK[POSITION->wKsq];
POSITION->DYN->wAtt = A;
if (A & bBitboardK)
POSITION->DYN->bKcheck = SqSet[POSITION->wKsq];
else
POSITION->DYN->bKcheck = 0;
A = AttK[POSITION->bKsq];
It is a Gaviota Clone!
po->bi.dyn[WH].pawn_att = p_att0;
po->bi.dyn[WH].all_att = allth;
Since it is a gaviota clone, I can say "dynamic" are properties of the board that depend of other "static" things. For instance, attacks. Those dynamic characteristics may or may not have been updated after a move. The static characteristics, of course, are always up to date
For instance, there is a Bishop in e4, that is a static property.
The attacks of the bishop depends of the position of other pieces, hence, I call it dynamic. The dynamic properties are updated only when needed.
Miguel