-
Notifications
You must be signed in to change notification settings - Fork 15
/
input.js
218 lines (217 loc) · 8.37 KB
/
input.js
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
const INSTRUCTIONS = [
{ type: 'rect', size: [1, 1] },
{ type: 'shift_row', row: 0, by: 5 },
{ type: 'rect', size: [1, 1] },
{ type: 'shift_row', row: 0, by: 5 },
{ type: 'rect', size: [1, 1] },
{ type: 'shift_row', row: 0, by: 5 },
{ type: 'rect', size: [1, 1] },
{ type: 'shift_row', row: 0, by: 5 },
{ type: 'rect', size: [1, 1] },
{ type: 'shift_row', row: 0, by: 2 },
{ type: 'rect', size: [1, 1] },
{ type: 'shift_row', row: 0, by: 2 },
{ type: 'rect', size: [1, 1] },
{ type: 'shift_row', row: 0, by: 3 },
{ type: 'rect', size: [1, 1] },
{ type: 'shift_row', row: 0, by: 3 },
{ type: 'rect', size: [2, 1] },
{ type: 'shift_row', row: 0, by: 2 },
{ type: 'rect', size: [1, 1] },
{ type: 'shift_row', row: 0, by: 3 },
{ type: 'rect', size: [2, 1] },
{ type: 'shift_row', row: 0, by: 2 },
{ type: 'rect', size: [1, 1] },
{ type: 'shift_row', row: 0, by: 3 },
{ type: 'rect', size: [2, 1] },
{ type: 'shift_row', row: 0, by: 5 },
{ type: 'rect', size: [4, 1] },
{ type: 'shift_row', row: 0, by: 5 },
{ type: 'shift_col', col: 0, by: 1 },
{ type: 'rect', size: [4, 1] },
{ type: 'shift_row', row: 0, by: 10 },
{ type: 'shift_col', col: 5, by: 2 },
{ type: 'shift_col', col: 0, by: 1 },
{ type: 'rect', size: [9, 1] },
{ type: 'shift_row', row: 2, by: 5 },
{ type: 'shift_row', row: 0, by: 5 },
{ type: 'shift_col', col: 0, by: 1 },
{ type: 'rect', size: [4, 1] },
{ type: 'shift_row', row: 2, by: 5 },
{ type: 'shift_row', row: 0, by: 5 },
{ type: 'shift_col', col: 0, by: 1 },
{ type: 'rect', size: [4, 1] },
{ type: 'shift_col', col: 40, by: 1 },
{ type: 'shift_col', col: 27, by: 1 },
{ type: 'shift_col', col: 22, by: 1 },
{ type: 'shift_col', col: 17, by: 1 },
{ type: 'shift_col', col: 12, by: 1 },
{ type: 'shift_col', col: 7, by: 1 },
{ type: 'shift_col', col: 2, by: 1 },
{ type: 'shift_row', row: 2, by: 5 },
{ type: 'shift_row', row: 1, by: 3 },
{ type: 'shift_row', row: 0, by: 5 },
{ type: 'rect', size: [1, 3] },
{ type: 'shift_row', row: 2, by: 10 },
{ type: 'shift_row', row: 1, by: 7 },
{ type: 'shift_row', row: 0, by: 2 },
{ type: 'shift_col', col: 3, by: 2 },
{ type: 'shift_col', col: 2, by: 1 },
{ type: 'shift_col', col: 0, by: 1 },
{ type: 'rect', size: [4, 1] },
{ type: 'shift_row', row: 2, by: 5 },
{ type: 'shift_row', row: 1, by: 3 },
{ type: 'shift_row', row: 0, by: 3 },
{ type: 'rect', size: [1, 3] },
{ type: 'shift_col', col: 45, by: 1 },
{ type: 'shift_row', row: 2, by: 7 },
{ type: 'shift_row', row: 1, by: 10 },
{ type: 'shift_row', row: 0, by: 2 },
{ type: 'shift_col', col: 3, by: 1 },
{ type: 'shift_col', col: 2, by: 2 },
{ type: 'shift_col', col: 0, by: 1 },
{ type: 'rect', size: [4, 1] },
{ type: 'shift_row', row: 2, by: 13 },
{ type: 'shift_row', row: 0, by: 5 },
{ type: 'shift_col', col: 3, by: 1 },
{ type: 'shift_col', col: 0, by: 1 },
{ type: 'rect', size: [4, 1] },
{ type: 'shift_row', row: 3, by: 10 },
{ type: 'shift_row', row: 2, by: 10 },
{ type: 'shift_row', row: 0, by: 5 },
{ type: 'shift_col', col: 3, by: 1 },
{ type: 'shift_col', col: 2, by: 1 },
{ type: 'shift_col', col: 0, by: 1 },
{ type: 'rect', size: [4, 1] },
{ type: 'shift_row', row: 3, by: 8 },
{ type: 'shift_row', row: 0, by: 5 },
{ type: 'shift_col', col: 3, by: 1 },
{ type: 'shift_col', col: 2, by: 1 },
{ type: 'shift_col', col: 0, by: 1 },
{ type: 'rect', size: [4, 1] },
{ type: 'shift_row', row: 3, by: 17 },
{ type: 'shift_row', row: 2, by: 20 },
{ type: 'shift_row', row: 0, by: 15 },
{ type: 'shift_col', col: 13, by: 1 },
{ type: 'shift_col', col: 12, by: 3 },
{ type: 'shift_col', col: 10, by: 1 },
{ type: 'shift_col', col: 8, by: 1 },
{ type: 'shift_col', col: 7, by: 2 },
{ type: 'shift_col', col: 6, by: 1 },
{ type: 'shift_col', col: 5, by: 1 },
{ type: 'shift_col', col: 3, by: 1 },
{ type: 'shift_col', col: 2, by: 2 },
{ type: 'shift_col', col: 0, by: 1 },
{ type: 'rect', size: [14, 1] },
{ type: 'shift_row', row: 1, by: 47 },
{ type: 'shift_col', col: 9, by: 1 },
{ type: 'shift_col', col: 4, by: 1 },
{ type: 'shift_row', row: 3, by: 3 },
{ type: 'shift_row', row: 2, by: 10 },
{ type: 'shift_row', row: 1, by: 8 },
{ type: 'shift_row', row: 0, by: 5 },
{ type: 'shift_col', col: 2, by: 2 },
{ type: 'shift_col', col: 0, by: 2 },
{ type: 'rect', size: [3, 2] },
{ type: 'shift_row', row: 3, by: 12 },
{ type: 'shift_row', row: 2, by: 10 },
{ type: 'shift_row', row: 0, by: 10 },
{ type: 'shift_col', col: 8, by: 1 },
{ type: 'shift_col', col: 7, by: 3 },
{ type: 'shift_col', col: 5, by: 1 },
{ type: 'shift_col', col: 3, by: 1 },
{ type: 'shift_col', col: 2, by: 1 },
{ type: 'shift_col', col: 1, by: 1 },
{ type: 'shift_col', col: 0, by: 1 },
{ type: 'rect', size: [9, 1] },
{ type: 'shift_row', row: 0, by: 20 },
{ type: 'shift_col', col: 46, by: 1 },
{ type: 'shift_row', row: 4, by: 17 },
{ type: 'shift_row', row: 3, by: 10 },
{ type: 'shift_row', row: 2, by: 10 },
{ type: 'shift_row', row: 1, by: 5 },
{ type: 'shift_col', col: 8, by: 1 },
{ type: 'shift_col', col: 7, by: 1 },
{ type: 'shift_col', col: 6, by: 1 },
{ type: 'shift_col', col: 5, by: 1 },
{ type: 'shift_col', col: 3, by: 1 },
{ type: 'shift_col', col: 2, by: 2 },
{ type: 'shift_col', col: 1, by: 1 },
{ type: 'shift_col', col: 0, by: 1 },
{ type: 'rect', size: [9, 1] },
{ type: 'shift_col', col: 32, by: 4 },
{ type: 'shift_row', row: 4, by: 33 },
{ type: 'shift_row', row: 3, by: 5 },
{ type: 'shift_row', row: 2, by: 15 },
{ type: 'shift_row', row: 0, by: 15 },
{ type: 'shift_col', col: 13, by: 1 },
{ type: 'shift_col', col: 12, by: 3 },
{ type: 'shift_col', col: 10, by: 1 },
{ type: 'shift_col', col: 8, by: 1 },
{ type: 'shift_col', col: 7, by: 2 },
{ type: 'shift_col', col: 6, by: 1 },
{ type: 'shift_col', col: 5, by: 1 },
{ type: 'shift_col', col: 3, by: 1 },
{ type: 'shift_col', col: 2, by: 1 },
{ type: 'shift_col', col: 1, by: 1 },
{ type: 'shift_col', col: 0, by: 1 },
{ type: 'rect', size: [14, 1] },
{ type: 'shift_col', col: 39, by: 3 },
{ type: 'shift_col', col: 35, by: 4 },
{ type: 'shift_col', col: 20, by: 4 },
{ type: 'shift_col', col: 19, by: 3 },
{ type: 'shift_col', col: 10, by: 4 },
{ type: 'shift_col', col: 9, by: 3 },
{ type: 'shift_col', col: 8, by: 3 },
{ type: 'shift_col', col: 5, by: 4 },
{ type: 'shift_col', col: 4, by: 3 },
{ type: 'shift_row', row: 5, by: 5 },
{ type: 'shift_row', row: 4, by: 5 },
{ type: 'shift_row', row: 3, by: 33 },
{ type: 'shift_row', row: 1, by: 30 },
{ type: 'shift_col', col: 48, by: 1 },
{ type: 'shift_col', col: 47, by: 5 },
{ type: 'shift_col', col: 46, by: 5 },
{ type: 'shift_col', col: 45, by: 1 },
{ type: 'shift_col', col: 43, by: 1 },
{ type: 'shift_col', col: 38, by: 3 },
{ type: 'shift_col', col: 37, by: 3 },
{ type: 'shift_col', col: 36, by: 5 },
{ type: 'shift_col', col: 35, by: 1 },
{ type: 'shift_col', col: 33, by: 1 },
{ type: 'shift_col', col: 32, by: 5 },
{ type: 'shift_col', col: 31, by: 5 },
{ type: 'shift_col', col: 30, by: 1 },
{ type: 'shift_col', col: 23, by: 4 },
{ type: 'shift_col', col: 22, by: 3 },
{ type: 'shift_col', col: 21, by: 3 },
{ type: 'shift_col', col: 20, by: 1 },
{ type: 'shift_col', col: 12, by: 2 },
{ type: 'shift_col', col: 11, by: 2 },
{ type: 'shift_col', col: 3, by: 5 },
{ type: 'shift_col', col: 2, by: 5 },
{ type: 'shift_col', col: 1, by: 3 },
{ type: 'shift_col', col: 0, by: 4 },
];
module.exports = {
sampleInput: {
screenSize: [7, 3],
instructions: [
{ type: 'rect', size: [3, 2] },
{ type: 'shift_col', col: 1, by: 1 },
{ type: 'shift_row', row: 0, by: 4 },
{ type: 'shift_col', col: 1, by: 1 },
// Creates:
//
// .#..#.#
// #.#....
// .#.....
//
// 6 pixels are lit
],
},
input: {
screenSize: [50, 6],
instructions: INSTRUCTIONS,
},
};