tak-0.1.0.0: A library encoding the rules of Tak, and a playtak.com client.

Safe HaskellNone
LanguageHaskell98

Tak

Documentation

data GameNode a Source #

Constructors

GameNode GameState a [GameBranch a] 

data GameBranch a Source #

Constructors

GameBranch Play (GameNode a) 

type Square = [Piece] Source #

data Stone Source #

Constructors

Cap 
Flat 
Standing 

Instances

Eq Stone Source # 

Methods

(==) :: Stone -> Stone -> Bool #

(/=) :: Stone -> Stone -> Bool #

Read Stone Source # 
Read Piece Source # 
Read Square Source # 
Read Board Source # 
Show Stone Source # 

Methods

showsPrec :: Int -> Stone -> ShowS #

show :: Stone -> String #

showList :: [Stone] -> ShowS #

Show Piece Source # 

Methods

showsPrec :: Int -> Piece -> ShowS #

show :: Piece -> String #

showList :: [Piece] -> ShowS #

Show Square Source # 
Generic Stone Source # 

Associated Types

type Rep Stone :: * -> * #

Methods

from :: Stone -> Rep Stone x #

to :: Rep Stone x -> Stone #

Hashable Stone Source # 

Methods

hashWithSalt :: Int -> Stone -> Int #

hash :: Stone -> Int #

Hashable Board Source # 

Methods

hashWithSalt :: Int -> Board -> Int #

hash :: Board -> Int #

type Rep Stone Source # 
type Rep Stone = D1 (MetaData "Stone" "Tak.Types" "tak-0.1.0.0-37SVn37goY6AS0DYObYf2t" False) ((:+:) (C1 (MetaCons "Cap" PrefixI False) U1) ((:+:) (C1 (MetaCons "Flat" PrefixI False) U1) (C1 (MetaCons "Standing" PrefixI False) U1)))

data Colour Source #

Constructors

Black 
White 

Instances

Eq Colour Source # 

Methods

(==) :: Colour -> Colour -> Bool #

(/=) :: Colour -> Colour -> Bool #

Read Colour Source # 
Read Piece Source # 
Read Square Source # 
Read Board Source # 
Show Colour Source # 
Show Piece Source # 

Methods

showsPrec :: Int -> Piece -> ShowS #

show :: Piece -> String #

showList :: [Piece] -> ShowS #

Show Square Source # 
Generic Colour Source # 

Associated Types

type Rep Colour :: * -> * #

Methods

from :: Colour -> Rep Colour x #

to :: Rep Colour x -> Colour #

Hashable Colour Source # 

Methods

hashWithSalt :: Int -> Colour -> Int #

hash :: Colour -> Int #

Hashable Board Source # 

Methods

hashWithSalt :: Int -> Board -> Int #

hash :: Board -> Int #

type Rep Colour Source # 
type Rep Colour = D1 (MetaData "Colour" "Tak.Types" "tak-0.1.0.0-37SVn37goY6AS0DYObYf2t" False) ((:+:) (C1 (MetaCons "Black" PrefixI False) U1) (C1 (MetaCons "White" PrefixI False) U1))

data Dir Source #

Constructors

PosX 
NegX 
PosY 
NegY 

Instances

Enum Dir Source # 

Methods

succ :: Dir -> Dir #

pred :: Dir -> Dir #

toEnum :: Int -> Dir #

fromEnum :: Dir -> Int #

enumFrom :: Dir -> [Dir] #

enumFromThen :: Dir -> Dir -> [Dir] #

enumFromTo :: Dir -> Dir -> [Dir] #

enumFromThenTo :: Dir -> Dir -> Dir -> [Dir] #

Eq Dir Source # 

Methods

(==) :: Dir -> Dir -> Bool #

(/=) :: Dir -> Dir -> Bool #

Read Dir Source # 
Show Dir Source # 

Methods

showsPrec :: Int -> Dir -> ShowS #

show :: Dir -> String #

showList :: [Dir] -> ShowS #

type Loc = (Int, Int) Source #

data GameState Source #

data Player Source #

Constructors

Player 

Instances

Eq Player Source # 

Methods

(==) :: Player -> Player -> Bool #

(/=) :: Player -> Player -> Bool #

Show Player Source # 
Generic Player Source # 

Associated Types

type Rep Player :: * -> * #

Methods

from :: Player -> Rep Player x #

to :: Rep Player x -> Player #

Hashable Player Source # 

Methods

hashWithSalt :: Int -> Player -> Int #

hash :: Player -> Int #

type Rep Player Source # 
type Rep Player = D1 (MetaData "Player" "Tak.Types" "tak-0.1.0.0-37SVn37goY6AS0DYObYf2t" False) (C1 (MetaCons "Player" PrefixI True) ((:*:) (S1 (MetaSel (Just Symbol "capsRemaining") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Int)) (S1 (MetaSel (Just Symbol "stonesRemaing") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Int))))

gameTree :: GameState -> Eval a -> GameNode a Source #