Création combinaison, combinaison secrete et ombinaison joueur

master
Pauline PRADY 1 year ago
parent d0dd55ab65
commit fe0edefc68

@ -1,31 +1,16 @@
namespace BibliothequeClasses
{
public class Combinaison
public abstract class Combinaison
{
private int taillePhysique = 4;
private int tailleLogique = 0;
private Jeton[] lesJetons = new Jeton[0];
protected static readonly int taillePhysique = 4;
public int TailleLogique { get; private set; } = 0;
private readonly Jeton[] lesJetons = new Jeton[taillePhysique];
protected void AjouterJeton(Jeton jeton) => lesJetons[TailleLogique++] = jeton;
public Jeton GetJeton(int indice)
{
return lesJetons[indice];
}
public Jeton GetJeton(int indice) => lesJetons[indice];
public void AjouterJeton(Jeton jeton)
{
lesJetons[tailleLogique++] = jeton;
}
public void SupprimerDernierJeton()
{
--tailleLogique;
}
public bool EstComplet()
{
return tailleLogique == taillePhysique;
}
protected void SupprimerDernierJeton() => --TailleLogique;
}
}

@ -0,0 +1,40 @@
namespace BibliothequeClasses
{
public class CombinaisonIndicateur : Combinaison
{
public CombinaisonIndicateur(CombinaisonJoueur combinaisonJoueur, CombinaisonSecrete combinaisonSecrete)
{
}
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)
{
for(int i = 0; i < jetonsSecret.Length; i++)
{
if(ComparerJeton(jetonJoueur, jetonsSecret[i]))
{
return true;
}
}
return false;
}
}
}

@ -0,0 +1,12 @@
namespace BibliothequeClasses
{
public class CombinaisonJoueur : Combinaison
{
public void AjouterJeton(JetonJoueur jetonJoueur) => base.AjouterJeton(jetonJoueur);
public new void SupprimerDernierJeton() => base.SupprimerDernierJeton();
public bool EstComplete() => base.TailleLogique == Combinaison.taillePhysique;
}
}

@ -0,0 +1,47 @@
namespace BibliothequeClasses
{
public class CombinaisonSecrete : Combinaison
{
private static readonly Couleur[] couleurs = (Couleur[])Enum.GetValues(typeof(Couleur));
private static readonly Random rand = new Random();
public CombinaisonSecrete()
{
for(int i = 0; i < Combinaison.taillePhysique; i++) {
this.AjouterJetonAleatoire();
}
}
private void AjouterJetonAleatoire()
{
JetonJoueur jeton = CombinaisonSecrete.GenererJetonAleatoire();
base.AjouterJeton(jeton);
}
private static JetonJoueur GenererJetonAleatoire()
{
int indice = rand.Next(couleurs.Length);
Couleur couleur = couleurs[indice];
return new JetonJoueur(couleur);
}
public bool EstEgale(CombinaisonJoueur combinaisonJoueur)
{
if(!combinaisonJoueur.EstComplete())
{
throw new Exception("Combinaison imcomplete");
}
for(int indice = 0; indice < CombinaisonSecrete.taillePhysique; ++indice)
{
if(this.GetJeton(indice).Couleur != combinaisonJoueur.GetJeton(indice).Couleur)
{
return false;
}
}
return true;
}
}
}

@ -1,15 +0,0 @@
namespace BibliothequeClasses
{
/// <summary>
/// Class jeton qui peut recuperer la couleu du jeton et la changer
/// </summary>
public class Jeton
{
public Couleur Couleur
{
get;
set;
}
}
}

@ -0,0 +1,20 @@
namespace BibliothequeClasses
{
public enum Couleur { Noir, Blanc, Rouge };
public abstract class Jeton
{
public Couleur Couleur { get; set; }
public Jeton(Couleur couleur) { }
}
public class JetonJoueur : Jeton
{
public JetonJoueur(Couleur couleur): base(couleur) { }
}
public class JetonIndicateur : Jeton
{
public JetonIndicateur(Couleur couleur) : base(couleur) { }
}
}

@ -1,15 +0,0 @@
namespace BibliothequeClasses
{
/// <summary>
/// Enumeration des 6 couleurs que peuvent prendre les jetons
/// </summary>
public enum Couleur
{
Rouge,
Bleu,
Vert,
Jaune,
Noir,
Blanc,
}
}
Loading…
Cancel
Save