|
|
|
@ -150,13 +150,7 @@ namespace CoreLibrary
|
|
|
|
|
public void Jouer()
|
|
|
|
|
{
|
|
|
|
|
/// Ajout des joueurs jusqu'à atteindre le nombre maximum de joueurs défini par les règles
|
|
|
|
|
while (regles.NbJoueurs != regles.NbJoueursMaximum)
|
|
|
|
|
while (regles.NbJoueurs != regles.NbJoueursMaximum)
|
|
|
|
|
{
|
|
|
|
|
string nom = QuandDemanderJoueur(regles.NbJoueurs + 1) ?? $"Joueur {regles.NbJoueurs+1}";
|
|
|
|
|
Joueur joueur = regles.AjouterJoueur(nom);
|
|
|
|
|
QuandAjouterJoueur(joueur);
|
|
|
|
|
}
|
|
|
|
|
AjouterJoueurs();
|
|
|
|
|
|
|
|
|
|
regles.CommencerLaPartie();
|
|
|
|
|
QuandDebutPartie();
|
|
|
|
@ -171,32 +165,10 @@ namespace CoreLibrary
|
|
|
|
|
|
|
|
|
|
Code code = regles.GenererCode();
|
|
|
|
|
|
|
|
|
|
CreerCode(code);
|
|
|
|
|
|
|
|
|
|
// Phase de saisie du code par le joueur jusqu'à que le code soit complet.
|
|
|
|
|
while (!code.EstComplet())
|
|
|
|
|
{
|
|
|
|
|
Jeton? jeton = QuandDemanderJeton();
|
|
|
|
|
|
|
|
|
|
if(jeton == null)
|
|
|
|
|
{
|
|
|
|
|
if(DemanderJeton != null)
|
|
|
|
|
{
|
|
|
|
|
// Si quelqu'un écoute l'événement mais ne renvoie rien, alors on supprime le dernier jeton
|
|
|
|
|
code.SupprimerDernierJeton();
|
|
|
|
|
QuandSupprimerDernierJeton();
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
// Si personne n'écoute l'évenment, on met un jeton aléatoire
|
|
|
|
|
jeton = new Jeton();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(jeton != null)
|
|
|
|
|
{
|
|
|
|
|
code.AjouterJeton(jeton.Value);
|
|
|
|
|
QuandNouveauJeton(jeton.Value);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
plateauCourant.AjouterCode(code);
|
|
|
|
|
QuandNouveauCode(code);
|
|
|
|
|
|
|
|
|
@ -210,5 +182,39 @@ namespace CoreLibrary
|
|
|
|
|
|
|
|
|
|
QuandPartieTerminee(regles.Gagnants(), regles.Perdants());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void AjouterJoueurs()
|
|
|
|
|
{
|
|
|
|
|
while (regles.NbJoueurs != regles.NbJoueursMaximum)
|
|
|
|
|
{
|
|
|
|
|
string nom = QuandDemanderJoueur(regles.NbJoueurs + 1) ?? $"Joueur {regles.NbJoueurs + 1}";
|
|
|
|
|
Joueur joueur = regles.AjouterJoueur(nom);
|
|
|
|
|
QuandAjouterJoueur(joueur);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void CreerCode(Code code)
|
|
|
|
|
{
|
|
|
|
|
while (!code.EstComplet())
|
|
|
|
|
{
|
|
|
|
|
Jeton? jeton = QuandDemanderJeton();
|
|
|
|
|
|
|
|
|
|
if (DemanderJeton == null)
|
|
|
|
|
{
|
|
|
|
|
jeton = new Jeton();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(!jeton.HasValue)
|
|
|
|
|
{
|
|
|
|
|
code.SupprimerDernierJeton();
|
|
|
|
|
QuandSupprimerDernierJeton();
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
code.AjouterJeton(jeton.Value);
|
|
|
|
|
QuandNouveauJeton(jeton.Value);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|