-
Notifications
You must be signed in to change notification settings - Fork 10
/
charactertransformers.py
245 lines (234 loc) · 16 KB
/
charactertransformers.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
# TODO: alphabe
RotateHalfRight = {
"|": "/", "-": "\\", "/": "-", "\\": "|", "│": "╱", "─": "╲", "╱": "─",
"╲": "│"
}
RotateHalfLeft = {
"|": "\\", "-": "/", "/": "|", "\\": "-", "│": "╲", "─": "╱", "╱": "│",
"╲": "─"
}
RotateThreeHalvesRight = {
"|": "\\", "-": "/", "/": "|", "\\": "-", "│": "╲", "─": "╱", "╱": "│",
"╲": "─"
}
RotateThreeHalvesLeft = {
"|": "/", "-": "\\", "/": "-", "\\": "|", "│": "╱", "─": "╲", "╱": "─",
"╲": "│"
}
RotateRight = {
"-": "|", "|": "-", "\\": "/", "/": "\\", "╲": "╱", "╱": "╲",
"─": "│", "│": "─", "━": "┃", "┃": "━", "╌": "╎", "╎": "╌",
"╍": "╏", "╏": "╍", "┄": "┆", "┆": "┄", "┅": "┇", "┇": "┅",
"┈": "┊", "┊": "┈", "┉": "┋", "┋": "┉", "═": "║", "║": "═",
"┐": "┘", "┘": "└", "┌": "┐", "└": "┌", "┒": "┙", "┚": "┕",
"┎": "┑", "┖": "┍", "┑": "┚", "┙": "┖", "┍": "┒", "┕": "┎",
"┓": "┛", "┛": "┗", "┏": "┓", "┗": "┏", "├": "┬", "┬": "┤",
"┤": "┴", "┴": "├", "┝": "┰", "┰": "┥", "┥": "┸", "┸": "┝",
"┞": "┮", "┮": "┧", "┧": "┵", "┵": "┞", "┟": "┭", "┭": "┦",
"┦": "┶", "┶": "┟", "┠": "┯", "┯": "┨", "┨": "┷", "┷": "┠",
"┡": "┲", "┲": "┪", "┪": "┹", "┹": "┡", "┢": "┱", "┱": "┩",
"┩": "┺", "┺": "┢", "┣": "┳", "┳": "┫", "┫": "┻", "┻": "┣",
"┽": "╀", "╀": "┾", "┾": "╁", "╁": "┽", "┿": "╂", "╂": "┿",
"╃": "╄", "╄": "╆", "╆": "╅", "╅": "╃", "╇": "╊", "╊": "╈",
"╈": "╉", "╉": "╇", "╒": "╖", "╖": "╛", "╛": "╙", "╙": "╒",
"╓": "╕", "╕": "╜", "╜": "╘", "╘": "╓", "╔": "╗", "╗": "╝",
"╝": "╚", "╚": "╔", "╞": "╥", "╥": "╡", "╡": "╨", "╨": "╞",
"╟": "╤", "╤": "╢", "╢": "╧", "╧": "╟", "╠": "╦", "╦": "╣",
"╣": "╩", "╩": "╠", "╪": "╫", "╫": "╪", "╭": "╮", "╮": "╯",
"╯": "╰", "╰": "╭", "╴": "╵", "╵": "╶", "╶": "╷", "╷": "╴",
"╸": "╹", "╹": "╺", "╺": "╻", "╻": "╸", "╼": "╽", "╽": "╾",
"╾": "╿", "╿": "╼"
}
RotateLeft = {
"-": "|", "|": "-", "\\": "/", "/": "\\", "╲": "╱", "╱": "╲",
"─": "│", "│": "─", "━": "┃", "┃": "━", "╌": "╎", "╎": "╌",
"╍": "╏", "╏": "╍", "┄": "┆", "┆": "┄", "┅": "┇", "┇": "┅",
"┈": "┊", "┊": "┈", "┉": "┋", "┋": "┉", "═": "║", "║": "═",
"┐": "┌", "┘": "┐", "┌": "└", "└": "┘", "┒": "┍", "┚": "┑",
"┎": "┕", "┖": "┙", "┑": "┎", "┙": "┒", "┍": "┖", "┕": "┚",
"┓": "┏", "┛": "┓", "┏": "┗", "┗": "┛", "├": "┴", "┬": "├",
"┤": "┬", "┴": "┤", "┝": "┸", "┰": "┝", "┥": "┰", "┸": "┥",
"┞": "┵", "┮": "┞", "┧": "┮", "┵": "┧", "┟": "┶", "┭": "┟",
"┦": "┭", "┶": "┦", "┠": "┷", "┯": "┠", "┨": "┯", "┷": "┨",
"┡": "┹", "┲": "┡", "┪": "┲", "┹": "┪", "┢": "┺", "┱": "┢",
"┩": "┱", "┺": "┩", "┣": "┻", "┳": "┣", "┫": "┳", "┻": "┫",
"┽": "╁", "╀": "┽", "┾": "╀", "╁": "┾", "┿": "╂", "╂": "┿",
"╃": "╅", "╄": "╃", "╆": "╄", "╅": "╆", "╇": "╉", "╊": "╇",
"╈": "╊", "╉": "╈", "╒": "╙", "╖": "╒", "╛": "╖", "╙": "╛",
"╓": "╘", "╕": "╓", "╜": "╕", "╘": "╜", "╔": "╚", "╗": "╔",
"╝": "╗", "╚": "╝", "╞": "╨", "╥": "╞", "╡": "╥", "╨": "╡",
"╟": "╧", "╤": "╟", "╢": "╤", "╧": "╢", "╠": "╩", "╦": "╠",
"╣": "╦", "╩": "╣", "╪": "╫", "╫": "╪", "╭": "╰", "╮": "╭",
"╯": "╮", "╰": "╯", "╴": "╷", "╵": "╴", "╶": "╵", "╷": "╶",
"╸": "╻", "╹": "╸", "╺": "╹", "╻": "╺", "╼": "╿", "╽": "╼",
"╾": "╽", "╿": "╾"
}
RotateDown = {
"b": "q", "d": "p", "p": "d", "q": "b", "6": "9", "9": "6",
"{": "}", "}": "{", "[": "]", "]": "[", "<": ">", ">": "<",
"(": ")", ")": "(", "┐": "└", "┘": "┌", "┌": "┘", "└": "┐",
"┒": "┖", "┚": "┎", "┎": "┚", "┖": "┒", "┑": "┕", "┙": "┍",
"┍": "┙", "┕": "┑", "┓": "┗", "┛": "┏", "┏": "┛", "┗": "┓",
"├": "┤", "┬": "┴", "┤": "├", "┴": "┬", "┝": "┥", "┰": "┸",
"┥": "┝", "┸": "┰", "┞": "┧", "┮": "┵", "┧": "┞", "┵": "┮",
"┟": "┦", "┭": "┶", "┦": "┟", "┶": "┭", "┠": "┨", "┯": "┷",
"┨": "┠", "┷": "┯", "┡": "┪", "┲": "┹", "┪": "┡", "┹": "┲",
"┢": "┩", "┱": "┺", "┩": "┢", "┺": "┺", "┣": "┫", "┳": "┻",
"┫": "┣", "┻": "┳", "┽": "┾", "╀": "╁", "┾": "┽", "╁": "╀",
"╃": "╆", "╄": "╅", "╆": "╃", "╅": "╄", "╇": "╈", "╊": "╉",
"╈": "╇", "╉": "╊", "╒": "╛", "╖": "╙", "╛": "╒", "╙": "╖",
"╓": "╜", "╕": "╘", "╜": "╓", "╘": "╕", "╔": "╝", "╗": "╚",
"╝": "╔", "╚": "╗", "╞": "╡", "╥": "╨", "╡": "╞", "╨": "╥",
"╟": "╢", "╤": "╧", "╢": "╟", "╧": "╤", "╠": "╣", "╦": "╩",
"╣": "╠", "╩": "╦", "╭": "╯", "╮": "╰", "╯": "╭", "╰": "╮",
"╴": "╶", "╵": "╷", "╶": "╴", "╷": "╵", "╸": "╺", "╹": "╻",
"╺": "╸", "╻": "╹", "╼": "╾", "╽": "╿", "╾": "╼", "╿": "╽",
# TODO letters
"n": "u", "u": "n", "⟓": "⟔", "⟔": "⟓",
"⦍": "⦎", "⦎": "⦍", "⦏": "⦐", "⦐": "⦏",
"〈": "〉", "〉": "〈", "⟨": "⟩", "⟩": "⟨", "⁅": "⁆", "⁆": "⁅",
# "⸤": "⸥", "⸥": "⸤",
"⟦": "⟧", "⟧": "⟦", "‹": "›", "›": "‹",
"⌊": "⌉", "⌋": "⌈", "⌈": "⌋", "⌉": "⌊",
# "⌜": "⌝", "⌝": "⌜",
"⸢": "⸥", "⸥": "⸢", "⸤": "⸣", "⸣": "⸤",
"⌜": "⌟", "⌟": "⌜", "⌞": "⌝", "⌝": "⌞",
"⁽": "⁾", "⁾": "⁽", "₍": "₎", "₎": "₍",
"⎸": "⎹", "⎹": "⎸",
"⎛": "⎠", "⎠": "⎛", "⎝": "⎞", "⎞": "⎝",
"⎡": "⎦", "⎦": "⎡", "⎣": "⎤", "⎤": "⎣",
"⎧": "⎭", "⎭": "⎧", "⎩": "⎫", "⎫": "⎩",
"⎬": "⎨", "⎨": "⎬", "⎱": "⎰", "⎰": "⎱",
"⟅": "⟆", "⟆": "⟅", "⟬": "⟭", "⟭": "⟬", "⟮": "⟯", "⟯": "⟮",
"⦃": "⦄", "⦄": "⦃", "⦅": "⦆", "⦆": "⦅", "⦇": "⦈", "⦈": "⦇",
"⦉": "⦊", "⦊": "⦉", "⦋": "⦌", "⦌": "⦋", "⦑": "⦒", "⦒": "⦑",
"「": "」", "」": "「", "⦓": "⦔", "⦔": "⦓", "⦕": "⦖", "⦖": "⦕",
"⦗": "⦘", "⦘": "⦗", "⧘": "⧙", "⧙": "⧘", "⧚": "⧛", "⧛": "⧚",
"⧼": "⧽", "⧽": "⧼", "❨": "❩", "❩": "❨", "❪": "❫", "❫": "❪",
"❬": "❭", "❭": "❬", "❰": "❱", "❱": "❰", "❮": "❯", "❯": "❮",
"❲": "❳", "❳": "❲", "❴": "❵", "❵": "❴", "﴿": "﴾", "﴾": "﴿",
"᚛": "᚜", "᚜": "᚛", "⸝": "⸍", "⸍": "⸝", "⸌": "⸜", "⸜": "⸌",
"『": "』", "』": "『", "⸦": "⸧", "⸧": "⸦", "⸨": "⸩", "⸩": "⸨",
"〔": "〕", "〕": "〔", "〖": "〗", "〗": "〖", "〘": "〙", "〙": "〘",
"〚": "〛", "〛": "〚", "《": "》", "》": "《", "【": "】", "】": "【",
"(": ")", ")": "(", "[": "]", "]": "[", "<": ">", ">": "<",
"{": "}", "}": "{", "⦅": "⦆", "⦆": "⦅"
}
HorizontalFlip = {
"b": "d", "d": "b", "p": "q", "q": "p",
"{": "}", "}": "{", "[": "]", "]": "[", "<": ">", ">": "<",
"(": ")", ")": "(", "\\": "/", "/": "\\", "╲": "╱", "╱": "╲",
"┐": "┌", "┘": "└", "┌": "┐", "└": "┘", "┒": "┎", "┚": "┖",
"┎": "┒", "┖": "┚", "┑": "┍", "┙": "┕", "┍": "┑", "┕": "┙",
"┓": "┏", "┛": "┗", "┏": "┓", "┗": "┛", "├": "┤", "┤": "├",
"┝": "┥", "┥": "┝", "┞": "┦", "┮": "┭", "┧": "┟", "┵": "┶",
"┟": "┧", "┭": "┮", "┦": "┞", "┶": "┵", "┠": "┨", "┨": "┠",
"┡": "┩", "┲": "┱", "┪": "┢", "┹": "┺", "┢": "┪", "┱": "┲",
"┩": "┡", "┺": "┹", "┣": "┫", "┫": "┣", "┽": "┾", "┾": "┽",
"╃": "╄", "╄": "╃", "╆": "╅", "╅": "╆", "╊": "╉", "╉": "╊",
"╒": "╕", "╖": "╓", "╛": "╘", "╙": "╜", "╓": "╖", "╕": "╒",
"╜": "╙", "╘": "╛", "╔": "╗", "╗": "╔", "╝": "╚", "╚": "╝",
"╞": "╡", "╡": "╞", "╟": "╢", "╢": "╟", "╠": "╣", "╣": "╠",
"╭": "╮", "╮": "╭", "╯": "╰", "╰": "╯", "╸": "╺", "╺": "╸",
"╼": "╾", "╾": "╼", "〈": "〉", "〉": "〈", "⟨": "⟩", "⟩": "⟨",
"‹": "›", "›": "‹", "⁅": "⁆", "⁆": "⁅", "「": "」", "」": "「",
"⟦": "⟧", "⟧": "⟦", "⌊": "⌋", "⌋": "⌊", "⌈": "⌉", "⌉": "⌈",
"⸢": "⸣", "⸣": "⸢", "⸤": "⸥", "⸥": "⸤", "⌜": "⌝", "⌝": "⌜",
"⌞": "⌟", "⌟": "⌞", "⁽": "⁾", "⁾": "⁽", "₍": "₎", "₎": "₍",
"⎸": "⎹", "⎹": "⎸", "⎛": "⎞", "⎞": "⎛", "⎝": "⎠", "⎠": "⎝",
"⎡": "⎤", "⎤": "⎡", "⎣": "⎦", "⎦": "⎣", "⎧": "⎫", "⎫": "⎧",
"⎩": "⎭", "⎭": "⎩", "⎬": "⎨", "⎨": "⎬", "⎱": "⎰", "⎰": "⎱",
"⟅": "⟆", "⟆": "⟅", "⟬": "⟭", "⟭": "⟬", "⟮": "⟯", "⟯": "⟮",
"⦃": "⦄", "⦄": "⦃", "⦅": "⦆", "⦆": "⦅", "⦇": "⦈", "⦈": "⦇",
"⦉": "⦊", "⦊": "⦉", "⦋": "⦌", "⦌": "⦋", "⦍": "⦐", "⦐": "⦍",
"⦏": "⦎", "⦎": "⦏", "⦑": "⦒", "⦒": "⦑", "⦓": "⦔", "⦔": "⦓",
"⦕": "⦖", "⦖": "⦕", "⦗": "⦘", "⦘": "⦗", "⧘": "⧙", "⧙": "⧘",
"⧚": "⧛", "⧛": "⧚", "⧼": "⧽", "⧽": "⧼", "❨": "❩", "❩": "❨",
"❪": "❫", "❫": "❪", "❬": "❭", "❭": "❬", "❰": "❱", "❱": "❰",
"❮": "❯", "❯": "❮", "❲": "❳", "❳": "❲", "❴": "❵", "❵": "❴",
"﴿": "﴾", "﴾": "﴿", "᚛": "᚜", "᚜": "᚛", "⸜": "⸝", "⸝": "⸜",
"⸌": "⸍", "⸍": "⸌", "⸂": "⸃", "⸃": "⸂", "⸄": "⸅", "⸅": "⸄",
"⸉": "⸊", "⸊": "⸉", "༺": "༻", "༻": "༺", "༼": "༽", "༽": "༼",
"⸦": "⸧", "⸧": "⸦", "⸨": "⸩", "⸩": "⸨", "〔": "〕", "〕": "〔",
"〖": "〗", "〗": "〖", "〘": "〙", "〙": "〘", "〚": "〛", "〛": "〚",
"《": "》", "》": "《", "【": "】", "】": "【", "(": ")", ")": "(",
"[": "]", "]": "[", "<": ">", ">": "<", "{": "}", "}": "{",
"⦅": "⦆", "⦆": "⦅"
}
VerticalFlip = {
"b": "p", "d": "q", "p": "b", "q": "d",
"\\": "/", "/": "\\", "╲": "╱", "╱": "╲",
"┐": "┘", "┘": "┐", "┌": "└", "└": "┌",
"┒": "┚", "┚": "┒", "┎": "┖", "┖": "┎", "┑": "┙", "┙": "┑",
"┍": "┕", "┕": "┍",
"┓": "┛", "┛": "┓", "┏": "┗", "┗": "┏",
"┬": "┴", "┴": "┬", "┰": "┸", "┸": "┰",
"┞": "┟", "┮": "┶", "┧": "┦", "┵": "┭", "┟": "┞", "┭": "┵",
"┦": "┧", "┶": "┮",
"┯": "┷", "┷": "┯",
"┡": "┢", "┲": "┺", "┪": "┩", "┹": "┱", "┢": "┡", "┱": "┹",
"┩": "┪", "┺": "┲",
"┳": "┻", "┻": "┳", "╀": "╁", "╁": "╀",
"╃": "╅", "╄": "╆", "╆": "╄", "╅": "╃",
"╇": "╈", "╈": "╇",
"╒": "╘", "╖": "╜", "╛": "╕", "╙": "╓", "╓": "╙", "╕": "╛",
"╜": "╖", "╘": "╒",
"╔": "╚", "╗": "╝", "╝": "╗", "╚": "╔",
"╥": "╨", "╨": "╥", "╤": "╧", "╧": "╤", "╦": "╩", "╩": "╦",
"╭": "╰", "╮": "╯", "╯": "╮", "╰": "╭",
"╹": "╻", "╻": "╹", "╽": "╿", "╿": "╽",
"︿": "﹀", "﹀": "︿", "︽": "︾", "︾": "︽", "⎛": "⎝", "⎝": "⎛",
"⎞": "⎠", "⎠": "⎞", "⎡": "⎣", "⎣": "⎡", "⎤": "⎦", "⎦": "⎤",
"⎧": "⎩", "⎩": "⎧", "⎫": "⎭", "⎭": "⎫", "⎱": "⎰", "⎰": "⎱",
"⎴": "⎵", "⎵": "⎴", "⏜": "⏝", "⏝": "⏜", "⏞": "⏟", "⏟": "⏞",
"⏠": "⏡", "⏡": "⏠", "⦍": "⦏", "⦏": "⦍", "⦐": "⦎", "⦎": "⦐",
"⸜": "⸍", "⸍": "⸜", "⸝": "⸌", "⸌": "⸝", "⸉": "⸊", "⸊": "⸉",
}
NWSEFlip = {
"-": "|", "|": "-",
"─": "│", "│": "─", "━": "┃", "┃": "━", "╌": "╎", "╎": "╌",
"╍": "╏", "╏": "╍", "┄": "┆", "┆": "┄", "┅": "┇", "┇": "┅",
"┈": "┊", "┊": "┈", "┉": "┋", "┋": "┉", "═": "║", "║": "═",
"┐": "└", "└": "┐",
"┒": "┕", "┚": "┙", "┎": "┍", "┖": "┑", "┑": "┖", "┙": "┚",
"┍": "┎", "┕": "┒",
"┓": "┗", "┗": "┓", "├": "┬", "┬": "├", "┤": "┴", "┴": "┤",
"┝": "┸", "┰": "┥", "┥": "┰", "┸": "┝",
"┞": "┭", "┮": "┟", "┧": "┶", "┵": "┦", "┟": "┮", "┭": "┞",
"┦": "┵", "┶": "┧",
"┠": "┯", "┯": "┠", "┨": "┷", "┷": "┨",
"┡": "┱", "┲": "┢", "┪": "┺", "┹": "┩", "┢": "┲", "┱": "┡",
"┩": "┹", "┺": "┪",
"┣": "┳", "┳": "┣", "┫": "┻", "┻": "┫",
"┽": "╀", "╀": "┽", "┾": "╁", "╁": "┾",
"┿": "╂", "╂": "┿", "╄": "╅", "╅": "╄",
"╇": "╉", "╊": "╈", "╈": "╊", "╉": "╇",
"╒": "╓", "╖": "╘", "╛": "╜", "╙": "╕", "╓": "╒", "╕": "╙",
"╜": "╛", "╘": "╖",
"╗": "╚", "╚": "╗", "╞": "╥", "╥": "╞", "╡": "╨", "╨": "╡",
"╟": "╤", "╤": "╟", "╢": "╧", "╧": "╢",
"╠": "╦", "╦": "╠", "╣": "╩", "╩": "╣", "╪": "╫", "╫": "╪",
"╮": "╰", "╰": "╮", "╸": "╹", "╹": "╸", "╺": "╻", "╻": "╺",
"╼": "╽", "╽": "╼", "╾": "╿", "╿": "╾"
}
NESWFlip = {
"-": "|", "|": "-",
"─": "│", "│": "─", "━": "┃", "┃": "━", "╌": "╎", "╎": "╌",
"╍": "╏", "╏": "╍", "┄": "┆", "┆": "┄", "┅": "┇", "┇": "┅",
"┈": "┊", "┊": "┈", "┉": "┋", "┋": "┉", "═": "║", "║": "═",
"┘": "┌", "┌": "┘", "┒": "┑", "┚": "┍", "┎": "┍", "┖": "┕",
"┑": "┒", "┙": "┎", "┍": "┚", "┕": "┖", "┛": "┏", "┏": "┛",
"├": "┴", "┬": "┤", "┤": "┬", "┴": "├", "┝": "┰", "┰": "┝",
"┥": "┸", "┸": "┥", "┞": "┶", "┮": "┦", "┧": "┭", "┵": "┟",
"┟": "┵", "┭": "┧", "┦": "┮", "┶": "┞", "┠": "┷", "┯": "┨",
"┨": "┯", "┷": "┠", "┡": "┺", "┲": "┩", "┪": "┱", "┹": "┢",
"┢": "┹", "┱": "┪", "┩": "┲", "┺": "┡", "┣": "┻", "┳": "┫",
"┫": "┳", "┻": "┣", "┽": "╁", "╀": "┾", "┾": "╀", "╁": "┽",
"┿": "╂", "╂": "┿", "╃": "╆", "╆": "╃", "╇": "╊", "╊": "╇",
"╈": "╉", "╉": "╈", "╒": "╜", "╖": "╕", "╛": "╓", "╙": "╘",
"╓": "╛", "╕": "╖", "╜": "╒", "╘": "╙", "╔": "╝", "╝": "╔",
"╞": "╨", "╥": "╡", "╡": "╥", "╨": "╞", "╟": "╧", "╤": "╢",
"╢": "╤", "╧": "╟", "╠": "╩", "╦": "╣", "╣": "╦", "╩": "╠",
"╪": "╫", "╫": "╪", "╭": "╯", "╯": "╭", "╸": "╻", "╹": "╺",
"╺": "╹", "╻": "╸", "╼": "╿", "╽": "╾", "╾": "╽", "╿": "╼"
}