package net.northking.cctp.element.mobile.enums;

import java.util.HashMap;
import java.util.Map;

public class PasswordKeyMove {

    //字符-偏移数编码（十位为y轴偏移数，个位为x轴偏移数）
    private final static Map<String, String> LETTER_MAP;

    static {
        LETTER_MAP = new HashMap<>();
        LETTER_MAP.put("数字", "-16");
        LETTER_MAP.put("字符", "-17");
        LETTER_MAP.put("字母", "-17");
        //字母+数字
        LETTER_MAP.put("1", "0");
        LETTER_MAP.put("2", "1");
        LETTER_MAP.put("3", "2");
        LETTER_MAP.put("4", "3");
        LETTER_MAP.put("5", "4");
        LETTER_MAP.put("6", "5");
        LETTER_MAP.put("7", "6");
        LETTER_MAP.put("8", "7");
        LETTER_MAP.put("9", "8");
        LETTER_MAP.put("0", "9");
        LETTER_MAP.put("q", "10");
        LETTER_MAP.put("w", "11");
        LETTER_MAP.put("e", "12");
        LETTER_MAP.put("r", "13");
        LETTER_MAP.put("t", "14");
        LETTER_MAP.put("y", "15");
        LETTER_MAP.put("u", "16");
        LETTER_MAP.put("i", "17");
        LETTER_MAP.put("o", "18");
        LETTER_MAP.put("p", "19");
        LETTER_MAP.put("a", "20");
        LETTER_MAP.put("s", "21");
        LETTER_MAP.put("d", "22");
        LETTER_MAP.put("f", "23");
        LETTER_MAP.put("g", "24");
        LETTER_MAP.put("h", "25");
        LETTER_MAP.put("j", "26");
        LETTER_MAP.put("k", "27");
        LETTER_MAP.put("l", "28");
        LETTER_MAP.put("删除", "29");
        LETTER_MAP.put("大写", "30");
        LETTER_MAP.put("z", "31");
        LETTER_MAP.put("x", "32");
        LETTER_MAP.put("c", "33");
        LETTER_MAP.put("v", "34");
        LETTER_MAP.put("b", "35");
        LETTER_MAP.put("n", "36");
        LETTER_MAP.put("m", "37");
        LETTER_MAP.put("登录", "38");

        //字符
        LETTER_MAP.put("!", "0");
        LETTER_MAP.put("@", "1");
        LETTER_MAP.put("#", "2");
        LETTER_MAP.put("$", "3");
        LETTER_MAP.put("%", "4");
        LETTER_MAP.put("^", "5");
        LETTER_MAP.put("&", "6");
        LETTER_MAP.put("*", "7");
        LETTER_MAP.put("(", "8");
        LETTER_MAP.put(")", "9");
        LETTER_MAP.put("'", "10");
        LETTER_MAP.put("\"", "11");
        LETTER_MAP.put("=", "12");
        LETTER_MAP.put("_", "13");
        LETTER_MAP.put(":", "14");
        LETTER_MAP.put(";", "15");
        LETTER_MAP.put(",", "16");
        LETTER_MAP.put(".", "17");
        LETTER_MAP.put("?", "18");
        LETTER_MAP.put("|", "19");
        LETTER_MAP.put("+", "20.5");
        LETTER_MAP.put("-", "21.5");
        LETTER_MAP.put("\\", "22.5");
        LETTER_MAP.put("/", "23.5");
        LETTER_MAP.put("[", "24.5");
        LETTER_MAP.put("]", "25.5");
        LETTER_MAP.put("{", "26.5");
        LETTER_MAP.put("}", "27.5");
        LETTER_MAP.put("~", "30");
        LETTER_MAP.put("`", "31");
        LETTER_MAP.put("<", "32");
        LETTER_MAP.put(">", "33");
        LETTER_MAP.put(" ", "34");
    }

    public static String getCode(String character) {
        return LETTER_MAP.get(character);
    }
}
