Programing in Haskell / Chapter.9 Excsise(3)

Nimというゲームを作る。画面は割と簡単にできたけど、入力を受け付けてIntに変換ができない!!

> type Row                      = Int
> initialNim                    :: [Row]
> initialNim                    = [9,8,7,6,5,4,3,2,1]
>
> nimToStar                     :: Int -> String
> nimToStar n                   = take n (repeat '*')
>
> putStar                       :: (Pos, Int) -> IO ()
> putStar ((x, y), num)          = writeat (x, y) (nimToStar num)
>
>
> showNim                       :: [Row] -> IO ()
> showNim row                   =  do { cls
>                                     ; putLines pair
>                                     }
>                                     where
>                                       align         = ( (length row) + 30 ) `div` 10
>                                       pair          = zip [1..(length row)] row
>                                       putLines pair = case pair of
>                                                       [] -> return ()
>                                                       ((y, num):rest) -> do { writeat (1,     y) ((show y) ++ ":")
>                                                                             ; writeat (align, y)  (nimToStar num)
>                                                                             ; putLines rest
>                                                                             }