set-cover-0.0.5.1: example/Nonogram/Example.hs
module Nonogram.Example where
import qualified Data.List.HT as ListHT
import qualified Data.List as List
import Data.Char (isSpace)
encodeLines :: [String] -> [[Int]]
encodeLines =
map (filter (>0) . map length . ListHT.chop isSpace)
encodeStrings :: [String] -> ([[Int]], [[Int]])
encodeStrings xs =
(encodeLines xs, encodeLines $ List.transpose xs)
crossRows, crossColumns :: [[Int]]
crossRows =
[1,1] :
[1] :
[1,1] :
[]
crossColumns =
[1,1] :
[1] :
[1,1] :
[]
crossEnc :: ([[Int]], [[Int]])
crossEnc = (crossRows, crossColumns)
rhombus, circle, four, letterP, lambda, bigCircle :: [String]
rhombus =
" X " :
" X X " :
"X X" :
" X X " :
" X " :
[]
circle =
" XXX " :
"XX XX" :
"X X" :
"XX XX" :
" XXX " :
[]
four =
"XX XX" :
"XX XX" :
" " :
" " :
"XX XX" :
"XX XX" :
[]
letterP =
"XXXX " :
"XXXXXX" :
"XX XX" :
"XX XX" :
"XXXXXX" :
"XXXX " :
"XX " :
"XX " :
"XX " :
[]
bigCircle =
" XXXXX " :
" XXX XXX " :
" X X " :
"XX XX" :
"X X" :
"X X" :
"X X" :
"XX XX" :
" X X " :
" XXX XXX " :
" XXXXX " :
[]
lambda =
" XXX " :
" X XX " :
" XX " :
" XX " :
" XXX " :
" XX XX " :
" XX XX " :
" XX XX " :
" XX XX " :
"XX XX X" :
"XX XX " :
[]
soccerRows, soccerColumns :: [[Int]]
soccerRows =
[3] :
[5] :
[3, 1] :
[2, 1] :
[3, 3, 4] :
[2, 2, 7] :
[6, 1, 1] :
[4, 2, 2] :
[1, 1] :
[3, 1] :
[6] :
[2, 7] :
[6, 3, 1] :
[1, 2, 2, 1, 1] :
[4, 1, 1, 3] :
[4, 2, 2] :
[3, 3, 1] :
[3, 3] :
[3] :
[2, 1] :
[]
soccerColumns =
[2] :
[1, 2] :
[2, 3] :
[2, 3] :
[3, 1, 1] :
[2, 1, 1] :
[1, 1, 1, 2, 2] :
[1, 1, 3, 1, 3] :
[2, 6, 4] :
[3, 3, 9, 1] :
[5, 3, 2] :
[3, 1, 2, 2] :
[2, 1, 7] :
[3, 3, 2] :
[2, 4] :
[2, 1, 2] :
[2, 2, 1] :
[2, 2] :
[1] :
[1] :
[]
soccerEnc :: ([[Int]], [[Int]])
soccerEnc = (soccerRows, soccerColumns)