{-
Module: Constants.
We define some global constants (board size, number of players and total walls) and calculate
some useful related values.
-}
module Constants where
import Data.Char
import Types
{-
Actual global constants.
-}
Board size. Everything should work by simply changing this number, however, we recommend that you
keep it small to simplify the calculations. It should be odd and at least 3.
boardSize :: Int
boardSize = 5
Number of players.
numOfPlayers :: Int
numOfPlayers = 2
Total number of walls allowed.
totalWalls :: Int
totalWalls = 10
{-
Other variables.
-}
First row. Note that this will be the row at the bottom of the board.
firstRow :: Row
firstRow = 1
Last row. Note that this will be the row at the top of the board.
lastRow :: Row
lastRow = boardSize
Array with all the row indices.
allRows :: [Row]
allRows = [firstRow..lastRow]
First column (always a).
firstColumn :: Column
firstColumn = a
Last column (if boardSize = 5 this would be e).
lastColumn :: Column
lastColumn = chr (ord a + boardSize 1)
Array with all the column names.
allColumns :: [Column]
allColumns = [firstColumn..lastColumn]
We split the walls evenly by default.
wallsPerPlayer :: Int
wallsPerPlayer = div totalWalls numOfPlayers
Reviews
There are no reviews yet.