Tinker

From Chessprogramming wiki
Jump to: navigation, search

Home * Engines * Tinker

Tinker or Irish Cob [1]

Tinker,
a private Chess Engine Communication Protocol compatible chess engine by Brian Richardson. Tinker participated at almost all official online tournaments, CCT Tournaments, ACCA Americas' Computer Chess Championship, and ACCA World Computer Rapid Chess Championship. Tinker's internal board representation is based on bitboards.

Move Generation

Tinker uses an idiosyncratic move generation approach for sliding pieces based on rook and bishop attacks on the otherwise empty board. While serializing all those potential targets, it tests for legality inside the loop body, that is whether the inbetween squares of origin and target are empty. This is not in the "real" bitboard spirit to determine attack sets in advance in the bitboard centric world rather than to test individual elements of a superset belonging to a set, but at least it allows traversing disjoint target sets i.e. for captures in quiescence search. This is the slightly edited code posted by Brian in 2000 [2]:

froms = tree->wbishopsqueens;
while (froms) {
   f = lastOne(froms);
   tos= bishopto[f] & targets;
   while (tos) {
      t = lastOne(tos);
      if ( (allpieces & nopieces[f][t]) == 0) {
         gen_push(f, t);
      }
      clear(t, tos);
   }
   clear(f, froms);
}

See also

Forum Posts

External Links

References

Up one Level