Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- data QuadBitboard = QBB {}
- white :: QuadBitboard -> Word64
- occupied :: QuadBitboard -> Word64
- pnr :: QuadBitboard -> Word64
- pawns :: QuadBitboard -> Word64
- knights :: QuadBitboard -> Word64
- bishops :: QuadBitboard -> Word64
- rooks :: QuadBitboard -> Word64
- queens :: QuadBitboard -> Word64
- kings :: QuadBitboard -> Word64
- wPawns :: QuadBitboard -> Word64
- wKnights :: QuadBitboard -> Word64
- wBishops :: QuadBitboard -> Word64
- wRooks :: QuadBitboard -> Word64
- wQueens :: QuadBitboard -> Word64
- wKings :: QuadBitboard -> Word64
- bPawns :: QuadBitboard -> Word64
- bKnights :: QuadBitboard -> Word64
- bBishops :: QuadBitboard -> Word64
- bRooks :: QuadBitboard -> Word64
- bQueens :: QuadBitboard -> Word64
- bKings :: QuadBitboard -> Word64
- toString :: QuadBitboard -> String
- newtype Word4 = W4 Word8
- pattern NoPiece :: Word4
- pattern WhitePawn :: Word4
- pattern WhiteKnight :: Word4
- pattern WhiteBishop :: Word4
- pattern WhiteRook :: Word4
- pattern WhiteQueen :: Word4
- pattern WhiteKing :: Word4
- pattern BlackPawn :: Word4
- pattern BlackKnight :: Word4
- pattern BlackBishop :: Word4
- pattern BlackRook :: Word4
- pattern BlackQueen :: Word4
- pattern BlackKing :: Word4
- empty :: QuadBitboard
- standard :: QuadBitboard
- square :: Bits nibble => Int -> nibble -> QuadBitboard
- (!) :: QuadBitboard -> Int -> Word4
- setNibble :: Bits nibble => QuadBitboard -> Int -> nibble -> QuadBitboard
- move :: QuadBitboard -> Int -> Int -> QuadBitboard
- move' :: Int -> Word4 -> Int -> Word4 -> QuadBitboard
- whiteKingsideCastle :: QuadBitboard
- whiteQueensideCastle :: QuadBitboard
- blackKingsideCastle :: QuadBitboard
- blackQueensideCastle :: QuadBitboard
- enPassant :: Int -> Int -> QuadBitboard
- whitePromotion :: QuadBitboard -> Int -> Int -> Word4 -> QuadBitboard
- blackPromotion :: QuadBitboard -> Int -> Int -> Word4 -> QuadBitboard
- whitePromotion' :: Int -> Int -> Word4 -> Word4 -> QuadBitboard
- blackPromotion' :: Int -> Int -> Word4 -> Word4 -> QuadBitboard
The QuadBitboard data type
data QuadBitboard Source #
Instances
Eq QuadBitboard Source # | |
Defined in Game.Chess.QuadBitboard (==) :: QuadBitboard -> QuadBitboard -> Bool # (/=) :: QuadBitboard -> QuadBitboard -> Bool # | |
Show QuadBitboard Source # | |
Defined in Game.Chess.QuadBitboard showsPrec :: Int -> QuadBitboard -> ShowS # show :: QuadBitboard -> String # showList :: [QuadBitboard] -> ShowS # | |
IsString QuadBitboard Source # | |
Defined in Game.Chess.QuadBitboard fromString :: String -> QuadBitboard # | |
Semigroup QuadBitboard Source # | bitwise XOR |
Defined in Game.Chess.QuadBitboard (<>) :: QuadBitboard -> QuadBitboard -> QuadBitboard # sconcat :: NonEmpty QuadBitboard -> QuadBitboard # stimes :: Integral b => b -> QuadBitboard -> QuadBitboard # | |
Monoid QuadBitboard Source # | |
Defined in Game.Chess.QuadBitboard mempty :: QuadBitboard # mappend :: QuadBitboard -> QuadBitboard -> QuadBitboard # mconcat :: [QuadBitboard] -> QuadBitboard # | |
Binary QuadBitboard Source # | |
Defined in Game.Chess.QuadBitboard |
white :: QuadBitboard -> Word64 Source #
occupied :: QuadBitboard -> Word64 Source #
pnr :: QuadBitboard -> Word64 Source #
pawns :: QuadBitboard -> Word64 Source #
knights :: QuadBitboard -> Word64 Source #
bishops :: QuadBitboard -> Word64 Source #
rooks :: QuadBitboard -> Word64 Source #
queens :: QuadBitboard -> Word64 Source #
kings :: QuadBitboard -> Word64 Source #
wPawns :: QuadBitboard -> Word64 Source #
wKnights :: QuadBitboard -> Word64 Source #
wBishops :: QuadBitboard -> Word64 Source #
wRooks :: QuadBitboard -> Word64 Source #
wQueens :: QuadBitboard -> Word64 Source #
wKings :: QuadBitboard -> Word64 Source #
bPawns :: QuadBitboard -> Word64 Source #
bKnights :: QuadBitboard -> Word64 Source #
bBishops :: QuadBitboard -> Word64 Source #
bRooks :: QuadBitboard -> Word64 Source #
bQueens :: QuadBitboard -> Word64 Source #
bKings :: QuadBitboard -> Word64 Source #
toString :: QuadBitboard -> String Source #
Square codes
Instances
pattern WhiteKnight :: Word4 Source #
pattern WhiteBishop :: Word4 Source #
pattern WhiteQueen :: Word4 Source #
pattern BlackKnight :: Word4 Source #
pattern BlackBishop :: Word4 Source #
pattern BlackQueen :: Word4 Source #
Construction
empty :: QuadBitboard Source #
square :: Bits nibble => Int -> nibble -> QuadBitboard Source #
law: square i x ! i = x where inRange (0,63) i && inRange (0,15) x
Access
setNibble :: Bits nibble => QuadBitboard -> Int -> nibble -> QuadBitboard Source #
Transformations
Normal moves
move :: QuadBitboard -> Int -> Int -> QuadBitboard Source #
Move a nibble. Note that this function, while convenient, isn't very fast as it needs to lookup the source nibble value.
Castling
En passant
Promotion
whitePromotion :: QuadBitboard -> Int -> Int -> Word4 -> QuadBitboard Source #
blackPromotion :: QuadBitboard -> Int -> Int -> Word4 -> QuadBitboard Source #
whitePromotion' :: Int -> Int -> Word4 -> Word4 -> QuadBitboard Source #
blackPromotion' :: Int -> Int -> Word4 -> Word4 -> QuadBitboard Source #