|
|
|
@ -0,0 +1,72 @@
|
|
|
|
|
namespace BibliothequeClasses
|
|
|
|
|
{
|
|
|
|
|
public class CombinaisonIndicateur : Combinaison
|
|
|
|
|
{
|
|
|
|
|
public CombinaisonIndicateur(CombinaisonJoueur combinaisonJoueur, CombinaisonSecrete combinaisonSecrete)
|
|
|
|
|
{
|
|
|
|
|
if(!combinaisonJoueur.EstComplete())
|
|
|
|
|
{
|
|
|
|
|
throw new ArgumentException("Combinaison non complète");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JetonJoueur?[] lesJetonsJoueur = new JetonJoueur?[combinaisonJoueur.TailleLogique];
|
|
|
|
|
for(int i = 0; i < combinaisonJoueur.TailleLogique; ++i)
|
|
|
|
|
{
|
|
|
|
|
lesJetonsJoueur[i] = (JetonJoueur) combinaisonJoueur.GetJeton(i);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JetonJoueur?[] lesJetonsSecret = new JetonJoueur?[combinaisonSecrete.TailleLogique];
|
|
|
|
|
for (int i = 0; i < combinaisonSecrete.TailleLogique; ++i)
|
|
|
|
|
{
|
|
|
|
|
lesJetonsSecret[i] = (JetonJoueur)combinaisonSecrete.GetJeton(i);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
for (int i = 0; i < Combinaison.taillePhysique; ++i)
|
|
|
|
|
{
|
|
|
|
|
JetonJoueur? jetonJoueur = lesJetonsJoueur[i];
|
|
|
|
|
JetonJoueur? jetonSecret = lesJetonsSecret[i];
|
|
|
|
|
|
|
|
|
|
if (jetonJoueur is not null && jetonSecret is not null && ComparerJeton(jetonJoueur, jetonSecret))
|
|
|
|
|
{
|
|
|
|
|
AjouterJetonBienPlace();
|
|
|
|
|
lesJetonsJoueur[i] = null;
|
|
|
|
|
lesJetonsSecret[i] = null;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
for (int i = 0; i < Combinaison.taillePhysique; ++i)
|
|
|
|
|
{
|
|
|
|
|
JetonJoueur? jetonJoueur = lesJetonsJoueur[i];
|
|
|
|
|
|
|
|
|
|
if (jetonJoueur is not null && ContientJeton(jetonJoueur, lesJetonsSecret))
|
|
|
|
|
{
|
|
|
|
|
AjouterJetonBonneCouleur();
|
|
|
|
|
lesJetonsJoueur[i] = null;
|
|
|
|
|
lesJetonsSecret[i] = null;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void AjouterJetonBienPlace()
|
|
|
|
|
{
|
|
|
|
|
JetonIndicateur jeton = new JetonIndicateur(Couleur.Noir);
|
|
|
|
|
base.AjouterJeton(jeton);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void AjouterJetonBonneCouleur()
|
|
|
|
|
{
|
|
|
|
|
JetonIndicateur jeton = new JetonIndicateur(Couleur.Blanc);
|
|
|
|
|
base.AjouterJeton(jeton);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private bool ComparerJeton(JetonJoueur jetonJoueur, JetonJoueur jetonSecret)
|
|
|
|
|
{
|
|
|
|
|
return jetonJoueur.Couleur == jetonSecret.Couleur;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private bool ContientJeton(JetonJoueur jetonJoueur, JetonJoueur?[] jetonsSecret)
|
|
|
|
|
{
|
|
|
|
|
return Array.IndexOf(jetonsSecret, jetonJoueur) != -1;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|