module Main where
import qualified Combinatorics.Battleship.SetCover as SetCover
import qualified Combinatorics.Battleship.Count.ShortenShip.Distribution as
Distribution
import qualified Combinatorics.Battleship.Count.ShortenShip as ShortenShip
import qualified Combinatorics.Battleship.Enumeration as Enumeration
import qualified Combinatorics.Battleship.Fleet as Fleet
import Combinatorics.Battleship.Size (n6)
import qualified Data.Map as Map
main :: IO ()
main =
case fromInteger 20 :: Int of
00 -> Enumeration.count8x8
01 -> Enumeration.count (10,10) (Map.fromList [(2,1),(4,1),(5,1)])
10 -> SetCover.estimateDistribution
11 -> ShortenShip.printMapSizes
12 -> ShortenShip.countExternal
13 -> ShortenShip.count8x8
14 -> print $ ShortenShip.count (n6,6) $ Fleet.fromList [(2,2), (3,2)]
15 -> ShortenShip.countFleets
20 -> Distribution.countExternal
21 -> Distribution.countExternal >> SetCover.exactDistribution
_ -> return ()