{-# LANGUAGE MultiWayIf #-}
module Main where
import Control.Monad (forM_)
import Image.Pixels
import qualified System.Random as R
glyph :: FilePath -> IO ()
glyph fp = do
rs <- fmap R.randoms R.newStdGen
let (w, h) = (3, 3)
(fw, fh) = (w * 2 - 1, h * 2 - 1)
let img = scaleUp 16 $ image black (fw + 2) (fh + 2) $ do
forM_ (zip [1..fw ] (cycle [True,False])) $ \ (x, xConn) ->
forM_ (zip [1..fh] (cycle [True,False])) $ \ (y, yConn) ->
let color = if | xConn && yConn ->
white
| xConn || yConn ->
if rs !! fromIntegral (x + fw * y)
then black
else white
| otherwise ->
black
in draw color x y
savePBM fp img
main :: IO ()
main = do
forM_ [0..15] $ \ n -> do
glyph ("glyph" ++ show n ++ ".pbm")