valuesListToMoves (h:t) moves =
    let
        (xKey, xVal) = getMapItem (stringToValue "x") h
        (yKey, yVal) = getMapItem (stringToValue "y") h
        (vKey, vVal) = getMapItem (stringToValue "v") h
        x = fromJust $ getInt xVal
        y = fromJust $ getInt yVal
        v = fromJust $ getString vVal
    in
        valuesListToMoves t (moves ++ [(Move x y v)])
valuesListToMoves (h:t) moves =
    let
        (xKey, xVal) = getMapItem (stringToValue "x") h
        (yKey, yVal) = getMapItem (stringToValue "y") h
        (vKey, vVal) = getMapItem (stringToValue "v") h
        x = fromJust $ getInt xVal
        y = fromJust $ getInt yVal
        v = fromJust $ getString vVal
    in
        valuesListToMoves t (moves ++ [(Move x y v)])
valuesListToMoves (h:t) moves =
    let
        (xKey, xVal) = getMapItem (stringToValue "x") h
        (yKey, yVal) = getMapItem (stringToValue "y") h
        (vKey, vVal) = getMapItem (stringToValue "v") h
        x = fromJust $ getInt xVal
        y = fromJust $ getInt yVal
        v = fromJust $ getString vVal
    in
        valuesListToMoves t (moves ++ [(Move x y v)])