Skip to content

Instantly share code, notes, and snippets.

@Ceasar
Created July 26, 2013 22:52
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Ceasar/6092781 to your computer and use it in GitHub Desktop.
Save Ceasar/6092781 to your computer and use it in GitHub Desktop.
WIP Haskell chess.
module Chess where
import Data.Map as M
import Test.HUnit
import Test.QuickCheck
type Pos = (Int, Int)
data Color = White | Black
data PieceType = Pawn | Knight | Bishop | Rook | Queen | King
data Piece = Piece PieceType Color Pos
type Square = Maybe Piece
type Board = M.Map Piece Pos
data Move = CastleKingSide | CastleQueenSide | Move (Pos, Pos) (Maybe Piece)
type Game = [Move]
prettyBoard :: Board -> String
prettyBoard = undefined
initialBoard :: Board
initialBoard = undefined
valuePiece :: Piece -> Int
valuePiece = undefined
makeMove :: Board -> Move -> Board
makeMove b (Move u v) = undefined
undoMove :: Board -> Move -> Board
undoMove b (Move u v) = undefined
moves :: PieceType -> [(Int, Int)]
moves = undefined
-- Bot
evalBoard :: Board -> Int
evalBoard = undefined
getMove :: Board -> Move
getMove b = undefined
main = do
let b = ZZ
putStrLn $ "Welcome"
s <- getLine
let m = parseMove s
let b = makeMove
putStrLn $ show b
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment