diff --git a/source/Trek-12/Models/Game/Game.cs b/source/Trek-12/Models/Game/Game.cs index b154e77..151b2f6 100644 --- a/source/Trek-12/Models/Game/Game.cs +++ b/source/Trek-12/Models/Game/Game.cs @@ -73,10 +73,38 @@ namespace Models.Game } } - public void AddToRopePath(Cell cell) + public void AddToRopePath(Cell playerChoice, List adjacentes, List> ropePaths) { - if (GameRules.IsRopePath(cell, ropePaths)) return; - + + // Parmi les {adjacentes} garde seulement les cellules qui peuvent creer un chemin de corde + foreach (var item in adjacentes) + { + if (item.Value == playerChoice.Value && ((playerChoice.Value - item.Value) > 1 || (playerChoice.Value - item.Value) < -1)) adjacentes.Remove(item); + } + + // Apres le foreach si la liste {adjacentes} est vide, plus aucune possiblite de creer ou d'ajouter a un chemin de corde + if (adjacentes.Count == 0) return; + + // Si {ropePaths} est vide, il faut alors creer un chemin de corde entre {playerChoice} et une cellule {d'adjacentes} + if (ropePaths.Count == 0) + { + // Deux cas de figure soit la liste {adjacentes} contient une seul valeur soit plusieurs + + // Si {adjacentes} contient une valeur, ajouter dans ropePaths un nouveau chemin de corde + + // Si {adjacentes} contient plusieurs valeurs, permettre aux joueurs de choisir la cellule pour creer un nouveau chemin de corde + } + + foreach (var item in adjacentes) + { + foreach (var item1 in ropePaths) + { + foreach (var item2 in item1) + { + + } + } + } } } diff --git a/source/Trek-12/Models/Rules/Rules.cs b/source/Trek-12/Models/Rules/Rules.cs index 0daa484..9bff812 100644 --- a/source/Trek-12/Models/Rules/Rules.cs +++ b/source/Trek-12/Models/Rules/Rules.cs @@ -17,6 +17,11 @@ namespace Models.Rules return true; } + + public bool ropePathCellIsValid (Cell choosenCell, Cell targetCell) + { + if (Math.Abs(choosenCell.Value - targetCell.Value ) + } public bool NearCellIsValid(Cell choosenCell, List cells) {