diff --git a/Sources/CoreLibrary/Code.cs b/Sources/CoreLibrary/Code.cs
index 053303a..0c6dc64 100644
--- a/Sources/CoreLibrary/Code.cs
+++ b/Sources/CoreLibrary/Code.cs
@@ -36,7 +36,7 @@ namespace CoreLibrary
/// Levée lorsque la collection de jetons spécifiée est vide.
public Code(IEnumerable jetons)
{
- if (jetons.Any())
+ if (!jetons.Any())
{
throw new TailleCodeException(jetons.Count());
}
@@ -85,7 +85,7 @@ namespace CoreLibrary
/// Levée lorsque l'indice est supérieur à la taille maximale du code, inférieur à 0 ou qu'il n'y a pas de jeton à l'indice spécifié
public Jeton RecupererJeton(int indice)
{
- if(indice < 0 || indice > TailleMaximale())
+ if(indice < 0 || indice >= TailleMaximale())
throw new IndiceCodeException(indice, NbJetons-1);
Jeton? jeton = lesJetons[indice];
@@ -136,18 +136,13 @@ namespace CoreLibrary
Indicateur[] indicateurs = [];
- /// Vérifie si les deux codes sont complets
- if (!EstComplet() || !autreCode.EstComplet())
- return indicateurs;
+ if (!autreCode.EstComplet())
+ return indicateurs;
+
+ Jeton?[] mesJetons = Jetons().ToArray();
+ Jeton?[] sesJetons = autreCode.Jetons().ToArray();
- List mesJetons = new List(Jetons());
- List sesJetons = new List(autreCode.Jetons());
-
-
- /// Compare les jetons pour détecter les ceux à la bonnes places
- /// S'ils sont à la bonne place alors ils sont enlever du tableau et un indicateur BONNEPLACE est ajouter au tableau des indicateurs.
-
- for (int i = 0; i < mesJetons.Count; ++i)
+ for (int i = 0; i < mesJetons.Length; ++i)
{
Jeton? monJeton = mesJetons[i];
Jeton? sonJeton = sesJetons[i];
@@ -160,19 +155,26 @@ namespace CoreLibrary
}
}
- /// Compare les jetons pour détecter ceux qui ont la bonne couleur.
- /// S'ils ont la bonne couleur alors ils sont enlever du tableau et un indicateur BONNECOULEUR est ajouter au tableau des indicateurs.
- for (int i = 0; i < sesJetons.Count; ++i)
+ for (int i = 0; i < sesJetons.Length; ++i)
{
Jeton? sonJeton = sesJetons[i];
-
- if (sonJeton.HasValue && mesJetons.Contains(sonJeton.Value))
+
+ if (sonJeton.HasValue)
{
- indicateurs = indicateurs.Append(Indicateur.BONNECOULEUR).ToArray();
- mesJetons[mesJetons.IndexOf(sonJeton.Value)] = null;
- sesJetons[i] = null;
- break;
+ for (int j = 0; j < mesJetons.Length; ++j)
+ {
+ Jeton? monJeton = mesJetons[j];
+
+ if (monJeton.HasValue && sonJeton.Value.Couleur.Equals(monJeton.Value.Couleur))
+ {
+ indicateurs = indicateurs.Append(Indicateur.BONNECOULEUR).ToArray();
+ mesJetons[j] = null;
+ sesJetons[i] = null;
+ break;
+ }
+
+ }
}
}
diff --git a/Sources/CoreLibrary/CodeTailleInvalideException.cs b/Sources/CoreLibrary/CodeTailleInvalideException.cs
deleted file mode 100644
index 4fcadeb..0000000
--- a/Sources/CoreLibrary/CodeTailleInvalideException.cs
+++ /dev/null
@@ -1,14 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace CoreLibrary
-{
- public class CodeTailleInvalideException : Exception
- {
- public CodeTailleInvalideException() : base("La taille du tableau de code est inférieure ou égale à 0")
- { }
- }
-}
diff --git a/Sources/UnitTesting/CodeUT.cs b/Sources/UnitTesting/CodeUT.cs
index c8078ca..fe39ebb 100644
--- a/Sources/UnitTesting/CodeUT.cs
+++ b/Sources/UnitTesting/CodeUT.cs
@@ -1,5 +1,5 @@
using CoreLibrary;
-using System.Linq;
+using CoreLibrary.Exceptions;
using Xunit;
namespace UnitTesting
@@ -18,8 +18,8 @@ namespace UnitTesting
[Fact]
public void TestConstructorInvalidArguments()
{
- Assert.Throws(() => new Code(0));
- Assert.Throws(() => new Code(-1));
+ Assert.Throws(() => new Code(0));
+ Assert.Throws(() => new Code(-1));
}
[Fact]
@@ -36,7 +36,7 @@ namespace UnitTesting
[Fact]
public void TestSecondConstructorInvalidArguments()
{
- Assert.Throws(() => new Code([]));
+ Assert.Throws(() => new Code([]));
}
[Fact]
@@ -53,7 +53,7 @@ namespace UnitTesting
public void TestAjouterJetonInvalid()
{
Code code = new Code([new Jeton(Couleur.NOIR)]);
- Assert.Throws(() => code.AjouterJeton(new Jeton(Couleur.ROUGE)));
+ Assert.Throws(() => code.AjouterJeton(new Jeton(Couleur.ROUGE)));
}
[Fact]
@@ -68,7 +68,7 @@ namespace UnitTesting
public void TestSupprimerDernierJetonInvalid()
{
Code code = new Code(4);
- Assert.Throws(() => code.SupprimerDernierJeton());
+ Assert.Throws(() => code.SupprimerDernierJeton());
}
[Fact]
@@ -84,9 +84,8 @@ namespace UnitTesting
public void TestRecupererJetonInvalid()
{
Code code = new Code(4);
- Assert.Throws(() => code.RecupererJeton(-1));
- Assert.Throws(() => code.RecupererJeton(5));
- Assert.Throws(() => code.RecupererJeton(2));
+ Assert.Throws(() => code.RecupererJeton(-1));
+ Assert.Throws(() => code.RecupererJeton(4));
}
[Fact]
@@ -193,15 +192,6 @@ namespace UnitTesting
Assert.Empty(indicateurs);
}
-
- [Fact]
- public void TestComparerInvalid()
- {
- Code code = new Code([new Jeton(Couleur.ROUGE), new Jeton(Couleur.BLEU), new Jeton(Couleur.BLANC)]);
- Code autreCode = new Code(3);
-
- Assert.Throws(() => code.Comparer(autreCode));
- }
}
}
diff --git a/Sources/UnitTesting/PlateauUT.cs b/Sources/UnitTesting/PlateauUT.cs
index 358a7f1..1b99bb7 100644
--- a/Sources/UnitTesting/PlateauUT.cs
+++ b/Sources/UnitTesting/PlateauUT.cs
@@ -1,4 +1,5 @@
using CoreLibrary;
+using CoreLibrary.Exceptions;
using System.Linq;
using Xunit;
@@ -18,7 +19,7 @@ namespace UnitTesting
[Fact]
public void TestConstructorInvalid()
{
- Assert.Throws(() => new Plateau(0, 10));
+ Assert.Throws(() => new Plateau(0, 10));
}
[Fact]
@@ -65,7 +66,7 @@ namespace UnitTesting
Plateau plateau = new Plateau(4, 10);
Code code = new Code([new Jeton(Couleur.BLEU), new Jeton(Couleur.BLANC), new Jeton(Couleur.JAUNE), new Jeton(Couleur.BLANC), new Jeton(Couleur.JAUNE)]);
- Assert.Throws(() => plateau.AjouterCode(code));
+ Assert.Throws(() => plateau.AjouterCode(code));
}
[Fact]
@@ -74,7 +75,7 @@ namespace UnitTesting
Plateau plateau = new Plateau(4, 10);
Code code = new Code(4);
- Assert.Throws(() => plateau.AjouterCode(code));
+ Assert.Throws(() => plateau.AjouterCode(code));
}
[Fact]
diff --git a/Sources/UnitTesting/ReglesClassiquesUT.cs b/Sources/UnitTesting/ReglesClassiquesUT.cs
index 3566577..6e05912 100644
--- a/Sources/UnitTesting/ReglesClassiquesUT.cs
+++ b/Sources/UnitTesting/ReglesClassiquesUT.cs
@@ -1,4 +1,5 @@
using CoreLibrary;
+using CoreLibrary.Exceptions;
using Xunit;
namespace UnitTesting
@@ -11,7 +12,7 @@ namespace UnitTesting
ReglesClassiques regles = new ReglesClassiques();
Assert.NotNull(regles);
- //Assert.Equal(2, regles.NbJoueurs);
+ Assert.Equal(0, regles.NbJoueurs);
Assert.Equal(2, regles.NbJoueursMaximum);
}
@@ -43,7 +44,7 @@ namespace UnitTesting
public void TestJoueurCourantNoPlayer()
{
ReglesClassiques regles = new ReglesClassiques();
- Assert.Throws(() => regles.JoueurCourant());
+ Assert.Throws(() => regles.JoueurCourant());
}
[Fact]
@@ -66,7 +67,7 @@ namespace UnitTesting
public void TestPasserLaMainInvalid()
{
ReglesClassiques regles = new ReglesClassiques();
- Assert.Throws(() => regles.PasserLaMain());
+ Assert.Throws(() => regles.PasserLaMain());
}
[Fact]