using CoreLibrary.Core;
using CoreLibrary.Joueurs;
namespace CoreLibrary.Regles
{
///
/// Interface définissant les règles du jeu.
///
public interface IRegles
{
///
/// Le nom des règles du jeu.
///
string Nom { get; }
///
/// Le nombre de maximum de tours.
///
int TourMaximum { get; }
///
/// La taille maximal du code.
///
int TailleCodeMaximum { get; }
///
/// Le nombre de joueurs actuels.
///
int NbJoueurs { get; }
///
/// Le nombre maximum de joueurs.
///
int NbJoueursMaximum { get; }
///
/// Ajoute un joueur à partir de son nom.
///
/// Nom du joueur à ajouter.
/// Le joueur ajouté.
Joueur AjouterJoueur(string nom);
///
/// Récupère le joueur courant.
///
/// Le joueur courant.
(Joueur, Plateau) 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();
///
/// Démarre la partie.
///
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.
///
/// Les joueurs gagnants.
IEnumerable Gagnants();
///
/// Récupère les joueurs perdants.
///
/// Les joueurs perdants.
IEnumerable Perdants();
}
}