Supongo que lo primero es olvidarte de las imágenes y generar el objeto que representa a cada ficha.
Podría ser:
Código Delphi
[-]TTablero:
array [1..8,1..8] of TFicha;
end;
TFicha
Fila : byte;
Columna :byte
Tablero : TTablero;
end
TPeon : TFicha
funcion MovimientoValido (aFila, aColumna : byte) : boolean;
end
Lo mismo con el resto de fichas...
Una vez que toda la lógica funcione, puedes empezar a hacer que el tablero pida a las fichas que se pinten. Estas tendrán un método que pintará la forma que le corresponda en la posición en la que esté.