{-# LANGUAGE LambdaCase #-} import qualified Data.DAWG.Packed as D import PlayGen import GameData import Paths_scrabble_bot import System.Directory import Text.Printf dawgFile = "twl06.dawg" dictFile = "dictionaries/TWL06.txt" getSolutions :: IO [Play] getSolutions = do dictPath <- getDataFileName dictFile dawgPath <- getDataFileName dawgFile dawg <- do doesFileExist dawgPath >>= \case True -> D.fromFile dawgPath False -> do ws <- fmap lines $ readFile dictPath let dawg = D.fromList ws D.toFile dawgPath dawg return dawg return $ genAllPlays table dawg rack main = do solutions <- getSolutions printf "Number of solutions: %d\n\n" (length solutions) mapM_ (showPlay table) (take numSolutionsShown solutions) -- Modify the following: numSolutionsShown = 20 rack = "RECA" table = [ " CARAT", " BA ", " I ", " R ", " REHARDEN ", " N ", " T ", " TOUR E", " YONDER", " O", " T", " I", " C", " ", " "]