C'est très bien d'avoir la démarche de demander un avis critique. Le projet documenté en doxygen, ça fait plaisir :).
Après les points positifs, les points négatifs:
Je n'ai pas regardé en détails, mais il y a beaucoup d'inélégance.
En voici une liste non exhaustive:
* using namespace std; => Beurk, à bannir. La raison t'a déjà été évoquée dans d'autre post.
* Plus d'une classe par fichier => Pas top. Une classe = un fichier
*
Code C/C++ :
if (compteur>= 1)
{
return false;
}
else
{
return true;
}
Aisément remplacable par:
Code C/C++ :
* D'une manière générale:
Code C/C++ :
if (...)
{
return false;
}
else
{
// Code
}
Le return étant débranchant, peut être remplacé par:
Code C/C++ :
if (...)
{
return false;
}
// Code
*
Dangereux:
Code C/C++ :
Tu ne supprimes pas tout, mais juste le dernier !!!
En effet, la virgule en C/C++ veut dire: tout évaluer mais ne retourner que le dernier. Ex: int a = 1,2,3,4; // A vaut 4
A remplacer par:
Code C/C++ :
delete q;
delete f
delete c;
delete t;
* m_white == true => m_white
* m_white == false => !m_white
* Utilise le mot clé const, lorsque quelque chose n'a pas beson d'être modifié.
* #include <stdio.h> => Tu est en C++, donc à bannir.
* D'un point de vue modélisation, j'aurais différencié Case et Piece.
* Quand tu diffuses un projet dans une tarball, nettoie le projet avant. C'est-à-dire efface les fichier temporaires (*~), les fichiers objet (*.o) et les binaires (exécutables main). Pense à faire un "make distclean" (make distclean = make clean + rm executable), ou mieux encore: crée toi une règle "make dist" ou "make tar" qui crée nettoie le projet (donc dépend de make distclean) et crée ta tarball.
Je n'ai pas tout tout regardé, j'ai juste noté toutes les inélégances que j'ai trouvé après un rapide coup d'oeil.