packages feed

unscramble 0.0 → 0.1

raw patch · 3 files changed

+63/−63 lines, 3 files

Files

+ Main.hs view
@@ -0,0 +1,59 @@+import Control.Lens hiding ((&), value)+import Data.List+import Data.Maybe+import Data.Ord+import Options.Applicative+import Paths_unscramble+import System.IO+import Unscramble.Input+import Unscramble.Output+import Unscramble.Score+import Unscramble.Search+import Unscramble.Types++parseOpts :: Parser ScrambleOpts+parseOpts = ScrambleOpts+        <$> option+            ( long "size" +            & short 's'+            & metavar "SIZE"+            & help "Grid size (default 4)"+            & value 4)+        <*> option+            ( long "score"+            & metavar "SYSTEM"+            & help "Scoring system (one of \27[1mswf\27[0m (default),\+            \ \27[1mboggle\27[0m, \27[1mword-wars\27[0m)"+            & value SWF)+        <*> option+            ( long "display"+            & short 'd'+            & metavar "STYLE"+            & help "Display style: \27[1mone-line\27[0m to print all\+            \ the words in order on one line, or \27[1mchunked\27[0m\+            \ to display three-at-a-time with a board diagram for each."+            & value Chunked)++main :: IO ()+main = do+    sopts <- execParser opts+    grid' <- readGrid (gridSize sopts)+    mult' <- case scoreSystem sopts of+        SWF -> readMult+        _ -> return $ Multiplier [] Nothing [] Nothing+    filepath <- getDataFileName "lists/enable.txt"+    withFile filepath ReadMode $ \h -> do+        cont <- hGetContents h+        let foundWords = sortBy ((invert .) . comparing (_1 ^$))+                       . mapMaybe (\a ->+                           searchGrid a grid' mult' (scoreSystem sopts))+                       $ lines cont+        display foundWords grid' mult' sopts+    where+        opts = info (helper <*> parseOpts)+            ( fullDesc+            & progDesc "Solve a Boggle-like word game"+            & header "unscramble")+        invert LT = GT+        invert GT = LT+        invert x = x
− Unscramble.hs
@@ -1,61 +0,0 @@-module Unscramble where--import Control.Lens hiding ((&), value)-import Data.List-import Data.Maybe-import Data.Ord-import Options.Applicative-import Paths_unscramble-import System.IO-import Unscramble.Input-import Unscramble.Output-import Unscramble.Score-import Unscramble.Search-import Unscramble.Types--parseOpts :: Parser ScrambleOpts-parseOpts = ScrambleOpts-        <$> option-            ( long "size" -            & short 's'-            & metavar "SIZE"-            & help "Grid size (default 4)"-            & value 4)-        <*> option-            ( long "score"-            & metavar "SYSTEM"-            & help "Scoring system (one of \27[1mswf\27[0m (default),\-            \ \27[1mboggle\27[0m, \27[1mword-wars\27[0m)"-            & value SWF)-        <*> option-            ( long "display"-            & short 'd'-            & metavar "STYLE"-            & help "Display style: \27[1mone-line\27[0m to print all\-            \ the words in order on one line, or \27[1mchunked\27[0m\-            \ to display three-at-a-time with a board diagram for each."-            & value Chunked)--main :: IO ()-main = do-    sopts <- execParser opts-    grid' <- readGrid (gridSize sopts)-    mult' <- case scoreSystem sopts of-        SWF -> readMult-        _ -> return $ Multiplier [] Nothing [] Nothing-    filepath <- getDataFileName "lists/enable.txt"-    withFile filepath ReadMode $ \h -> do-        cont <- hGetContents h-        let foundWords = sortBy ((invert .) . comparing (_1 ^$))-                       . mapMaybe (\a ->-                           searchGrid a grid' mult' (scoreSystem sopts))-                       $ lines cont-        display foundWords grid' mult' sopts-    where-        opts = info (helper <*> parseOpts)-            ( fullDesc-            & progDesc "Solve a Boggle-like word game"-            & header "unscramble")-        invert LT = GT-        invert GT = LT-        invert x = x
unscramble.cabal view
@@ -1,5 +1,7 @@ Name:           unscramble-Version:        0.0+Category:       Utils+Synopsis:       Solve Boggle-like word games+Version:        0.1 Description:    Solve Boggle-like word games License:        GPL Author:         Joel Taylor@@ -9,7 +11,7 @@ Data-Files:     lists/enable.txt  Executable unscramble-    Main-is:                Unscramble.hs+    Main-is:                Main.hs     Build-Depends:          base == 4.*, hashmap == 1.3.*, lens == 3.7.*, mtl == 2.1.*, optparse-applicative == 0.4.*     Default-extensions:     TemplateHaskell, TupleSections     Default-Language:       Haskell2010