Vielleicht die mitte von jedem Feld mit getRGB() überprüfen? Oder einen anderen Punkt auf dem Feld, der sich in jedem Fall verändert, wenn eine Figur darauf steht, z.B. ein Schatten. Besteht das Schachbrett denn aus planen Flächen oder sieht jedes einzelne Feld unterschiedlich aus? Ich weiß allerdings nicht, ob sich anhand leerer Felder die Positionen aller Spielfiguren bestimmen lässt.
Eine andere Möglichkeit wäre es, die beiden Schachbretter (ebenfalls mit getRGB()) zu vergleichen, zuerst an den Positionen der Spielfiguren und danach auf den Feldern, wo sie hinziehen können. Evtl reicht auch ein kleiner Bereich in der Mitte eines Feldes.
Die erste Methode könnte funktionieren und dürfte auch recht performant sein. Bei der zweiten bin ich mir nicht sicher, dürfte auch viel Performance kosten. Aber in beiden Fällen muss eine es eine Tolleranz bei den rgb-Werten geben.
mfg, Christian