From ef91eac896b6f029a1ee3d296ee614a9a5d7a7f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20LAVERGNE?= Date: Tue, 28 May 2024 20:57:08 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=AA=9A=20R=C3=A9duction=20de=20l'imbricat?= =?UTF-8?q?ion=20(nesting/Sonar)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/Trek-12/Models/Game/Game.cs | 47 ++++++++++++------------------ 1 file changed, 18 insertions(+), 29 deletions(-) diff --git a/source/Trek-12/Models/Game/Game.cs b/source/Trek-12/Models/Game/Game.cs index ca6ede7..bb07919 100644 --- a/source/Trek-12/Models/Game/Game.cs +++ b/source/Trek-12/Models/Game/Game.cs @@ -135,44 +135,33 @@ namespace Models.Game { int index =0; - foreach (var cells in adjacentes) + foreach (var cells in adjacentes.Where(cells => cells.Value - playerChoice.Value == 1 || cells.Value - playerChoice.Value == -1)) { - // La cellule choisi peut creer/s'ajouter a un chemin de corde - if (cells.Value - playerChoice.Value == 1 || cells.Value - playerChoice.Value == -1) + // Le cas si il n'existe aucun chemin de corde + if (UsedMap.RopePaths.Count == 0) { - // Le cas si il n'existe aucun chemin de corde - if (UsedMap.RopePaths.Count == 0) - { - // Creer un nouveau chemin de corde avec la cellule choisi par le joueur et celle adjacente - UsedMap.RopePaths.Add(new List {playerChoice, cells}); - } - - - // A modifier dans le cas ou il est possible de fusionner deux chemins de corde - if (GameRules.IsInRopePaths(playerChoice, UsedMap.RopePaths, index)) break; + // Creer un nouveau chemin de corde avec la cellule choisi par le joueur et celle adjacente + UsedMap.RopePaths.Add(new List {playerChoice, cells}); + } - // Le cas si il existe des chemins de corde - // Est-ce que la cellule adjacentes fait parti d'un chemin de corde - if (!GameRules.IsInRopePaths(cells,UsedMap.RopePaths,index)) - { - UsedMap.RopePaths.Add(new List { playerChoice, cells }); - continue; - } + // A modifier dans le cas ou il est possible de fusionner deux chemins de corde + if (GameRules.IsInRopePaths(playerChoice, UsedMap.RopePaths, index)) break; - if (!GameRules.AsValue(playerChoice,UsedMap.RopePaths,index)) - { - UsedMap.RopePaths[index].Add(playerChoice); - } + // Le cas si il existe des chemins de corde - // Si oui, est-ce que le chemin possede deja la valeur correspondante a la valeur de la cellule du joueur choisi - // {playerChoice.Value} n'est pas dans le chemin de corde - // Ajouter au chemin - // {playerChoice.Value} existe dans le chemin de corde pas possible + // Est-ce que la cellule adjacentes fait parti d'un chemin de corde + if (!GameRules.IsInRopePaths(cells,UsedMap.RopePaths,index)) + { + UsedMap.RopePaths.Add(new List { playerChoice, cells }); + continue; + } + if (!GameRules.AsValue(playerChoice,UsedMap.RopePaths,index)) + { + UsedMap.RopePaths[index].Add(playerChoice); } } - } ///