using System.Runtime.Serialization;
namespace CoreLibrary.Regles
{
///
/// Classe définissant les règles difficiles du jeu.
///
[DataContract]
public class ReglesDifficiles : IRegles
{
///
/// Obtient l'indice des règles difficiles.
///
public int Indice => 2;
///
/// Obtient le nom des règles difficiles.
///
public string Nom => "Règles difficiles";
///
/// Obtient la description des règles difficiles.
///
public string Description => "Le but du jeu est de découvrir la combinaison. On génère aléatoirement deux combinaisons de 6 couleurs (six couleurs au total : jaune, bleu, rouge, vert, blanc et noir), une combinaison pour chaque joueur. Deux joueurs se battent pour trouver la combinaison en premier, il y a douze tours. Le premier joueur à trouver la combinaison à gagner, chaque joueur a le même nombre de coups à réaliser. Donc si le joueur un à trouvé la solution au bout de huit coups, le joueur deux doit finir son huitième coup. Si le joueur deux trouve la combinaison, les deux joueurs sont à égalité. Sinon, le joueur un gagne. Pour trouver la combinaison, les joueurs disposent de quatre indicateurs. Ces indicateurs sont quatre ronds qui représentent les 6 couleurs sélectionnées par le joueur. Un rond noir signifie qu’une couleur est à la bonne place, un rond blanc correspond à une mauvaise place et s'il n’y a pas d’indicateur aucune des couleurs n’est présentent dans la combinaison.";
///
/// Obtient le nombre de joueurs autorisé pour les règles difficiles.
///
public int NbJoueurs => 2;
///
/// Obtient le nombre de tours maximum pour les règles difficiles.
///
public int NbTour => 12;
///
/// Obtient la taille maximale du code pour les règles difficiles.
///
public int TailleCode => 6;
///
/// Détermine si les règles difficiles sont égales à un objet spécifié.
///
/// L'objet à comparer avec les règles difficiles.
/// True si les règles difficiles sont égales à l'objet spécifié, sinon false.
public override bool Equals(object? obj) => obj is ReglesDifficiles;
///
/// Obtient le code de hachage pour les règles difficiles.
///
/// Le code de hachage des règles difficiles.
public override int GetHashCode() => Nom.GetHashCode();
}
}