LambdaHack-0.4.9.0: A game engine library for roguelike dungeon crawlers

Safe HaskellNone

Game.LambdaHack.Client.Bfs

Contents

Description

Breadth first search algorithms.

Synopsis

Public API

data BfsDistance Source

Weighted distance between points along shortest paths.

data MoveLegal Source

State of legality of moves between adjacent points.

Instances

apartBfs :: BfsDistanceSource

The distance value that denote no legal path between points.

fillBfsSource

Arguments

:: (Point -> Point -> MoveLegal)

is a move from known tile legal

-> (Point -> Point -> Bool)

is a move from unknown legal

-> Point

starting position

-> Array BfsDistance

initial array, with apartBfs

-> Array BfsDistance

array with calculated distances

Fill out the given BFS array.

findPathBfs :: (Point -> Point -> MoveLegal) -> (Point -> Point -> Bool) -> Point -> Point -> Int -> Array BfsDistance -> Maybe [Point]Source

Find a path, without the source position, with the smallest length. The eps coefficient determines which direction (or the closest directions available) that path should prefer, where 0 means north-west and 1 means north.

accessBfs :: Array BfsDistance -> Point -> Maybe IntSource

Access a BFS array and interpret the looked up distance value.

minKnownBfs :: BfsDistanceSource

The minimal distance value assigned to paths that don't enter any unknown tiles.