Safe Haskell | None |
---|

AI strategies to direct actors not controlled by the player.
No operation in this module involves the `State`

or `Action`

type.

- data Strategy a
- nullStrategy :: Strategy a -> Bool
- liftFrequency :: Frequency a -> Strategy a
- (.|) :: Strategy a -> Strategy a -> Strategy a
- reject :: Strategy a
- (.=>) :: Bool -> Strategy a -> Strategy a
- only :: (a -> Bool) -> Strategy a -> Strategy a
- bestVariant :: Strategy a -> Frequency a
- renameStrategy :: Text -> Strategy a -> Strategy a
- returN :: Text -> a -> Strategy a

# Documentation

A strategy is a choice of (non-empty) frequency tables of possible actions.

nullStrategy :: Strategy a -> BoolSource

liftFrequency :: Frequency a -> Strategy aSource

Strategy where only the actions from the given single frequency table can be picked.

(.|) :: Strategy a -> Strategy a -> Strategy aSource

Strategy with the actions from both argument strategies, with original frequencies.

only :: (a -> Bool) -> Strategy a -> Strategy aSource

Strategy with all actions not satisfying the predicate removed. The remaining actions keep their original relative frequency values.

bestVariant :: Strategy a -> Frequency aSource

When better choices are towards the start of the list, this is the best frequency of the strategy.

renameStrategy :: Text -> Strategy a -> Strategy aSource

Overwrite the description of all frequencies within the strategy.