module Tak.Init (
    initialState,
    emptyBoard,
    initialPlayer
) where

import Data.Matrix

import Tak.Types

initialState :: Int -> Colour -> GameState
initialState size playsFirst = GameState {
    stBoard = emptyBoard size,
    stWhite = initialPlayer size,
    stBlack = initialPlayer size,
    stFinished = Nothing,
    stPlaysNext = playsFirst,
    stNextTurn = 1
}

emptyBoard :: Int -> Board
emptyBoard size = matrix size size (\ _ -> [])

initialPlayer :: Int -> Player
initialPlayer 3 = Player 0 10
initialPlayer 4 = Player 0 15
initialPlayer 5 = Player 1 21
initialPlayer 6 = Player 1 30
initialPlayer 7 = Player 2 40
initialPlayer 8 = Player 2 50
initialPlayer i = error $ "No rules for board size " ++ show i