|
|
|
@ -73,10 +73,38 @@ namespace Models.Game
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void AddToRopePath(Cell cell)
|
|
|
|
|
public void AddToRopePath(Cell playerChoice, List<Cell> adjacentes, List<List<Cell>> 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)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|