packages feed

hstzaar-0.8: src/AI.hs

-- | Library of AI Players
module AI (aiPlayers) where

import Board
import AI.Utils
import AI.Minimax
import AI.Eval


-- all AI players; default AI is the first one 
aiPlayers :: [(String,AI)]
aiPlayers = [("level0",level0), ("level1",level1), ("level2",level2)]

level0 = AI { name = "Level 0"
            , description = "Minimax alpha-beta depth 2 (eval0)"
            , strategy = minimaxStrategy 2 eval0
            }

level1 = AI { name = "Level 1"
            , description = "Minimaxing alpha-beta depth 2 (eval1)"
            , strategy = minimaxStrategy 2 eval1
            }

level2 = AI { name = "Level 2"
            , description = "Minimaxing alpha-beta depth 2-4 (eval1)"
            , strategy = (withNPieces $ \numpieces -> 
                              if numpieces<30 then
                                  minimaxStrategy 4 eval1
                              else
                                  minimaxStrategy 2 eval1
                         )
            }