aboutsummaryrefslogtreecommitdiff
path: root/src/Chelleport/KeySequence.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Chelleport/KeySequence.hs')
-rw-r--r--src/Chelleport/KeySequence.hs12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/Chelleport/KeySequence.hs b/src/Chelleport/KeySequence.hs
index 1d118cd..88658f1 100644
--- a/src/Chelleport/KeySequence.hs
+++ b/src/Chelleport/KeySequence.hs
@@ -24,12 +24,16 @@ generateKeyCells :: (Int, Int) -> [Char] -> [[[Char]]]
generateKeyCells (rows, columns) hintKeys =
(\row -> getCellSeq row <$> [1 .. columns]) <$> [1 .. rows]
where
- getCellSeq x y = [getPrefix1 x y, getPrefix2 x y, getKey x y]
- getKey _row col = hintKeys !! (col `mod` (columns `div` 2))
- getPrefix1 _row col
+ getCellSeq row col = [getPrefixHoriz row col, getPrefixVert row col, getKey row col]
+ getKey row col = hintKeys !! index
+ where
+ index = (secRow * (columns `div` 2) + secCol) `mod` length hintKeys
+ secCol = (col - 1) `mod` (columns `div` 2)
+ secRow = (row - 1) `mod` (rows `div` 2)
+ getPrefixHoriz _row col
| col <= (columns `div` 2) = 'H'
| otherwise = 'L'
- getPrefix2 row _col
+ getPrefixVert row _col
| row <= (rows `div` 2) = 'K'
| otherwise = 'J'