L'utilisation d'un tableau d'entiers à une seule dimension est une solution classique. Pour éviter de tester les bords, on crée une ligne de cases imaginaires tout autour du plateau. Cela fait donc 4 valeurs possibles pour chaque case : vide, noir, blanche, ou hors plateau. C'est une solution souvent retenue pour les jeux d'échecs et autres jeux de plateau.
J'ai écrit un programme d'Abalone en langage C. Les sources sont disponibles sur mon site : http://olivier.thill.perso.neuf.fr [...] balone.htm
Ce n'est pas un cadeau, car mon code n'est pas très commenté, et n'est peut-être pas facile à comprendre. De plus ce n'est peut-être pas un style de programmation très académique. Mais ça marche bien, il n'y a pas de bug. C'est donc juste à titre d'exemple. D'ailleurs, il y a beaucoup d'étudiants qui m'écrivent pour me demander des renseignements, mais je ne me souviens plus très bien de ce code, écrit quand j'étais jeune.