hcheckers-0.1.0.0: src/Rules/Brazilian.hs
{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE OverloadedStrings #-}
module Rules.Brazilian (Brazilian, brazilian) where
import Data.Typeable
import Core.Types
import Core.Board
import Core.Evaluator
import Rules.Generic
import Rules.International
import Rules.Russian
newtype Brazilian = Brazilian GenericRules
deriving (Typeable, HasBoardOrientation)
instance Show Brazilian where
show = rulesName
instance GameRules Brazilian where
boardSize _ = (8, 8)
initBoard rnd _ = initBoard rnd russian
dfltEvaluator r = SomeEval $ defaultEvaluator r
boardNotation _ = boardNotation international
parseNotation _ = parseNotation international
rulesName _ = "brazilian"
pdnId _ = "26"
updateRules r _ = r
possibleMoves (Brazilian rules) side board = gPossibleMoves rules side board
mobilityScore (Brazilian rules) side board = gMobilityScore rules side board
getGameResult = genericGameResult
brazilian :: Brazilian
brazilian = Brazilian $
let rules = internationalBase rules
in rules