/// <summary> /// Gets the next target search /// </summary> /// <param name="current">Next Node</param> public Search Next(PositionNode current) { sbyte nextPlayer = board.NextPlayer(CurrentPlayer); Search next = new Search(board, current, RootPlayer, nextPlayer); if (current.RolledDoubles) { next.NextPlayer = next.CurrentPlayer; next.DoublesCount = DoublesCount + 1; if (next.DoublesCount >= 3) { current.Value.RemoveFrontMarble(next.CurrentPlayer); next.DoublesCount = 0; next.NextPlayer = board.NextPlayer(next.CurrentPlayer); } } else { next.DoublesCount = 0; } return(next); }
public void CreatePosition(PositionNode parent, Position positionToCreate, string parentPositionName) { PositionNode newNode = new PositionNode(); newNode.Position = positionToCreate; if (Root == null) { Root = newNode; return; } if (parent == null) { return; } if (parent.Position.Name == parentPositionName) { if (parent.Left == null) { parent.Left = newNode; return; } parent.Right = newNode; return; } CreatePosition(parent.Left, positionToCreate, parentPositionName); CreatePosition(parent.Right, positionToCreate, parentPositionName); }
public float Addsalaries(PositionNode from) { if (from == null) { return(0); } return(from.Position.Salary + Addsalaries(from.Left) + Addsalaries(from.Right)); }
/// <summary> /// Creates a new search /// </summary> /// <param name="board">Board</param> /// <param name="node">Current node</param> /// <param name="rootPlayer">Root player</param> /// <param name="currentPlayer">Current player</param> public Search(Board board, PositionNode node, sbyte rootPlayer, sbyte currentPlayer) { this.board = board; RootPlayer = rootPlayer; CurrentPlayer = currentPlayer; Node = node; DoublesCount = 0; }
public void PrintTree(PositionNode from) { if (from == null) { return; } Console.WriteLine($"{from.Position.Name} : ${from.Position.Salary}"); PrintTree(from.Left); PrintTree(from.Right); }
private void AssertPosition(string expectedFile, int expectedPosition, PositionNode was) { Assert.AreEqual(expectedFile + ":" + expectedPosition, was != null ? was.file.path + ":" + was.position : "null", _executor.GetDebugText()); }
private void Update(PositionNode node, float time) { }