Introduction
A code page maps integer values to a specific character. We can visualize a code page like this:
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | 0 | q | w | e | r | t | z | u | i | o | p | a | s | d | f | g | j | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | 1 | k | l | y | x | c | v | b | n | m | Q | W | E | R | T | Z | U | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | 2 | I | O | P | A | S | D | F | G | H | J | | | | | | | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
The rows specify the first digit and the columns the second digit of the hex-number.
The Challenge
Given a string of 16-255 unique characters, output the corresponding code page using the zero-based index of each character in the string as it's value.
The input qwertzuiopasdfgjklyxcvbnmQWERTZUIOPASDFGHJ
for example would yield the table above.
- The output has to be in the exact same format as the table above. Only a trailing newline is optional.
- If the input length is not a multiple of 16, you need to start a new row for the remaining characters and leave the unused cells empty (=filled with 3 spaces).
- Each character is placed exactly in the middle of a cell, padded by one space to the left and right.
- The values in the first row and column are given by hex-numbers with the digits
0123456789ABCDEF
. Those are padded with one space to the left and right as well. You may choose to use lowercase hex-digits but you need to stick to one. - The only characters present in the output are hyphens
-
, pluses+
, pipes|
, spaces - Any builtins that are related to ASCII-art tables or trivialize the problem in any way are forbidden.
- You may assume that the input consists only of characters of a specific encoding. Please specify if that is the case.
- If your language can only handle ASCII input, you may assume ASCII-only input and repeated characters.
Rules
- Function or full program allowed.
- Default rules for input/output.
- Standard loopholes apply.
- This is code-golf, so lowest byte-count wins. Tiebreaker is earlier submission.
Happy Coding!