On the Subject of ASCII Mazes

Why is it called ASCII?

The screen on the bottom of the module can be scrolled through to obtain 12 characters which are delimited by . Use the following table* to convert these characters to binary. Call this 96-bit binary value the main code.

NUL
00000000
SOH
00000001
STX
00000010
ETX
00000011
EOT
00000100
ENQ
00000101
ACK
00000110
BEL
00000111
BS
00001000
HT
00001001
LF
00001010
VT
00001011
FF
00001100
CR
00001101
SO
00001110
SI
00001111
DLE
00010000
DC1
00010001
DC2
00010010
DC3
00010011
DC4
00010100
NAK
00010101
SYN
00010110
ETB
00010111
CAN
00011000
EM
00011001
SUB
00011010
ESC
00011011
FS
00011100
GS
00011101
RS
00011110
US
00011111
 
00100000
!
00100001
"
00100010
#
00100011
$
00100100
%
00100101
&
00100110
'
00100111
(
00101000
)
00101001
*
00101010
+
00101011
,
00101100
-
00101101
.
00101110
/
00101111
0
00110000
1
00110001
2
00110010
3
00110011
4
00110100
5
00110101
6
00110110
7
00110111
8
00111000
9
00111001
:
00111010
;
00111011
<
00111100
=
00111101
>
00111110
?
00111111
@
01000000
A
01000001
B
01000010
C
01000011
D
01000100
E
01000101
F
01000110
G
01000111
H
01001000
I
01001001
J
01001010
K
01001011
L
01001100
M
01001101
N
01001110
O
01001111
P
01010000
Q
01010001
R
01010010
S
01010011
T
01010100
U
01010101
V
01010110
W
01010111
X
01011000
Y
01011001
Z
01011010
[
01011011
\
01011100
]
01011101
^
01011110
_
01011111
`
01100000
a
01100001
b
01100010
c
01100011
d
01100100
e
01100101
f
01100110
g
01100111
h
01101000
i
01101001
j
01101010
k
01101011
l
01101100
m
01101101
n
01101110
o
01101111
p
01110000
q
01110001
r
01110010
s
01110011
t
01110100
u
01110101
v
01110110
w
01110111
x
01111000
y
01111001
z
01111010
{
01111011
|
01111100
}
01111101
~
01111110
DEL
01111111
Ç
10000000
ü
10000001
é
10000010
â
10000011
ä
10000100
à
10000101
å
10000110
ç
10000111
ê
10001000
ë
10001001
è
10001010
ï
10001011
î
10001100
ì
10001101
Ä
10001110
Å
10001111
É
10010000
æ
10010001
Æ
10010010
ô
10010011
ö
10010100
ò
10010101
û
10010110
ù
10010111
ÿ
10011000
Ö
10011001
Ü
10011010
ø
10011011
£
10011100
Ø
10011101
×
10011110
ƒ
10011111
á
10100000
í
10100001
ó
10100010
ú
10100011
ñ
10100100
Ñ
10100101
ª
10100110
º
10100111
¿
10101000
®
10101001
¬
10101010
½
10101011
¼
10101100
¡
10101101
«
10101110
»
10101111
10110000
10110001
10110010
10110011
10110100
Á
10110101
Â
10110110
À
10110111
©
10111000
10111001
10111010
10111011
10111100
¢
10111101
¥
10111110
10111111
11000000
11000001
11000010
11000011
11000100
11000101
ã
11000110
Ã
11000111
11001000
11001001
11001010
11001011
11001100
11001101
11001110
¤
11001111
ð
11010000
Ð
11010001
Ê
11010010
Ë
11010011
È
11010100
ı
11010101
Í
11010110
Î
11010111
Ï
11011000
11011001
11011010
11011011
11011100
¦
11011101
Ì
11011110
11011111
Ó
11100000
ß
11100001
Ô
11100010
Ò
11100011
õ
11100100
Õ
11100101
µ
11100110
þ
11100111
Þ
11101000
Ú
11101001
Û
11101010
Ù
11101011
ý
11101100
Ý
11101101
¯
11101110
´
11101111
11110000
±
11110001
11110010
¾
11110011
11110100
§
11110101
÷
11110110
¸
11110111
°
11111000
¨
11111001
·
11111010
¹
11111011
³
11111100
²
11111101
11111110
nbsp
11111111

* This character encoding is DOS Code Page 850.

Disarming the module

  • Take the 7th to 48th bits from the main code. Group these into 7 rows of 6 bits. Number the rows 1–7.
  • Use the color of the top-right LED in the following table to determine which rows need to be horizontally flipped and flip them. Then use the same table to determine whether or not to reverse the order of the rows. The result specifies the vertical walls in a 7×7 maze.
    LED colorblackbluegreencyanredmagentayellowwhite
    Flipnoneevennoneevenalloddallodd
    Reversenonoyesyesnonoyesyes
  • Take the 49th to 90th bits from the main code. Group these into 6 rows of 7 bits. Number the rows 1–6.
  • Use the same table above with the color of the bottom-left LED to determine which rows need horizontal flipping and whether to reverse their order. The result specifies the horizontal walls of the same maze.
  • Interweave the lines in such a way that the 7×7 maze is reconstructed. Note that the first vertical wall of each row is horizontally in between the first and second horizontal wall columns; similarly, the first horizontal wall of each column is between the first two vertical wall rows.
  • Call the first 3 bits of the main code a and the next 3 bits b. Use the color of the top-left LED in the following table to obtain your starting position in the maze. The first value is the 0-based x-coordinate (column), the second is the 0-based y-coordinate (row). A tilde (~) means to negate the three bits.
    blackbluegreencyanredmagentayellowwhite
    (a, b)(b, a)(a, ~b)(b, ~a)(~a, b)(~b, a)(~a, ~b)(~b, ~a)
  • Use the last six bits of the main code and the color of the bottom-right LED in the same way to obtain your goal position in the maze.
  • Navigate the maze using the arrow buttons on the module. When you are on the goal position, press the green button with a target symbol to submit. The module is disarmed if the position is correct. Otherwise, a strike is incurred.
  • The red button with an exclamation mark can be used to reset your position in the maze to the starting position.