packages feed

exact-cover-0.1.0.0: examples/sudoku/Main.hs

module Main where

import Math.ExactCover
import Sudoku

import Control.Monad (forever)


main :: IO ()
main = do
  let f sudokuPuzzleStr =
        case solve . toConstraints . readLineFormat $ sudokuPuzzleStr of
          [] -> putStrLn "No solution."
          soln@(_:_) -> print . convert2SolvedGrid $ soln
  forever $ do
    putStrLn "Enter puzzle in single line format:"
    putStrLn "(e.g. 8..........36......7..9.2...5...7.......457.....1...3...1....68..85...1..9....4..)"
    getLine >>= f