hcheckers-0.1.0.0: src/Rules/Spancirety.hs
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
module Rules.Spancirety (Spancirety, spancirety) where
import Data.Typeable
import Core.Types
import Core.Board
import Core.Evaluator
import Rules.Generic
import Rules.Russian
newtype Spancirety = Spancirety GenericRules
deriving (Typeable, HasBoardOrientation)
instance Show Spancirety where
show = rulesName
instance GameRules Spancirety where
initBoard rnd r =
let board = buildBoard rnd (boardOrientation r) (8, 10)
labels1 = ["a1", "c1", "e1", "g1", "i1",
"b2", "d2", "f2", "h2", "j2",
"a3", "c3", "e3", "g3", "i3"]
labels2 = ["b8", "d8", "f8", "h8", "j8",
"a7", "c7", "e7", "g7", "i7",
"b6", "d6", "f6", "h6", "j6"]
in setManyPieces' labels1 (Piece Man First) $ setManyPieces' labels2 (Piece Man Second) board
boardSize _ = (8, 10)
boardNotation _ = boardNotation russian
dfltEvaluator r = SomeEval $ defaultEvaluator r
parseNotation _ = parseNotation russian
rulesName _ = "spancirety"
possibleMoves _ = possibleMoves russian
mobilityScore _ = mobilityScore russian
updateRules r _ = r
getGameResult = genericGameResult
pdnId _ = "41"
spancirety :: Spancirety
spancirety = Spancirety $
let rules = russianBase rules
in rules