the fully functional draw implementation contains lots of additional information (caught pieces, first draw, drawing side, drawing piece type, ...)
training a network to predict the best draw requires a reduced set of actions to perform well
although, the selected draw needs to be unique for the given chess board as context ...
Suggested Solution:
given a chess board as context, the draw information can be reduced to a minimum of old_pos (6 bits -> 64 fields), new_pos (6 bits -> 64 fields) and prom_type (3 bits, 5/8 valid states: invalid, queen, rook, bishop, knight) that can be represented by a single short integer
therefore add a new typedef for CompactChessDraw (or something like that) to chesstypes.h
moreover implement functions for conversions between regular draws and compact draws, given the context of a chess board
Issue:
Suggested Solution: