src/pon2/private/app/solve

This module implements nodes of solution search tree.

Types

Node[F] = object
Node of solution search tree.
SolveAnswer = Deque[Position]
Nazo Puyo answer.

Procs

func canPrune[F: TsuField or WaterField](node: Node[F];
    reqKind: static RequirementKind; reqColor: static RequirementColor;
    firstCall: static bool = false): bool {.inline.}
Returns true if the node is unsolvable.
func children[F: TsuField or WaterField](node: Node[F];
    reqKind: static RequirementKind; reqColor: static RequirementColor): seq[
    tuple[node: Node[F], position: Position]] {.inline.}
Returns the children of the node.
func initNode[F: TsuField or WaterField](nazo: NazoPuyo[F]): Node[F] {.inline.}
Returns the root node of the nazo puyo.
func parseNode[F: TsuField or WaterField](str: string): Node[F] {.inline.}
Converts the string to the node. If the conversion fails, ValueError will be raised.
func solve[F: TsuField or WaterField](node: Node[F]; moveCount: Positive;
                                      earlyStopping: static bool = false): seq[
    SolveAnswer] {.inline.}
Solves the nazo puyo.
func solve[F: TsuField or WaterField](node: Node[F]; moveCount: Positive;
                                      reqKind: static RequirementKind;
                                      reqColor: static RequirementColor;
                                      earlyStopping: static bool): seq[
    SolveAnswer] {.inline.}
Solves the nazo puyo.
func toStr[F: TsuField or WaterField](node: Node[F]): string {.inline.}
Returns the string representation of the node.