RCDJ2AGX5X4FJ7B7XFLWFVMM6LTVZKTXONYQOYT4JQB7WX5TQPMQC | Just 'H' <- k = z { center = shift v 1 H $ center s }| Just 'J' <- k = z { center = shift v 1 N $ center s }| Just 'K' <- k = z { center = shift v 1 I $ center s }
| Just 'H' <- k = z { center = shift v 1 H $ center s } | Just 'J' <- k = z { center = shift v 1 N $ center s } | Just 'K' <- k = z { center = shift v 1 I $ center s }
| None <- a = rgbColor $ sRGB24 0x66 0x66 0x66 -- #666666| Wall <- a = rgbColor $ sRGB24 0x99 0x99 0x99 -- #999999| Box <- a = rgbColor $ sRGB24 0x66 0x66 0x66 -- #666666| Robot {} <- a , "@" <- name a = rgbColor $ sRGB24 0x66 0x66 0x66 -- #666666
| Nothing <- move a = rgbColor $ sRGB24 0x66 0x66 0x66 -- #666666
push| [d] <- Map.keys $ Map.filterWithKey (\k w -> move w == Just (opposite k)) ns = Just $ opposite d| otherwise = Nothing