# Jaap's Puzzle Page

The Hexadecimal Puzzle is the very first puzzle made by Binary Arts (now called Think Fun). Unlike all their later puzzles, this one is made of wood. It is closely related to their second puzzle, which was Spinout.

It has a stationary base inside of which is a sliding carriage. On this sliding carriage are 8 switching bars. Each bar has two states, tilted up (0) or down (1). At the start they are all tilted up (00000000), and the aim is to tilt them all down (11111111) so that the carriage can be slid out of the base. The switching bars can only be tilted at one place in the middle of the base, where there is a gate that is opened by pushing in a block piece at the front. However, the block piece has a series of four keys sticking out, so the gate can only be opened if the state of the switching bars to the left of the gate match the pattern of the four blocking keys (and any bars further to the left must be in the down state).

The pattern of the four blocking keys may be changed (by temporarily removing the blocking pin that keeps them fixed), and each of the 16 patterns gives rise to a different puzzle. The easiest key pattern is 1111, because this allows you to switch all bars in order from left to right. This pattern comes in handy when you want to reset the puzzle. The hardest pattern is 1110, which needs 170 moves. This pattern gives a puzzle that is equivalent to Spinout (but with 8 switches).

Like the Spinout puzzle, the Hexadecimal Puzzle was invented by William Keister, patent US 3,637,216 (patent 3,637,215 was for Spinout). Apparently he tried to implement an electronic version of the Chinese Rings, made a mistake in the wiring, producing these variants. He then invented a mechanism to play those variants in physical form. For more details, see the short article on William Keister at puzzles.com.

Here's a table showing the patterns in order of difficulty, together with their solution lengths.

Pattern      Length
11118
011116
000020
101126
100028
010136
010038
001142
110152
110054
101056
001072
0110102
1001118
0001150
1110170

## Solution:

Let me reproduce the hints leaflet that Binary Arts included with their puzzle.

This is a helpful hint we can share with those who might welcome a little assistance in overcoming the puzzle's challenges. As you start, try to think of each blocking key combinationi as eight separate puzzles, one puzzle for each switching bar, starting with the eighth bar (furthest from the exit block). Focus first on how to switch that eighth bar. To get to it and move it, you must first set the other seven slide bars in exactly the right combination in relation to the blocking key pattern and the exit block to allow the gate to open for the eighth bar. If even one of the first seven bars is switched in the wrong direction, the last bar cannot reach the gate, or the gate cannot be opened to switch this bar.

How should you set up the first seven bars? Focus next on the seventh bar. In its current position, would it be blocked by the blocking key which it would oppose when the eighth bar is in the gate to be switched? If so, it must be switched before the eights bar can be switched.

If switching the seventh bar is necessary to switch the eighth bar, focus next on the sixth bar. Would the sixth bar be blocked by its opposite blocking key when the seventh bar is in the gate? If so, it must be switched to switch the seventh bar to switch the eighth bar. Is the fifth bar in proper position when the sixth would be at the gate? The fourth? and on and on.

The essential concept of the puzzle is to concentrate on solving the switching bars furthest from the main block, even though the puzzle constrains most of your actions to the bars nearest the block. Progress made on the near bars must give way to progress made on the farther bars, because the relationship between switching bars and their opposing blocking keys changes with each puzzle, you have to lose some to win some.

After the eighth bar is switched, of course, you are left with a new switching sequence to solve, which now has seven bars which may or may not have to be switched, instead of eight. The process explained above must be repeated, switching the seventh bar to the open position, and then the sixth, etc., until each of the eight bars have been solved in order.

Fortunately, each succeeding bar is easier than the last, because fewer remaining bars get in the way. When only the second and first bars are left, you are almost out of the woods. Out of the woods that is, until you realize that the process must be reversed to get the carriage back in the base for the next would be puzzlesolver to take his or her turn!

One final suggestion. Although resetting the puzzle can be as challenging as solving it, once the puzzle has been solved it is sometimes handy to readjust all the keys to the "1" position. The bars can then be moved back into starting position in order, and the keys repositioned in any arrangement for the next puzzle sequence.

That hints leaflet pretty much explains how to solve the puzzle. It is simply the following steps:

1. Initially, the combination to aim for is 11111111
2. Find the rightmost bar that does not match the combination you are aiming for.
3. If you cannot immediately flip that incorrect bar, work out what the combination should be in order to flip it. This is the new combination to aim for. Then go back to step b with this new aim in mind.
4. If on the other hand you can just flip that incorrect bar, do so.
5. Repeat steps a-d, until the puzzle is solved.

Here's a table showing not just the solution lengths for each key pattern, but also the worst combination, and the number of moves that combination takes to solve.

Pattern      Length      Antipode      Diameter
0000 2011111110 33
000115000000000150
0010 7211111110115
0011 4200000000 42
0100 3811111110 63
0101 3600000000 36
011010211111110161
0111 1600000000 16
1000 2811111110 47
100111800000000118
1010 5611111110 89
1011 2600000000 26
1100 5411111110 85
1101 5200000000 52
111017011111110255
1111 800000000 8

The table shows an interesting repeating pattern. Whenever the key pattern ends in a 1 the worst combination is the starting position, which has all bars set to 0. Otherwise, the worst combination has all but the last bar set to 1.

For completeness, I include full solutions for all 16 key patterns.

Pattern 0000
12345678    Move
0:000000003
1:001000002
2:011000001
3:111000008
4:111000011
5:011000012
6:001000013
7:000000012
8:010000011
9:110000017
10:110000111
11:010000112
12:000000111
13:100000116
14:100001111
15:000001115
16:000011114
17:000111113
18:001111112
19:011111111
20:11111111

Pattern 0001
12345678    Move
0:000000001
1:100000002
2:110000001
3:010000003
4:011000001
5:111000002
6:101000001
7:001000004
8:001100001
9:101100002
10:111100001
11:011100003
12:010100001
13:110100002
14:100100001
15:000100005
16:000110001
17:100110002
18:110110001
19:010110003
20:011110001
21:111110002
22:101110001
23:001110004
24:001010001
25:101010002
26:111010001
27:011010003
28:010010001
29:110010002
30:100010006
31:100011002
32:110011001
33:010011003
34:011011001
35:111011002
36:101011001
37:001011004
38:001111001
39:101111002
40:111111001
41:011111003
42:010111001
43:110111002
44:100111001
45:000111005
46:000101001
47:100101002
48:110101001
49:010101003
50:011101001
51:111101002
52:101101001
53:001101004
54:001001001
55:101001002
56:111001001
57:011001003
58:010001001
59:110001007
60:110001101
61:010001103
62:011001101
63:111001102
64:101001101
65:001001104
66:001101101
67:101101102
68:111101101
69:011101103
70:010101101
71:110101102
72:100101101
73:000101105
74:000111101
75:100111102
76:110111101
77:010111103
78:011111101
79:111111102
80:101111101
81:001111104
82:001011101
83:101011102
84:111011101
85:011011103
86:010011101
87:110011102
88:100011106
89:100010102
90:110010101
91:010010103
92:011010101
93:111010102
94:101010101
95:001010104
96:001110101
97:101110102
98:111110101
99:011110103
100:010110101
101:110110102
102:100110101
103:000110105
104:000100101
105:100100102
106:110100101
107:010100103
108:011100101
109:111100102
110:101100101
111:001100104
112:001000101
113:101000102
114:111000108
115:111000112
116:101000111
117:001000114
118:001100111
119:101100112
120:111100111
121:011100113
122:010100111
123:110100112
124:100100111
125:000100115
126:000110111
127:100110112
128:110110111
129:010110113
130:011110111
131:111110112
132:101110111
133:001110114
134:001010111
135:101010112
136:111010111
137:011010113
138:010010111
139:110010112
140:100010116
141:100011112
142:110011111
143:010011113
144:011011111
145:111011112
146:101011111
147:001011114
148:001111111
149:101111112
150:11111111

Pattern 0010
12345678    Move
0:000000002
1:010000004
2:010100002
3:000100001
4:100100006
5:100101001
6:000101002
7:010101004
8:010001002
9:000001001
10:100001003
11:101001001
12:001001002
13:011001001
14:111001008
15:111001011
16:011001012
17:001001011
18:101001013
19:100001011
20:000001012
21:010001014
22:010101012
23:000101011
24:100101016
25:100100011
26:000100012
27:010100014
28:010000012
29:000000011
30:100000013
31:101000011
32:001000015
33:001010011
34:101010013
35:100010011
36:000010012
37:010010011
38:110010017
39:110010111
40:010010112
41:000010111
42:100010113
43:101010111
44:001010115
45:001000111
46:101000113
47:100000111
48:000000112
49:010000114
50:010100112
51:000100111
52:100100116
53:100101111
54:000101112
55:010101114
56:010001112
57:000001111
58:100001113
59:101001111
60:001001115
61:001011111
62:101011113
63:100011111
64:000011112
65:010011114
66:010111112
67:000111111
68:100111113
69:101111111
70:001111112
71:011111111
72:11111111

Pattern 0011
12345678    Move
0:000000001
1:100000002
2:110000003
3:111000001
4:011000004
5:011100001
6:111100002
7:101100001
8:001100005
9:001110001
10:101110002
11:111110003
12:110110002
13:100110006
14:100111002
15:110111003
16:111111001
17:011111004
18:011011001
19:111011003
20:110011007
21:110011103
22:111011101
23:011011104
24:011111101
25:111111102
26:101111101
27:001111105
28:001101101
29:101101102
30:111101101
31:011101104
32:011001101
33:111001108
34:111001111
35:011001114
36:011101111
37:111101112
38:101101111
39:001101115
40:001111111
41:101111112
42:11111111
Pattern 0100
12345678    Move
0:000000002
1:010000005
2:010010002
3:000010003
4:001010002
5:011010001
6:111010008
7:111010011
8:011010012
9:001010013
10:000010012
11:010010015
12:010000012
13:000000011
14:100000014
15:100100011
16:000100012
17:010100011
18:110100017
19:110100111
20:010100112
21:000100111
22:100100114
23:100000111
24:000000113
25:001000111
26:101000116
27:101001111
28:001001113
29:000001112
30:010001115
31:010011112
32:000011111
33:100011114
34:100111111
35:000111113
36:001111112
37:011111111
38:11111111

Pattern 0101
12345678    Move
0:000000001
1:100000002
2:110000001
3:010000003
4:011000001
5:111000002
6:101000004
7:101100002
8:111100001
9:011100003
10:010100005
11:010110003
12:011110001
13:111110002
14:101110004
15:101010006
16:101011004
17:101111002
18:111111001
19:011111003
20:010111005
21:010101001
22:110101007
23:110101101
24:010101105
25:010111103
26:011111101
27:111111102
28:101111104
29:101011106
30:101010102
31:111010108
32:111010112
33:101010116
34:101011114
35:101111112
36:11111111

Pattern 0110
12345678    Move
0:000000002
1:010000001
2:110000004
3:110100001
4:010100002
5:000100001
6:100100003
7:101100006
8:101101003
9:100101001
10:000101002
11:010101001
12:110101004
13:110001001
14:010001002
15:000001001
16:100001003
17:101001001
18:001001002
19:011001005
20:011011001
21:111011008
22:111011011
23:011011015
24:011001012
25:001001011
26:101001013
27:100001011
28:000001012
29:010001011
30:110001014
31:110101011
32:010101012
33:000101011
34:100101013
35:101101016
36:101100013
37:100100011
38:000100012
39:010100011
40:110100014
41:110000011
42:010000012
43:000000011
44:100000013
45:101000011
46:001000012
47:011000015
48:011010012
49:001010011
50:101010013
51:100010011
52:000010012
53:010010011
54:110010014
55:110110017
56:110110114
57:110010111
58:010010112
59:000010111
60:100010113
61:101010111
62:001010112
63:011010115
64:011000112
65:001000111
66:101000113
67:100000111
68:000000112
69:010000111
70:110000114
71:110100111
72:010100112
73:000100111
74:100100113
75:101100116
76:101101113
77:100101111
78:000101112
79:010101111
80:110101114
81:110001111
82:010001112
83:000001111
84:100001113
85:101001111
86:001001112
87:011001115
88:011011112
89:001011111
90:101011113
91:100011111
92:000011112
93:010011111
94:110011114
95:110111111
96:010111112
97:000111111
98:100111113
99:101111111
100:001111112
101:011111111
102:11111111

Pattern 0111
12345678    Move
0:000000001
1:100000002
2:110000003
3:111000004
4:111100001
5:011100005
6:011110001
7:111110002
8:101110006
9:101111002
10:111111003
11:110111007
12:110111103
13:111111104
14:111011108
15:111011114
16:11111111
Pattern 1000
12345678    Move
0:000000004
1:000100003
2:001100002
3:011100001
4:111100008
5:111100011
6:011100012
7:001100013
8:000100014
9:000000013
10:001000012
11:011000011
12:111000017
13:111000111
14:011000112
15:001000113
16:000000112
17:010000111
18:110000116
19:110001111
20:010001112
21:000001111
22:100001115
23:100011111
24:000011114
25:000111113
26:001111112
27:011111111
28:11111111

Pattern 1001
12345678    Move
0:000000001
1:100000002
2:110000001
3:010000003
4:011000001
5:111000002
6:101000001
7:001000004
8:001100001
9:101100002
10:111100001
11:011100003
12:010100001
13:110100002
14:100100005
15:100110002
16:110110001
17:010110003
18:011110001
19:111110002
20:101110001
21:001110004
22:001010001
23:101010002
24:111010001
25:011010003
26:010010001
27:110010006
28:110011001
29:010011003
30:011011001
31:111011002
32:101011001
33:001011004
34:001111001
35:101111002
36:111111001
37:011111003
38:010111001
39:110111002
40:100111005
41:100101002
42:110101001
43:010101003
44:011101001
45:111101002
46:101101001
47:001101004
48:001001001
49:101001002
50:111001007
51:111001102
52:101001101
53:001001104
54:001101101
55:101101102
56:111101101
57:011101103
58:010101101
59:110101102
60:100101105
61:100111102
62:110111101
63:010111103
64:011111101
65:111111102
66:101111101
67:001111104
68:001011101
69:101011102
70:111011101
71:011011103
72:010011101
73:110011106
74:110010101
75:010010103
76:011010101
77:111010102
78:101010101
79:001010104
80:001110101
81:101110102
82:111110101
83:011110103
84:010110101
85:110110102
86:100110105
87:100100102
88:110100101
89:010100103
90:011100101
91:111100108
92:111100111
93:011100113
94:010100111
95:110100112
96:100100115
97:100110112
98:110110111
99:010110113
100:011110111
101:111110112
102:101110111
103:001110114
104:001010111
105:101010112
106:111010111
107:011010113
108:010010111
109:110010116
110:110011111
111:010011113
112:011011111
113:111011112
114:101011111
115:001011114
116:001111111
117:101111112
118:11111111

Pattern 1010
12345678    Move
0:000000002
1:010000004
2:010100001
3:110100006
4:110101001
5:010101002
6:000101001
7:100101003
8:101101001
9:001101002
10:011101001
11:111101008
12:111101011
13:011101012
14:001101011
15:101101013
16:100101011
17:000101012
18:010101011
19:110101016
20:110100011
21:010100014
22:010000012
23:000000011
24:100000013
25:101000015
26:101010011
27:001010012
28:011010011
29:111010017
30:111010111
31:011010112
32:001010111
33:101010115
34:101000113
35:100000111
36:000000112
37:010000114
38:010100111
39:110100116
40:110101111
41:010101114
42:010001112
43:000001111
44:100001113
45:101001115
46:101011113
47:100011111
48:000011112
49:010011114
50:010111112
51:000111111
52:100111113
53:101111111
54:001111112
55:011111111
56:11111111

Pattern 1011
12345678    Move
0:000000001
1:100000002
2:110000003
3:111000001
4:011000004
5:011100001
6:111100002
7:101100005
8:101110002
9:111110003
10:110110006
11:110111003
12:111111001
13:011111004
14:011011001
15:111011007
16:111011101
17:011011104
18:011111101
19:111111102
20:101111105
21:101101102
22:111101108
23:111101112
24:101101115
25:101111112
26:11111111
Pattern 1100
12345678    Move
0:000000002
1:010000001
2:110000005
3:110010001
4:010010002
5:000010001
6:100010004
7:100110001
8:000110003
9:001110002
10:011110001
11:111110008
12:111110011
13:011110012
14:001110013
15:000110011
16:100110014
17:100010011
18:000010012
19:010010011
20:110010015
21:110000011
22:010000012
23:000000011
24:100000014
25:100100011
26:000100013
27:001100012
28:011100011
29:111100017
30:111100111
31:011100112
32:001100113
33:000100111
34:100100114
35:100000111
36:000000113
37:001000112
38:011000111
39:111000116
40:111001111
41:011001112
42:001001113
43:000001112
44:010001111
45:110001115
46:110011111
47:010011112
48:000011111
49:100011114
50:100111111
51:000111113
52:001111112
53:011111111
54:11111111

Pattern 1101
12345678    Move
0:000000001
1:100000002
2:110000001
3:010000003
4:011000001
5:111000002
6:101000004
7:101100002
8:111100001
9:011100003
10:010100001
11:110100005
12:110110001
13:010110003
14:011110001
15:111110002
16:101110004
17:101010002
18:111010006
19:111011002
20:101011004
21:101111002
22:111111001
23:011111003
24:010111001
25:110111005
26:110101001
27:010101003
28:011101001
29:111101007
30:111101101
31:011101103
32:010101101
33:110101105
34:110111101
35:010111103
36:011111101
37:111111102
38:101111104
39:101011102
40:111011106
41:111010102
42:101010104
43:101110102
44:111110108
45:111110112
46:101110114
47:101010112
48:111010116
49:111011112
50:101011114
51:101111112
52:11111111

Pattern 1110
12345678    Move
0:000000002
1:010000001
2:110000004
3:110100001
4:010100002
5:000100001
6:100100003
7:101100001
8:001100002
9:011100001
10:111100006
11:111101001
12:011101002
13:001101001
14:101101003
15:100101001
16:000101002
17:010101001
18:110101004
19:110001001
20:010001002
21:000001001
22:100001003
23:101001001
24:001001002
25:011001001
26:111001005
27:111011001
28:011011002
29:001011001
30:101011003
31:100011001
32:000011002
33:010011001
34:110011004
35:110111001
36:010111002
37:000111001
38:100111003
39:101111001
40:001111002
41:011111001
42:111111008
43:111111011
44:011111012
45:001111011
46:101111013
47:100111011
48:000111012
49:010111011
50:110111014
51:110011011
52:010011012
53:000011011
54:100011013
55:101011011
56:001011012
57:011011011
58:111011015
59:111001011
60:011001012
61:001001011
62:101001013
63:100001011
64:000001012
65:010001011
66:110001014
67:110101011
68:010101012
69:000101011
70:100101013
71:101101011
72:001101012
73:011101011
74:111101016
75:111100011
76:011100012
77:001100011
78:101100013
79:100100011
80:000100012
81:010100011
82:110100014
83:110000011
84:010000012
85:000000011
86:100000013
87:101000011
88:001000012
89:011000011
90:111000015
91:111010011
92:011010012
93:001010011
94:101010013
95:100010011
96:000010012
97:010010011
98:110010014
99:110110011
100:010110012
101:000110011
102:100110013
103:101110011
104:001110012
105:011110011
106:111110017
107:111110111
108:011110112
109:001110111
110:101110113
111:100110111
112:000110112
113:010110111
114:110110114
115:110010111
116:010010112
117:000010111
118:100010113
119:101010111
120:001010112
121:011010111
122:111010115
123:111000111
124:011000112
125:001000111
126:101000113
127:100000111
128:000000112
129:010000111
130:110000114
131:110100111
132:010100112
133:000100111
134:100100113
135:101100111
136:001100112
137:011100111
138:111100116
139:111101111
140:011101112
141:001101111
142:101101113
143:100101111
144:000101112
145:010101111
146:110101114
147:110001111
148:010001112
149:000001111
150:100001113
151:101001111
152:001001112
153:011001111
154:111001115
155:111011111
156:011011112
157:001011111
158:101011113
159:100011111
160:000011112
161:010011111
162:110011114
163:110111111
164:010111112
165:000111111
166:100111113
167:101111111
168:001111112
169:011111111
170:11111111

Pattern 1111
12345678    Move
0:000000001
1:100000002
2:110000003
3:111000004
4:111100005
5:111110006
6:111111007
7:111111108
8:11111111