int cEval::ScoreKingFile(POS * p, int sd, U64 bbFile) {

  int shelter = ScoreFileShelter(bbFile & p->Pawns(sd), sd);
  int storm = ScoreFileStorm(bbFile & p->Pawns(Opp(sd)), sd);
  if (bbFile & bbCentralFile) return (shelter / 2) + storm;
  else return shelter + storm;
}
示例#2
0
void cEval::ScoreKingFile(POS * p, int sd, U64 bbFile, int *shield, int *storm) {

  int shelter = ScoreFileShelter(bbFile & p->Pawns(sd), sd);
  if (bbFile & bbCentralFile) shelter /= 2;
  *shield += shelter;
  *storm += ScoreFileStorm(bbFile & p->Pawns(Opp(sd)), sd);
}