This commit is contained in:
Joscha 2018-09-20 19:07:16 +00:00
parent 2a9f7c6f6b
commit dfc628d090
2 changed files with 6 additions and 6 deletions

View file

@ -1,8 +1,8 @@
module Main where
import Control.Monad
import Data.List
import Data.Char
import Data.List
import System.Environment
import System.Exit

View file

@ -60,7 +60,7 @@ buildClassMap n = foldr addWord M.empty . preprocessWords
Nothing -> cmap
Just set -> M.alter (appendWord word) set cmap
appendWord :: String -> Maybe [String] -> Maybe [String]
appendWord word Nothing = Just [word]
appendWord word Nothing = Just [word]
appendWord word (Just ws) = Just $ word : ws
classMapWordCount :: ClassMap -> Int
@ -69,8 +69,8 @@ classMapWordCount = sum . M.map length
{- Basic guessing operations -}
data GuessState = GuessState
{ guessed :: [Guess]
, allWords :: ClassMap
{ guessed :: [Guess]
, allWords :: ClassMap
} deriving (Show)
score :: Class -> Class -> Int
@ -100,7 +100,7 @@ guessState :: ClassMap -> GuessState
guessState cmap = GuessState{guessed=[], allWords=cmap}
addGuess :: Guess -> GuessState -> GuessState
addGuess guess g = g{guessed=guess : (guessed g)}
addGuess guess g = g{guessed=guess : guessed g}
removeGuess :: String -> GuessState -> GuessState
removeGuess w g =
@ -158,7 +158,7 @@ worstCase c cmap =
nextGuesses :: GuessState -> [(Int, [String])]
nextGuesses g =
let pwords = possibleWords g
lpwords = M.map length $ pwords
lpwords = M.map length pwords
pclasses = M.keysSet pwords
options1 = M.assocs $ allWords g
options2 = parMap rdeepseq (\(set, w) -> (set, worstCase set lpwords, w)) options1