public GoNode AddNode(GoNode nextNode) { ChildNodes.Add(nextNode); DefaultChildNode = nextNode; return(nextNode); }
public void PlaceStone(Stone stone, bool storeBoard) { currentNode = currentNode.AddNode(new GoMoveNode(currentNode, stone, storeBoard)); MoveNumber = MoveNumber + 1; if (updateBoard) { board.Place(stone); } }
public void AddNode(GoNode node) { currentNode = currentNode.AddNode(node); MoveNumber = MoveNumber + 1; if (updateBoard) { board = currentNode.BoardCopy; } }
public GoGame(byte boardSize) { currentNode = new GoRootNode(boardSize); MoveNumber = 0; Info = new GameInfo(); ShowVariants = Variants.Siblings; board = new Board(boardSize); }
public void SetHandicap(byte count) { if (currentNode is GoRootNode) { currentNode = currentNode.AddNode(new GoSetupNode(currentNode)); (currentNode as GoSetupNode).SetHandicap(count); MoveNumber = MoveNumber + 1; board = currentNode.BoardCopy; } }
public void RemoveNode(GoNode node) { ChildNodes.Remove(node); if (node == DefaultChildNode) { DefaultChildNode = ChildNodes.Count > 0 ? ChildNodes[0] : null; } }
public bool ToPreviousMove(bool updateBoard) { if (currentNode.ParentNode != null) { currentNode = currentNode.ParentNode; MoveNumber = MoveNumber - 1; if (updateBoard) { board = currentNode.BoardCopy; } return(true); } return(false); }
public void ToMove(GoNode node) { foreach (var child in currentNode.ChildNodes) { if (child == node) { currentNode = node; MoveNumber += 1; if (updateBoard) { board = currentNode.BoardCopy; } } } }
public GoNode(GoNode parentNode, bool makeBoards) { ChildNodes = new List <GoNode>(); if (parentNode != null) { ParentNode = parentNode; if (makeBoards) { board = CopyParentBoard(); } } else { ParentNode = null; } }
public bool ToNextMove(bool updateBoard) { if (currentNode.DefaultChildNode != null) { currentNode = currentNode.DefaultChildNode; MoveNumber = MoveNumber + 1; if (updateBoard) { if (currentNode is GoMoveNode) { board.Place((currentNode as GoMoveNode).Stone); } else { board = currentNode.BoardCopy; } } return(true); } return(false); }
public void ToNextVariation() { currentNode = currentNode.GetNextSibling(); board = currentNode.BoardCopy; }
public void ToPreviousVariation() { currentNode = currentNode.GetPreviousSibling(); board = currentNode.BoardCopy; }