10.1- Pour rendre le menu réellement réutilisable, il faut permettre à
l'utilisateur de designer et placer lui même ses boutons.
Une façon de faire ça est de tirer partie du polymorphisme et de la
généricité :
 * D'une part définir une classe abstraite pour les boutons qui aura comme
   fonctions virtuelles pures au moins les méthodes suivantes :
   - bool contains (int mouse_x, int mouse_y);
   - Action getAction ();
   - void display (sf::RenderTarget *rt);
   - void displayActive (sf::RenderTarget *rt);  
   Cela permettra au utilisateur de dériver de cette classe pour être sûr
   que le compilateur les obligera à implémenter les méthodes nécessaires.
 * D'autre part, faire de la classe Menu un modèle de classe qui prend en
   paramètre une classe de boutons et un type d'action, de telle sorte que
   l'utilisateur est libre d'utiliser son propre enum Action { ... }; et
   donc d'étendre le menu aux fonctionnalités qu'il choisi.

10.2- Pour ajouter une IA au jeu, il faudrait que les joueurs soient
représentés par plus qu'une valeur, et qu'il soit responsable de leurs
mouvements : par exemple, c'est la classe représentant les joueurs qui
devraient gérer les entrées utilisateurs (c'est à dire que dans la boucle
d'affichage, la boucle d'évènement seraient en fait appelée comme une
méthode de la classe joueur.
Ensuite cette classe joueur pourrait être dérivée pour masquer les méthodes
de gestion d'évènements avec des méthodes de calcul d'action de l'IA.
Dans ce cas il n'y aurait plus qu'à instancier la classe IA dérivée à la
place d'un des deux joueurs.
