|
|
@ -15,7 +15,7 @@ |
|
|
|
/// Coincidentally, log(32, 29334498) is approximately equal to 4.96, so using
|
|
|
|
/// 5-bit base32 can make good use of space, so any valid klotski cases can be
|
|
|
|
/// represented by a 5-bit length code. As in CommonCode, the characters here
|
|
|
|
/// are case insensitive, but uppercase is still recommended.
|
|
|
|
/// are case-insensitive, but uppercase is still recommended.
|
|
|
|
|
|
|
|
/// Compared with the CommonCode, although ShortCode saves space, it completely
|
|
|
|
/// loses readability. The former can directly get the case without the help of
|
|
|
@ -24,47 +24,39 @@ |
|
|
|
/// cases, either verbally or handwritten.
|
|
|
|
|
|
|
|
/// ShortCode Convert Table ///
|
|
|
|
/// ------------------------------------------------- ///
|
|
|
|
/// | 00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | ///
|
|
|
|
/// | `1` | `2` | `3` | `4` | `5` | `6` | `7` | `8` | ///
|
|
|
|
/// |-----------------------------------------------| ///
|
|
|
|
/// | 08 | 09 | 10 | 11 | 12 | 13 | 14 | 15 | ///
|
|
|
|
/// | `9` | `A` | `B` | `C` | `D` | `E` | `F` | `G` | ///
|
|
|
|
/// |-----------------------------------------------| ///
|
|
|
|
/// | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | ///
|
|
|
|
/// | `H` | `J` | `K` | `M` | `N` | `P` | `Q` | `R` | ///
|
|
|
|
/// |-----------------------------------------------| ///
|
|
|
|
/// | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | ///
|
|
|
|
/// | `S` | `T` | `U` | `V` | `W` | `X` | `Y` | `Z` | ///
|
|
|
|
/// ------------------------------------------------- ///
|
|
|
|
|
|
|
|
/// ------------------------------------------------------------------------------------------ ///
|
|
|
|
/// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ ///
|
|
|
|
/// │ 00 │ 01 │ 02 │ 03 │ 04 │ 05 │ 06 │ 07 │ ///
|
|
|
|
/// │ `1` │ `2` │ `3` │ `4` │ `5` │ `6` │ `7` │ `8` │ ///
|
|
|
|
/// ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ ///
|
|
|
|
/// │ 08 │ 09 │ 10 │ 11 │ 12 │ 13 │ 14 │ 15 │ ///
|
|
|
|
/// │ `9` │ `A` │ `B` │ `C` │ `D` │ `E` │ `F` │ `G` │ ///
|
|
|
|
/// ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ ///
|
|
|
|
/// │ 16 │ 17 │ 18 │ 19 │ 20 │ 21 │ 22 │ 23 │ ///
|
|
|
|
/// │ `H` │ `J` │ `K` │ `M` │ `N` │ `P` │ `Q` │ `R` │ ///
|
|
|
|
/// ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ ///
|
|
|
|
/// │ 24 │ 25 │ 26 │ 27 │ 28 │ 29 │ 30 │ 31 │ ///
|
|
|
|
/// │ `S` │ `T` │ `U` │ `V` │ `W` │ `X` │ `Y` │ `Z` │ ///
|
|
|
|
/// └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ ///
|
|
|
|
|
|
|
|
/// ------------------------------------------------------------------------------------------------ ///
|
|
|
|
/// Eg1: ///
|
|
|
|
/// % # # % ///
|
|
|
|
/// % # # % ///
|
|
|
|
/// @ $ $ @ CommonCode = 0x1A9BF0C00 (index 4091296) ///
|
|
|
|
/// @ & * @ ///
|
|
|
|
/// * & ///
|
|
|
|
/// ///
|
|
|
|
/// 4091296 => 3 * (32 ^ 4) + 28 * (32 ^ 3) + 27 * (32 ^ 2) + 13 * (32 ^ 1) + 0 * (32 ^ 0) ///
|
|
|
|
/// => (3), (28), (27), (13), (0) ///
|
|
|
|
/// => `4`, `W`, `V`, `E`, `1` ///
|
|
|
|
/// => "4WVE1" ///
|
|
|
|
/// ------------------------------------------------------------------------------------------ ///
|
|
|
|
|
|
|
|
/// -------------------------------------------------------------------------------------------- ///
|
|
|
|
/// ┏━┳━━━┳━┓ CommonCode = 0x1A9BF0C00 (index 4091296) ///
|
|
|
|
/// ┃ ┃ ┃ ┃ ShortCode = 4091296 ///
|
|
|
|
/// ┣━╋━━━╋━┫ => 3 * (32 ^ 4) + 28 * (32 ^ 3) + 27 * (32 ^ 2) + 13 * (32 ^ 1) + 0 * (32 ^ 0) ///
|
|
|
|
/// ┃ ┣━┳━┫ ┃ => (3), (28), (27), (13), (0) ///
|
|
|
|
/// ┣━╋━┻━╋━┫ => `4`, `W`, `V`, `E`, `1` ///
|
|
|
|
/// ┗━┛ ┗━┛ => "4WVE1" ///
|
|
|
|
/// ------------------------------------------------------------------------------------------------ ///
|
|
|
|
|
|
|
|
/// ------------------------------------------------------------------------------------------------- ///
|
|
|
|
/// Eg2: ///
|
|
|
|
/// * @ & % ///
|
|
|
|
/// # # $ % ///
|
|
|
|
/// # # $ ^ CommonCode = 0x4FEA13400 (index 10399732) ///
|
|
|
|
/// ~ ~ ^ ///
|
|
|
|
/// @ % % ///
|
|
|
|
/// ///
|
|
|
|
/// 10399732 => 9 * (32 ^ 4) + 29 * (32 ^ 3) + 11 * (32 ^ 2) + 31 * (32 ^ 1) + 20 * (32 ^ 0) ///
|
|
|
|
/// => (9), (29), (11), (31), (20) ///
|
|
|
|
/// => `A`, `X`, `C`, `Z`, `N` ///
|
|
|
|
/// => "AXCZN" ///
|
|
|
|
/// -------------------------------------------------------------------------------------------- ///
|
|
|
|
/// ┏━┳━┳━┳━┓ CommonCode = 0x4FEA13400 (index 10399732) ///
|
|
|
|
/// ┣━┻━╋━┫ ┃ ShortCode = 10399732 ///
|
|
|
|
/// ┃ ┃ ┣━┫ => 9 * (32 ^ 4) + 29 * (32 ^ 3) + 11 * (32 ^ 2) + 31 * (32 ^ 1) + 20 * (32 ^ 0) ///
|
|
|
|
/// ┗━┳━┻━┫ ┃ => (9), (29), (11), (31), (20) ///
|
|
|
|
/// ┣━┳━┻━┫ => `A`, `X`, `C`, `Z`, `N` ///
|
|
|
|
/// ┗━┻━━━┛ => "AXCZN" ///
|
|
|
|
/// ------------------------------------------------------------------------------------------------- ///
|
|
|
|
|
|
|
|
#pragma once |
|
|
|
|
|
|
|