GameTree

public indirect enum GameTree<Node, Edge: Hashable>

Generic tree representation with non-uniform branching factor.

  • Leaf tree node

    Declaration

    Swift

    case Leaf(Node)
  • Branch tree node

    Declaration

    Swift

    case Branch(Node, [Edge: GameTree<Node, Edge>])
  • Execute passed closures based on node type.

    Implemented as: switch self { case .Leaf(let node): return leaf(node) case .Branch(let node, let edges): return branch(node, edges) }

    Declaration

    Swift

    public func analysis<T>(leaf leaf: Node -> T, branch: (Node, [Edge: GameTree<Node, Edge>]) -> T) -> T
  • Generate dot-formatted (Graphviz) tree representation.

    Declaration

    Swift

    public func customDebugDescription(tree: GameTree<Node, Edge>, parentEdge: Edge? = nil, prefix: String = "root", closure: (Node, Edge?) -> (String, String?)) -> String