Esempio n. 1
0
        private void FillTree(ChipNode chipNode, int level)
        {
            if (level >= Deep)
            {
                return;
            }

            BoardService boardService = new BoardService();

            boardService.InitBoard(new Board(chipNode.Board));
            boardService.FlipChips(new Chip(chipNode.Chip), chipNode.Chip.OwnerId);
            List <Chip> availableChips = boardService.GetAvailableSteps(Players.
                                                                        Where(player => player.Id != chipNode.Chip.OwnerId).
                                                                        Select(player => player.Id).FirstOrDefault());

            if (availableChips.Count == 0)
            {
                return;
            }

            foreach (Chip chip in availableChips)
            {
                ChipNode nextChipNode = new ChipNode(new Board(boardService.Board),
                                                     new Chip(chip), level);
                chipNode.NextChips.Add(nextChipNode);
                FillTree(nextChipNode, level + 1);
                nextChipNode.SetCoefficient();
            }
        }
Esempio n. 2
0
 private void FillChipNextList(ChipNode chipNode, List <Chip> nextChips)
 {
     Level++;
     foreach (Chip chip in nextChips)
     {
         chipNode.NextChips.Add(new ChipNode(new Board(chipNode.Board), chip, Level));
     }
 }
Esempio n. 3
0
 /// <summary>
 /// Method that fill tree.
 /// </summary>
 /// <param name="chipNode">Root node.</param>
 public void FillTree(ChipNode chipNode)
 {
     Level++;
     foreach (ChipNode chip in chipNode.NextChips)
     {
         FillTree(chip, Level);
         chip.SetCoefficient();
     }
     chipNode.SetCoefficient();
 }