packages feed

macbeth-lib-0.0.12: src/Macbeth/Wx/PieceSet.hs

module Macbeth.Wx.PieceSet (
  PieceSet(..),
  pieceSets,
  pieceSetFindSize
) where

import Data.Maybe
import Safe


{-
http://ixian.com/chess/jin-piece-sets/
This work by Eric De Mund is licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License
-}

data PieceSet = PieceSet { path :: FilePath, display :: String }

pieceSets = [
    PieceSet "alpha.ead-01" "Alpha (ead-01)"
  , PieceSet "alpha.ead-02" "Alpha (ead-02)"
  , PieceSet "merida.ead-01" "Merida (ead-01)"
  , PieceSet "merida.ead-02" "Merida (ead-02)"
  , PieceSet "uscf.ead-01" "USCF (ead-01)"
  , PieceSet "uscf.ead-02" "USCF (ead-02)"]

pieceSetFindSize :: Int -> Int
pieceSetFindSize panelWidth =
  fromMaybe 300 $ headMay $ dropWhile (< round (fromIntegral panelWidth / 8)) sizes
  where sizes = [20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,52,56,60,64,72,80,88,96,112,128,144,300]