module Scrabble.FieldValue
where

data FieldValue = Normal
		| DoubleChar
		| TripleChar
		| DoubleWord
		| TripleWord
		  deriving (Eq, Ord, Read, Show)

fieldValue	:: Int -> Int -> FieldValue
fieldValue x y
    | x < 0	= fieldValue (-x)  y		-- symmetrie rules
    | y < 0	= fieldValue   x (-y)
    | x > y	= fieldValue   y   x
    | otherwise	= fieldValue'  x   y

fieldValue'	:: Int -> Int -> FieldValue
fieldValue' x y
    | d `mod` 4 /= 0	= Normal
    | x <= 1		= DoubleChar
    | x == 2		= TripleChar
    | x <= 6		= DoubleWord
    | otherwise		= TripleWord
    where
    d = y - x

