diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/Chelleport.hs | 3 | ||||
| -rw-r--r-- | src/Chelleport/KeySequence.hs | 12 |
2 files changed, 9 insertions, 6 deletions
diff --git a/src/Chelleport.hs b/src/Chelleport.hs index f34bf27..74c61e7 100644 --- a/src/Chelleport.hs +++ b/src/Chelleport.hs @@ -6,7 +6,6 @@ import Chelleport.KeySequence (eventToKeycode, generateKeyCells, isValidKey, nex import Control.Monad (forM_, unless, void) import Data.IORef (modifyIORef', newIORef, readIORef) import Data.List (isPrefixOf) -import Data.Text (splitOn) import qualified Data.Text as Text import qualified SDL import Unsafe.Coerce (unsafeCoerce) @@ -34,7 +33,7 @@ initialState _ctx = do where rows = 16 columns = 16 - hintKeys = "ABCDEFGIMNOPRSTUVWXYZ" + hintKeys = "ABCDEFGHIJKLMNOPRSTUVWXYZ1234567890" render :: State -> DrawContext -> IO () render state ctx = do 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' |
