@ -36,7 +36,7 @@ namespace CoreLibrary
/// <exception cref="TailleCodeException">Levée lorsque la collection de jetons spécifiée est vide.</exception>
public Code ( IEnumerable < Jeton > jetons )
{
if ( jetons . Any ( ) )
if ( ! jetons . Any ( ) )
{
throw new TailleCodeException ( jetons . Count ( ) ) ;
}
@ -85,7 +85,7 @@ namespace CoreLibrary
/// <exception cref="IndiceCodeException">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é</exception>
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 ( ) )
if ( ! autreCode . EstComplet ( ) )
return indicateurs ;
List< Jeton ? > mesJetons = new List < Jeton ? > ( Jetons ( ) ) ;
List< Jeton ? > sesJetons = new List < Jeton ? > ( autreCode . Jetons ( ) ) ;
Jeton? [ ] mesJetons = Jetons ( ) . ToArray ( ) ;
Jeton? [ ] sesJetons = autreCode . Jetons ( ) . ToArray ( ) ;
/// 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 ;
}
}
}
}