X-Git-Url: https://git.njae.me.uk/?a=blobdiff_plain;f=advent02.hs;h=d4abc555865e2af68e70d161f441f9edd7e6a199;hb=4ed1e3133856105db52d16c8f6adb60b1ebde920;hp=25b78c82c3108f98434a7e34fc36526ce9df91fb;hpb=b1d663fdda2262036e9580b326e7e1b1d058b8d8;p=advent-of-code-16.git diff --git a/advent02.hs b/advent02.hs index 25b78c8..d4abc55 100644 --- a/advent02.hs +++ b/advent02.hs @@ -1,14 +1,16 @@ +module Main(main) where + import Data.Array.IArray -- Row 1 is top, column 1 is left type Position = (Int, Int) type Keyboard = Array Position Char -kb1 = [['x', 'x', 'x', 'x', 'x'], - ['x', '1', '2', '3', 'x'], - ['x', '4', '5', '6', 'x'], - ['x', '7', '8', '9', 'x'], - ['x', 'x', 'x', 'x', 'x']] +kb1 = ["xxxxx", + "x123x", + "x456x", + "x789x", + "xxxxx"] kb2 = ["xxxxxxx", "xxx1xxx", @@ -21,7 +23,7 @@ kb2 = ["xxxxxxx", enumerate = zip [0..] mkKeyboard :: [String] -> Keyboard -mkKeyboard kb = array ((0, 0), (length kb - 1, length kb - 1)) +mkKeyboard kb = array ((0, 0), (length kb - 1, length (kb!!0) - 1)) [((i, j), c) | (i, r) <- enumerate kb, (j, c) <- enumerate r] keyboard1 = mkKeyboard kb1