namespace CoreLibrary
{
///
/// Interface définissant les règles du jeu.
///
public interface IRegles
{
///
/// Obtient le nom des règles du jeu.
///
string Nom { get; }
///
/// Obtient le nombre de maximum de tours.
///
int TourMaximum { get; }
///
/// Obtient la taille maximal du code.
///
int TailleCodeMaximum { get; }
///
/// Obtient le nombre de joueurs actuels.
///
int NbJoueurs { get; }
///
/// Obtient le nombre de maximum de joueurs.
///
int NbJoueursMaximum { get; }
///
/// Ajoute un joueur avec le nom spécifié.
///
/// Nom du joueur à ajouter
/// Le joueur ajouté.
Joueur AjouterJoueur(string nom);
///
/// Récupère le joueur courant.
///
/// Le joueur courant.
Joueur JoueurCourant();
///
/// Passe la main au joueur suivant.
///
void PasserLaMain();
///
/// Génère un code selon les règles du jeu.
///
/// Le code généré.
Code GenererCode();
///
/// Initialise le premier joueur à jouer.
///
void CommencerLaPartie();
///
/// Vérifie si la partie est terminée.
///
/// True si la partie est terminée, sinon False.
bool EstTerminee();
///
/// Récupère les joueurs gagnants.
///
/// Enumération des joueurs gagnants.
IEnumerable Gagnants();
///
/// Récupère les joueurs perdants.
///
/// Enumération des joueurs perdants.
IEnumerable Perdants();
}
}