To beatRandom agent 0
Join
2060 lines · 103.4 KB Raw Permalink History
1# MIT License
2#
3# Copyright (c) 2026 ARC Prize Foundation
4#
5# Permission is hereby granted, free of charge, to any person obtaining a copy
6# of this software and associated documentation files (the "Software"), to deal
7# in the Software without restriction, including without limitation the rights
8# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9# copies of the Software, and to permit persons to whom the Software is
10# furnished to do so, subject to the following conditions:
11#
12# The above copyright notice and this permission notice shall be included in all
13# copies or substantial portions of the Software.
14#
15# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21# SOFTWARE.
22
23import math
24from typing import List, Optional, Set, Tuple
25
26import numpy as np
27from arcengine import (
28 ARCBaseGame,
29 BlockingMode,
30 Camera,
31 GameAction,
32 Level,
33 RenderableUserDisplay,
34 Sprite,
35)
36
37"."
38sprites = {
39 "ajdspzphhd": Sprite(
40 pixels=[
41 [14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14],
42 ],
43 name="ajdspzphhd",
44 visible=False,
45 collidable=True,
46 tags=["xfmluydglp"],
47 ),
48 "eqatonpohu": Sprite(
49 pixels=[
50 [5, 5, 5, 5, 5, 5, 5, 5, 5, 5],
51 [5, 5, 5, 5, 5, 5, 5, 5, 5, 5],
52 [5, 5, 5, 5, 5, 5, 5, 5, 5, 5],
53 [5, 5, 5, 5, 5, 5, 5, 5, 5, 5],
54 [5, 5, 5, 5, 5, 5, 5, 5, 5, 5],
55 [5, 5, 5, 5, 5, 5, 5, 5, 5, 5],
56 [5, 5, 5, 5, 5, 5, 5, 5, 5, 5],
57 [5, 5, 5, 5, 5, 5, 5, 5, 5, 5],
58 [5, 5, 5, 5, 5, 5, 5, 5, 5, 5],
59 [5, 5, 5, 5, 5, 5, 5, 5, 5, 5],
60 ],
61 name="eqatonpohu",
62 visible=True,
63 collidable=True,
64 tags=["eqatonpohu"],
65 layer=1,
66 ),
67 "fesygzfqui": Sprite(
68 pixels=[
69 [4, 4, 4, 4, -2],
70 [4, 4, 4, 4, -2],
71 [4, 4, 4, 4, -2],
72 [4, 4, 4, 4, -2],
73 [4, 4, 4, 4, -2],
74 ],
75 name="fesygzfqui",
76 visible=True,
77 collidable=True,
78 tags=["ihdgageizm"],
79 layer=-5,
80 ),
81 "fywfjzkxlm": Sprite(
82 pixels=[
83 [-1, 0, -1],
84 [-1, 0, -1],
85 [0, 0, 0],
86 ],
87 name="fywfjzkxlm",
88 visible=True,
89 collidable=True,
90 ),
91 "ghizzeqtoh": Sprite(
92 pixels=[
93 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
94 [0, -1, -1, -1, -1, -1, -1, -1, -1, 0],
95 [0, -1, -1, -1, -1, -1, -1, -1, -1, 0],
96 [0, -1, -1, -1, -1, -1, -1, -1, -1, 0],
97 [0, -1, -1, -1, -1, -1, -1, -1, -1, 0],
98 [0, -1, -1, -1, -1, -1, -1, -1, -1, 0],
99 [0, -1, -1, -1, -1, -1, -1, -1, -1, 0],
100 [0, -1, -1, -1, -1, -1, -1, -1, -1, 0],
101 [0, -1, -1, -1, -1, -1, -1, -1, -1, 0],
102 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
103 ],
104 name="ghizzeqtoh",
105 visible=False,
106 collidable=True,
107 tags=["ghizzeqtoh"],
108 layer=5,
109 ),
110 "gngifvjddu": Sprite(
111 pixels=[
112 [0, 0, -1],
113 [-1, 0, 0],
114 [0, -1, 0],
115 ],
116 name="gngifvjddu",
117 visible=True,
118 collidable=True,
119 ),
120 "grcpfuizfp": Sprite(
121 pixels=[
122 [-1, 0, -1],
123 [0, 0, -1],
124 [-1, 0, 0],
125 ],
126 name="grcpfuizfp",
127 visible=True,
128 collidable=True,
129 layer=1,
130 ),
131 "hahdypcdru": Sprite(
132 pixels=[
133 [14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14],
134 ],
135 name="hahdypcdru",
136 visible=False,
137 collidable=True,
138 tags=["xfmluydglp"],
139 ),
140 "hoswmpiqkw": Sprite(
141 pixels=[
142 [0, 0, 0, 0, 0, 0, 0],
143 [0, -1, -1, -1, -1, -1, 0],
144 [0, -1, -1, -1, -1, -1, 0],
145 [0, -1, -1, -1, -1, -1, 0],
146 [0, -1, -1, -1, -1, -1, 0],
147 [0, -1, -1, -1, -1, -1, 0],
148 [0, 0, 0, 0, 0, 0, 0],
149 ],
150 name="hoswmpiqkw",
151 visible=False,
152 collidable=True,
153 tags=["hoswmpiqkw"],
154 layer=-1,
155 ),
156 "ihdgageizm": Sprite(
157 pixels=[
158 [4, 4, 4, 4, 4],
159 [4, 4, 4, 4, 4],
160 [4, 4, 4, 4, 4],
161 [4, 4, 4, 4, 4],
162 [4, 4, 4, 4, 4],
163 ],
164 name="ihdgageizm",
165 visible=True,
166 collidable=True,
167 tags=["ihdgageizm"],
168 layer=-5,
169 ),
170 "irgjxweouz": Sprite(
171 pixels=[
172 [14],
173 [14],
174 [14],
175 [14],
176 [14],
177 [14],
178 [14],
179 [14],
180 [14],
181 [14],
182 [14],
183 [14],
184 [14],
185 [14],
186 [14],
187 [14],
188 [14],
189 [14],
190 [14],
191 [14],
192 [14],
193 [14],
194 [14],
195 [14],
196 [14],
197 [14],
198 [14],
199 [14],
200 [14],
201 ],
202 name="irgjxweouz",
203 visible=False,
204 collidable=True,
205 tags=["xfmluydglp"],
206 ),
207 "kapcaakvb_b": Sprite(
208 pixels=[
209 [1, 1, 1, 1, 1],
210 [-2, -2, -2, -2, -2],
211 [-2, -2, -2, -2, -2],
212 [-2, -2, -2, -2, -2],
213 [-2, -2, -2, -2, -2],
214 ],
215 name="kapcaakvb_b",
216 visible=True,
217 collidable=True,
218 tags=["gbvqrjtaqo"],
219 ),
220 "krdypjjivz": Sprite(
221 pixels=[
222 [-2, -2, -2, -2, -2],
223 [4, 4, 4, 4, 4],
224 [4, 4, 4, 4, 4],
225 [4, 4, 4, 4, 4],
226 [4, 4, 4, 4, 4],
227 ],
228 name="krdypjjivz",
229 visible=True,
230 collidable=True,
231 tags=["ihdgageizm"],
232 layer=-5,
233 ),
234 "kvynsvxbpi": Sprite(
235 pixels=[
236 [0, -1, -1],
237 [-1, 0, -1],
238 [-1, -1, 0],
239 ],
240 name="kvynsvxbpi",
241 visible=True,
242 collidable=True,
243 tags=["kvynsvxbpi"],
244 ),
245 "lujfinsby_t": Sprite(
246 pixels=[
247 [-2, -2, -2, -2, -2],
248 [-2, -2, -2, -2, -2],
249 [-2, -2, -2, -2, -2],
250 [-2, -2, -2, -2, -2],
251 [1, 1, 1, 1, 1],
252 ],
253 name="lujfinsby_t",
254 visible=True,
255 collidable=True,
256 tags=["gbvqrjtaqo"],
257 ),
258 "mkfbgalsbe": Sprite(
259 pixels=[
260 [0, -1, 0],
261 [0, -1, 0],
262 [0, 0, 0],
263 ],
264 name="mkfbgalsbe",
265 visible=True,
266 collidable=True,
267 ),
268 "mkjdaccuuf": Sprite(
269 pixels=[
270 [-2, -2, -2, -2, -2],
271 [-2, 0, -2, -2, -2],
272 [-2, -2, 0, 0, -2],
273 [-2, -2, 0, -2, -2],
274 [-2, -2, -2, -2, -2],
275 ],
276 name="mkjdaccuuf",
277 visible=True,
278 collidable=False,
279 tags=["ttfwljgohq"],
280 layer=-1,
281 ),
282 "mxfhnkdzvf": Sprite(
283 pixels=[
284 [4, 4, 4, 4, 4],
285 [4, 4, 4, 4, 4],
286 [4, 4, 4, 4, 4],
287 [4, 4, 4, 4, 4],
288 [-2, -2, -2, -2, -2],
289 ],
290 name="mxfhnkdzvf",
291 visible=True,
292 collidable=True,
293 tags=["ihdgageizm"],
294 layer=-5,
295 ),
296 "neltxxziap": Sprite(
297 pixels=[
298 [14],
299 [14],
300 [14],
301 [14],
302 [14],
303 [14],
304 [14],
305 [14],
306 [14],
307 [14],
308 [14],
309 ],
310 name="neltxxziap",
311 visible=False,
312 collidable=True,
313 tags=["xfmluydglp"],
314 ),
315 "njpewhmtfd": Sprite(
316 pixels=[
317 [5, 5, 5, 5, 5, 5, 5],
318 [5, -1, -1, -1, -1, -1, 5],
319 [5, -1, -1, -1, -1, -1, 5],
320 [5, -1, -1, -1, -1, -1, 5],
321 [5, -1, -1, -1, -1, -1, 5],
322 [5, -1, -1, -1, -1, -1, 5],
323 [5, 5, 5, 5, 5, 5, 5],
324 ],
325 name="njpewhmtfd",
326 visible=True,
327 collidable=True,
328 tags=["vjotnebuqo", "vfkkzdgxzx"],
329 layer=-3,
330 ),
331 "nnjhdcanjk": Sprite(
332 pixels=[
333 [-1, 0, 0],
334 [0, -1, 0],
335 [-1, 0, -1],
336 ],
337 name="nnjhdcanjk",
338 visible=True,
339 collidable=True,
340 ),
341 "npxgalaybz": Sprite(
342 pixels=[
343 [11, 11, 11],
344 [11, -1, 11],
345 [11, 11, 11],
346 ],
347 name="npxgalaybz",
348 visible=True,
349 collidable=False,
350 tags=["npxgalaybz"],
351 layer=-1,
352 ),
353 "nszegiawib": Sprite(
354 pixels=[
355 [3, 3, -1, -1, -1, -1, -1, 3, 3],
356 [3, 3, 3, 3, 3, 3, 3, 3, 3],
357 [3, 3, 3, 3, 3, 3, 3, 3, 3],
358 [3, 3, 3, 3, 3, 3, 3, 3, 3],
359 [3, 3, 3, 3, 3, 3, 3, 3, 3],
360 [3, 3, 3, 3, 3, 3, 3, 3, 3],
361 [3, 3, 3, 3, 3, 3, 3, 3, 3],
362 [3, 3, 3, 3, 3, 3, 3, 3, 3],
363 [3, 3, 3, 3, 3, 3, 3, 3, 3],
364 ],
365 name="nszegiawib",
366 visible=True,
367 collidable=True,
368 layer=-4,
369 ),
370 "rhsxkxzdjz": Sprite(
371 pixels=[
372 [-2, -2, -2, -2, -2],
373 [-2, -2, 0, -2, -2],
374 [-2, 1, 0, 0, -2],
375 [-2, -2, 1, -2, -2],
376 [-2, -2, -2, -2, -2],
377 ],
378 name="rhsxkxzdjz",
379 visible=True,
380 collidable=True,
381 tags=["rhsxkxzdjz"],
382 layer=-1,
383 ),
384 "rjlbuycveu": Sprite(
385 pixels=[
386 [5, 5, 5, 5, 5],
387 [5, 5, 5, 5, 5],
388 [5, 5, 5, 5, 5],
389 [5, 5, 5, 5, 5],
390 [5, 5, 5, 5, 5],
391 ],
392 name="rjlbuycveu",
393 visible=True,
394 collidable=False,
395 tags=["rjlbuycveu"],
396 layer=-3,
397 ),
398 "sfqyzhzkij": Sprite(
399 pixels=[
400 [12, 12, 12, 12, 12],
401 [12, 12, 12, 12, 12],
402 [9, 9, 9, 9, 9],
403 [9, 9, 9, 9, 9],
404 [9, 9, 9, 9, 9],
405 ],
406 name="sfqyzhzkij",
407 visible=True,
408 collidable=True,
409 tags=["sfqyzhzkij"],
410 ),
411 "soyhouuebz": Sprite(
412 pixels=[
413 [-2, -2, -2, -2, -2],
414 [-2, 9, 14, 14, -2],
415 [-2, 9, 0, 8, -2],
416 [-2, 12, 12, 8, -2],
417 [-2, -2, -2, -2, -2],
418 ],
419 name="soyhouuebz",
420 visible=True,
421 collidable=False,
422 tags=["soyhouuebz"],
423 layer=-1,
424 ),
425 "sqpmiygfvh": Sprite(
426 pixels=[
427 [11],
428 ],
429 name="sqpmiygfvh",
430 visible=True,
431 collidable=True,
432 layer=3,
433 ),
434 "tihiodtoj_l": Sprite(
435 pixels=[
436 [-2, -2, -2, -2, 1],
437 [-2, -2, -2, -2, 1],
438 [-2, -2, -2, -2, 1],
439 [-2, -2, -2, -2, 1],
440 [-2, -2, -2, -2, 1],
441 ],
442 name="tihiodtoj_l",
443 visible=True,
444 collidable=True,
445 tags=["gbvqrjtaqo"],
446 ),
447 "ubspnhafvq": Sprite(
448 pixels=[
449 [0, 0, 0],
450 [-1, -1, 0],
451 [0, -1, 0],
452 ],
453 name="ubspnhafvq",
454 visible=True,
455 collidable=False,
456 layer=-2,
457 ),
458 "ubyunwkbpx": Sprite(
459 pixels=[
460 [-2, 4, 4, 4, 4],
461 [-2, 4, 4, 4, 4],
462 [-2, 4, 4, 4, 4],
463 [-2, 4, 4, 4, 4],
464 [-2, 4, 4, 4, 4],
465 ],
466 name="ubyunwkbpx",
467 visible=True,
468 collidable=True,
469 tags=["ihdgageizm"],
470 layer=-5,
471 ),
472 "vjotnebuqo": Sprite(
473 pixels=[
474 [5, 5, 5, 5, 5, 5, 5],
475 [5, -1, -1, -1, -1, -1, 5],
476 [5, -1, -1, -1, -1, -1, 5],
477 [5, -1, -1, -1, -1, -1, 5],
478 [5, -1, -1, -1, -1, -1, 5],
479 [5, -1, -1, -1, -1, -1, 5],
480 [5, 5, 5, 5, 5, 5, 5],
481 ],
482 name="vjotnebuqo",
483 visible=True,
484 collidable=True,
485 tags=["vjotnebuqo"],
486 layer=-3,
487 ),
488 "wgmbtyhvbc": Sprite(
489 pixels=[
490 [0, -1, 0],
491 [-1, 0, -1],
492 [0, -1, 0],
493 ],
494 name="wgmbtyhvbc",
495 visible=True,
496 collidable=True,
497 tags=["wgmbtyhvbc"],
498 layer=10,
499 ),
500 "xfmluydglp": Sprite(
501 pixels=[
502 [14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14],
503 [14, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14],
504 [14, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14],
505 [14, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14],
506 [14, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14],
507 [14, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14],
508 [14, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14],
509 [14, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14],
510 [14, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14],
511 [14, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14],
512 [14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14],
513 ],
514 name="xfmluydglp",
515 visible=False,
516 collidable=True,
517 tags=["xfmluydglp"],
518 ),
519 "xvrpzkggig": Sprite(
520 pixels=[
521 [5, 5, 5, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
522 [5, 5, 5, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
523 [5, 5, 5, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
524 [5, 5, 5, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
525 [5, 5, 5, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
526 [5, 5, 5, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
527 [5, 5, 5, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
528 [5, 5, 5, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
529 [5, 5, 5, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
530 [5, 5, 5, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
531 [5, 5, 5, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
532 [5, 5, 5, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
533 [5, 5, 5, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
534 [5, 5, 5, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
535 [5, 5, 5, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
536 [5, 5, 5, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
537 [5, 5, 5, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
538 [5, 5, 5, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
539 [5, 5, 5, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
540 [5, 5, 5, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
541 [5, 5, 5, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
542 [5, 5, 5, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
543 [5, 5, 5, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
544 [5, 5, 5, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
545 [5, 5, 5, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
546 [5, 5, 5, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
547 [5, 5, 5, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
548 [5, 5, 5, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
549 [5, 5, 5, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
550 [5, 5, 5, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
551 [5, 5, 5, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
552 [5, 5, 5, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
553 [5, 5, 5, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
554 [5, 5, 5, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
555 [5, 5, 5, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
556 [5, 5, 5, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
557 [5, 5, 5, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
558 [5, 5, 5, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
559 [5, 5, 5, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
560 [5, 5, 5, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
561 [5, 5, 5, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
562 [5, 5, 5, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
563 [5, 5, 5, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
564 [5, 5, 5, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
565 [5, 5, 5, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
566 [5, 5, 5, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
567 [5, 5, 5, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
568 [5, 5, 5, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
569 [5, 5, 5, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
570 [5, 5, 5, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
571 [5, 5, 5, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
572 [5, 5, 5, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
573 [4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
574 [4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
575 [4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
576 [4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
577 [4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
578 [4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
579 [4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
580 [4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
581 [4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5],
582 [4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5],
583 [4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5],
584 [4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5],
585 ],
586 name="xvrpzkggig",
587 visible=True,
588 collidable=True,
589 ),
590 "yjgargdic_r": Sprite(
591 pixels=[
592 [1, -2, -2, -2, -2],
593 [1, -2, -2, -2, -2],
594 [1, -2, -2, -2, -2],
595 [1, -2, -2, -2, -2],
596 [1, -2, -2, -2, -2],
597 ],
598 name="yjgargdic_r",
599 visible=True,
600 collidable=True,
601 tags=["gbvqrjtaqo"],
602 ),
603}
604levels = [
605 # Level 1
606 Level(
607 sprites=[
608 sprites["eqatonpohu"].clone().set_position(1, 53),
609 sprites["ghizzeqtoh"].clone().set_position(1, 53),
610 sprites["hoswmpiqkw"].clone().set_position(33, 9),
611 sprites["ihdgageizm"].clone().set_position(4, 0),
612 sprites["ihdgageizm"].clone().set_position(9, 0),
613 sprites["ihdgageizm"].clone().set_position(4, 5),
614 sprites["ihdgageizm"].clone().set_position(14, 0),
615 sprites["ihdgageizm"].clone().set_position(19, 0),
616 sprites["ihdgageizm"].clone().set_position(24, 0),
617 sprites["ihdgageizm"].clone().set_position(29, 0),
618 sprites["ihdgageizm"].clone().set_position(39, 0),
619 sprites["ihdgageizm"].clone().set_position(44, 0),
620 sprites["ihdgageizm"].clone().set_position(49, 0),
621 sprites["ihdgageizm"].clone().set_position(54, 0),
622 sprites["ihdgageizm"].clone().set_position(59, 0),
623 sprites["ihdgageizm"].clone().set_position(4, 10),
624 sprites["ihdgageizm"].clone().set_position(4, 15),
625 sprites["ihdgageizm"].clone().set_position(4, 20),
626 sprites["ihdgageizm"].clone().set_position(4, 25),
627 sprites["ihdgageizm"].clone().set_position(59, 15),
628 sprites["ihdgageizm"].clone().set_position(59, 20),
629 sprites["ihdgageizm"].clone().set_position(59, 25),
630 sprites["ihdgageizm"].clone().set_position(59, 30),
631 sprites["ihdgageizm"].clone().set_position(59, 20),
632 sprites["ihdgageizm"].clone().set_position(59, 25),
633 sprites["ihdgageizm"].clone().set_position(59, 30),
634 sprites["ihdgageizm"].clone().set_position(59, 35),
635 sprites["ihdgageizm"].clone().set_position(59, 40),
636 sprites["ihdgageizm"].clone().set_position(59, 45),
637 sprites["ihdgageizm"].clone().set_position(59, 35),
638 sprites["ihdgageizm"].clone().set_position(59, 40),
639 sprites["ihdgageizm"].clone().set_position(59, 45),
640 sprites["ihdgageizm"].clone().set_position(59, 50),
641 sprites["ihdgageizm"].clone().set_position(59, 55),
642 sprites["ihdgageizm"].clone().set_position(59, 50),
643 sprites["ihdgageizm"].clone().set_position(59, 55),
644 sprites["ihdgageizm"].clone().set_position(54, 55),
645 sprites["ihdgageizm"].clone().set_position(49, 55),
646 sprites["ihdgageizm"].clone().set_position(44, 55),
647 sprites["ihdgageizm"].clone().set_position(39, 55),
648 sprites["ihdgageizm"].clone().set_position(34, 55),
649 sprites["ihdgageizm"].clone().set_position(29, 55),
650 sprites["ihdgageizm"].clone().set_position(24, 55),
651 sprites["ihdgageizm"].clone().set_position(19, 55),
652 sprites["ihdgageizm"].clone().set_position(4, 40),
653 sprites["ihdgageizm"].clone().set_position(4, 45),
654 sprites["ihdgageizm"].clone().set_position(4, 50),
655 sprites["ihdgageizm"].clone().set_position(9, 50),
656 sprites["ihdgageizm"].clone().set_position(4, 55),
657 sprites["ihdgageizm"].clone().set_position(9, 55),
658 sprites["ihdgageizm"].clone().set_position(14, 55),
659 sprites["ihdgageizm"].clone().set_position(4, 45),
660 sprites["ihdgageizm"].clone().set_position(54, 25),
661 sprites["ihdgageizm"].clone().set_position(54, 20),
662 sprites["ihdgageizm"].clone().set_position(34, 0),
663 sprites["ihdgageizm"].clone().set_position(59, 10),
664 sprites["ihdgageizm"].clone().set_position(59, 5),
665 sprites["ihdgageizm"].clone().set_position(54, 15),
666 sprites["ihdgageizm"].clone().set_position(54, 10),
667 sprites["ihdgageizm"].clone().set_position(44, 5),
668 sprites["ihdgageizm"].clone().set_position(39, 5),
669 sprites["ihdgageizm"].clone().set_position(34, 5),
670 sprites["ihdgageizm"].clone().set_position(29, 5),
671 sprites["ihdgageizm"].clone().set_position(54, 50),
672 sprites["ihdgageizm"].clone().set_position(54, 45),
673 sprites["ihdgageizm"].clone().set_position(24, 5),
674 sprites["ihdgageizm"].clone().set_position(19, 5),
675 sprites["ihdgageizm"].clone().set_position(9, 35),
676 sprites["ihdgageizm"].clone().set_position(9, 45),
677 sprites["ihdgageizm"].clone().set_position(19, 50),
678 sprites["ihdgageizm"].clone().set_position(9, 40),
679 sprites["ihdgageizm"].clone().set_position(49, 5),
680 sprites["ihdgageizm"].clone().set_position(54, 5),
681 sprites["ihdgageizm"].clone().set_position(49, 50),
682 sprites["ihdgageizm"].clone().set_position(14, 50),
683 sprites["ihdgageizm"].clone().set_position(14, 5),
684 sprites["ihdgageizm"].clone().set_position(9, 5),
685 sprites["ihdgageizm"].clone().set_position(9, 30),
686 sprites["ihdgageizm"].clone().set_position(9, 25),
687 sprites["ihdgageizm"].clone().set_position(9, 20),
688 sprites["ihdgageizm"].clone().set_position(9, 15),
689 sprites["ihdgageizm"].clone().set_position(9, 10),
690 sprites["ihdgageizm"].clone().set_position(49, 10),
691 sprites["ihdgageizm"].clone().set_position(44, 20),
692 sprites["ihdgageizm"].clone().set_position(39, 10),
693 sprites["ihdgageizm"].clone().set_position(44, 10),
694 sprites["ihdgageizm"].clone().set_position(49, 15),
695 sprites["ihdgageizm"].clone().set_position(29, 10),
696 sprites["ihdgageizm"].clone().set_position(29, 15),
697 sprites["ihdgageizm"].clone().set_position(39, 15),
698 sprites["ihdgageizm"].clone().set_position(44, 15),
699 sprites["ihdgageizm"].clone().set_position(49, 20),
700 sprites["ihdgageizm"].clone().set_position(14, 15),
701 sprites["ihdgageizm"].clone().set_position(19, 15),
702 sprites["ihdgageizm"].clone().set_position(24, 15),
703 sprites["ihdgageizm"].clone().set_position(24, 10),
704 sprites["ihdgageizm"].clone().set_position(19, 10),
705 sprites["ihdgageizm"].clone().set_position(14, 10),
706 sprites["ihdgageizm"].clone().set_position(29, 20),
707 sprites["ihdgageizm"].clone().set_position(39, 20),
708 sprites["ihdgageizm"].clone().set_position(24, 20),
709 sprites["ihdgageizm"].clone().set_position(29, 40),
710 sprites["ihdgageizm"].clone().set_position(19, 20),
711 sprites["ihdgageizm"].clone().set_position(14, 20),
712 sprites["ihdgageizm"].clone().set_position(54, 30),
713 sprites["ihdgageizm"].clone().set_position(24, 40),
714 sprites["ihdgageizm"].clone().set_position(14, 45),
715 sprites["ihdgageizm"].clone().set_position(29, 35),
716 sprites["ihdgageizm"].clone().set_position(4, 30).color_remap(None, 4),
717 sprites["ihdgageizm"].clone().set_position(4, 35),
718 sprites["ihdgageizm"].clone().set_position(54, 35),
719 sprites["ihdgageizm"].clone().set_position(54, 40),
720 sprites["ihdgageizm"].clone().set_position(14, 40),
721 sprites["ihdgageizm"].clone().set_position(24, 50),
722 sprites["ihdgageizm"].clone().set_position(29, 50),
723 sprites["ihdgageizm"].clone().set_position(39, 50),
724 sprites["ihdgageizm"].clone().set_position(44, 50),
725 sprites["ihdgageizm"].clone().set_position(34, 50),
726 sprites["ihdgageizm"].clone().set_position(29, 30),
727 sprites["kvynsvxbpi"].clone().set_position(35, 11),
728 sprites["nszegiawib"].clone().set_position(32, 8).set_rotation(180),
729 sprites["rhsxkxzdjz"].clone().set_position(19, 30),
730 sprites["rjlbuycveu"].clone().set_position(34, 10),
731 sprites["sfqyzhzkij"].clone().set_position(34, 45),
732 sprites["vjotnebuqo"].clone().set_position(33, 9),
733 sprites["wgmbtyhvbc"].clone().set_position(3, 55).set_scale(2),
734 sprites["xvrpzkggig"].clone(),
735 ],
736 grid_size=(64, 64),
737 data={
738 "StepCounter": 42,
739 "kvynsvxbpi": 5,
740 "GoalColor": 9,
741 "GoalRotation": 0,
742 "StartShape": 5,
743 "StartColor": 9,
744 "StartRotation": 270,
745 "Fog": False,
746 "StepsDecrement": 1,
747 },
748 ),
749 # Level 2
750 Level(
751 sprites=[
752 sprites["eqatonpohu"].clone().set_position(1, 53),
753 sprites["ghizzeqtoh"].clone().set_position(1, 53),
754 sprites["hoswmpiqkw"].clone().set_position(13, 39),
755 sprites["ihdgageizm"].clone().set_position(4, 0),
756 sprites["ihdgageizm"].clone().set_position(9, 0),
757 sprites["ihdgageizm"].clone().set_position(4, 5),
758 sprites["ihdgageizm"].clone().set_position(14, 0),
759 sprites["ihdgageizm"].clone().set_position(19, 0),
760 sprites["ihdgageizm"].clone().set_position(24, 0),
761 sprites["ihdgageizm"].clone().set_position(29, 0),
762 sprites["ihdgageizm"].clone().set_position(39, 0),
763 sprites["ihdgageizm"].clone().set_position(44, 0),
764 sprites["ihdgageizm"].clone().set_position(49, 0),
765 sprites["ihdgageizm"].clone().set_position(54, 0),
766 sprites["ihdgageizm"].clone().set_position(59, 0),
767 sprites["ihdgageizm"].clone().set_position(4, 10),
768 sprites["ihdgageizm"].clone().set_position(4, 15),
769 sprites["ihdgageizm"].clone().set_position(4, 20),
770 sprites["ihdgageizm"].clone().set_position(4, 25),
771 sprites["ihdgageizm"].clone().set_position(4, 30),
772 sprites["ihdgageizm"].clone().set_position(4, 35),
773 sprites["ihdgageizm"].clone().set_position(59, 15),
774 sprites["ihdgageizm"].clone().set_position(59, 20),
775 sprites["ihdgageizm"].clone().set_position(59, 25),
776 sprites["ihdgageizm"].clone().set_position(59, 30),
777 sprites["ihdgageizm"].clone().set_position(59, 20),
778 sprites["ihdgageizm"].clone().set_position(59, 25),
779 sprites["ihdgageizm"].clone().set_position(59, 30),
780 sprites["ihdgageizm"].clone().set_position(59, 35),
781 sprites["ihdgageizm"].clone().set_position(59, 40),
782 sprites["ihdgageizm"].clone().set_position(59, 45),
783 sprites["ihdgageizm"].clone().set_position(59, 35),
784 sprites["ihdgageizm"].clone().set_position(59, 40),
785 sprites["ihdgageizm"].clone().set_position(59, 45),
786 sprites["ihdgageizm"].clone().set_position(59, 50),
787 sprites["ihdgageizm"].clone().set_position(59, 55),
788 sprites["ihdgageizm"].clone().set_position(59, 50),
789 sprites["ihdgageizm"].clone().set_position(59, 55),
790 sprites["ihdgageizm"].clone().set_position(54, 55),
791 sprites["ihdgageizm"].clone().set_position(49, 55),
792 sprites["ihdgageizm"].clone().set_position(44, 55),
793 sprites["ihdgageizm"].clone().set_position(39, 55),
794 sprites["ihdgageizm"].clone().set_position(34, 55),
795 sprites["ihdgageizm"].clone().set_position(29, 55),
796 sprites["ihdgageizm"].clone().set_position(24, 55),
797 sprites["ihdgageizm"].clone().set_position(19, 55),
798 sprites["ihdgageizm"].clone().set_position(4, 40),
799 sprites["ihdgageizm"].clone().set_position(4, 45),
800 sprites["ihdgageizm"].clone().set_position(4, 50),
801 sprites["ihdgageizm"].clone().set_position(9, 50),
802 sprites["ihdgageizm"].clone().set_position(4, 55),
803 sprites["ihdgageizm"].clone().set_position(9, 55),
804 sprites["ihdgageizm"].clone().set_position(14, 55),
805 sprites["ihdgageizm"].clone().set_position(4, 45),
806 sprites["ihdgageizm"].clone().set_position(54, 30),
807 sprites["ihdgageizm"].clone().set_position(34, 0),
808 sprites["ihdgageizm"].clone().set_position(59, 10),
809 sprites["ihdgageizm"].clone().set_position(59, 5),
810 sprites["ihdgageizm"].clone().set_position(54, 15),
811 sprites["ihdgageizm"].clone().set_position(54, 10),
812 sprites["ihdgageizm"].clone().set_position(9, 35),
813 sprites["ihdgageizm"].clone().set_position(9, 45),
814 sprites["ihdgageizm"].clone().set_position(19, 50),
815 sprites["ihdgageizm"].clone().set_position(9, 40),
816 sprites["ihdgageizm"].clone().set_position(54, 5),
817 sprites["ihdgageizm"].clone().set_position(14, 45),
818 sprites["ihdgageizm"].clone().set_position(14, 50),
819 sprites["ihdgageizm"].clone().set_position(9, 5),
820 sprites["ihdgageizm"].clone().set_position(9, 30),
821 sprites["ihdgageizm"].clone().set_position(9, 25),
822 sprites["ihdgageizm"].clone().set_position(19, 30),
823 sprites["ihdgageizm"].clone().set_position(24, 30),
824 sprites["ihdgageizm"].clone().set_position(19, 40),
825 sprites["ihdgageizm"].clone().set_position(19, 45),
826 sprites["ihdgageizm"].clone().set_position(19, 35),
827 sprites["ihdgageizm"].clone().set_position(39, 15),
828 sprites["ihdgageizm"].clone().set_position(39, 35),
829 sprites["ihdgageizm"].clone().set_position(44, 30),
830 sprites["ihdgageizm"].clone().set_position(34, 45),
831 sprites["ihdgageizm"].clone().set_position(14, 5),
832 sprites["ihdgageizm"].clone().set_position(39, 20),
833 sprites["ihdgageizm"].clone().set_position(44, 20),
834 sprites["ihdgageizm"].clone().set_position(24, 20),
835 sprites["ihdgageizm"].clone().set_position(44, 25),
836 sprites["ihdgageizm"].clone().set_position(39, 40),
837 sprites["ihdgageizm"].clone().set_position(39, 45),
838 sprites["ihdgageizm"].clone().set_position(24, 35),
839 sprites["ihdgageizm"].clone().set_position(24, 25),
840 sprites["ihdgageizm"].clone().set_position(24, 50),
841 sprites["ihdgageizm"].clone().set_position(19, 25),
842 sprites["ihdgageizm"].clone().set_position(24, 40),
843 sprites["ihdgageizm"].clone().set_position(24, 45),
844 sprites["ihdgageizm"].clone().set_position(29, 45),
845 sprites["ihdgageizm"].clone().set_position(29, 30),
846 sprites["ihdgageizm"].clone().set_position(29, 25),
847 sprites["ihdgageizm"].clone().set_position(24, 15),
848 sprites["ihdgageizm"].clone().set_position(44, 35),
849 sprites["ihdgageizm"].clone().set_position(54, 34),
850 sprites["ihdgageizm"].clone().set_position(29, 50),
851 sprites["ihdgageizm"].clone().set_position(34, 50),
852 sprites["kvynsvxbpi"].clone().set_position(15, 41),
853 sprites["npxgalaybz"].clone().set_position(15, 16),
854 sprites["npxgalaybz"].clone().set_position(40, 51),
855 sprites["nszegiawib"].clone().set_position(12, 38),
856 sprites["rhsxkxzdjz"].clone().set_position(49, 45),
857 sprites["rjlbuycveu"].clone().set_position(14, 40),
858 sprites["sfqyzhzkij"].clone().set_position(29, 40),
859 sprites["vjotnebuqo"].clone().set_position(13, 39),
860 sprites["wgmbtyhvbc"].clone().set_position(3, 55).set_scale(2),
861 sprites["xvrpzkggig"].clone(),
862 ],
863 grid_size=(64, 64),
864 data={
865 "StepCounter": 42,
866 "kvynsvxbpi": 5,
867 "GoalColor": 9,
868 "GoalRotation": 270,
869 "StartShape": 5,
870 "StartColor": 9,
871 "StartRotation": 0,
872 "Fog": False,
873 },
874 ),
875 # Level 3
876 Level(
877 sprites=[
878 sprites["eqatonpohu"].clone().set_position(1, 53),
879 sprites["fesygzfqui"].clone().set_position(4, 5),
880 sprites["ghizzeqtoh"].clone().set_position(1, 53),
881 sprites["hoswmpiqkw"].clone().set_position(53, 49),
882 sprites["ihdgageizm"].clone().set_position(4, 0),
883 sprites["ihdgageizm"].clone().set_position(9, 0),
884 sprites["ihdgageizm"].clone().set_position(14, 0),
885 sprites["ihdgageizm"].clone().set_position(19, 0),
886 sprites["ihdgageizm"].clone().set_position(24, 0),
887 sprites["ihdgageizm"].clone().set_position(29, 0),
888 sprites["ihdgageizm"].clone().set_position(39, 0),
889 sprites["ihdgageizm"].clone().set_position(44, 0),
890 sprites["ihdgageizm"].clone().set_position(49, 0),
891 sprites["ihdgageizm"].clone().set_position(59, 0),
892 sprites["ihdgageizm"].clone().set_position(4, 10),
893 sprites["ihdgageizm"].clone().set_position(4, 15),
894 sprites["ihdgageizm"].clone().set_position(4, 20),
895 sprites["ihdgageizm"].clone().set_position(4, 25),
896 sprites["ihdgageizm"].clone().set_position(4, 30),
897 sprites["ihdgageizm"].clone().set_position(4, 35),
898 sprites["ihdgageizm"].clone().set_position(59, 20),
899 sprites["ihdgageizm"].clone().set_position(59, 25),
900 sprites["ihdgageizm"].clone().set_position(59, 30),
901 sprites["ihdgageizm"].clone().set_position(59, 35),
902 sprites["ihdgageizm"].clone().set_position(59, 40),
903 sprites["ihdgageizm"].clone().set_position(59, 45),
904 sprites["ihdgageizm"].clone().set_position(59, 50),
905 sprites["ihdgageizm"].clone().set_position(59, 55),
906 sprites["ihdgageizm"].clone().set_position(49, 55),
907 sprites["ihdgageizm"].clone().set_position(44, 55),
908 sprites["ihdgageizm"].clone().set_position(39, 55),
909 sprites["ihdgageizm"].clone().set_position(34, 55),
910 sprites["ihdgageizm"].clone().set_position(29, 55),
911 sprites["ihdgageizm"].clone().set_position(24, 55),
912 sprites["ihdgageizm"].clone().set_position(19, 55),
913 sprites["ihdgageizm"].clone().set_position(4, 40),
914 sprites["ihdgageizm"].clone().set_position(4, 45),
915 sprites["ihdgageizm"].clone().set_position(4, 50),
916 sprites["ihdgageizm"].clone().set_position(9, 50),
917 sprites["ihdgageizm"].clone().set_position(4, 55),
918 sprites["ihdgageizm"].clone().set_position(9, 55),
919 sprites["ihdgageizm"].clone().set_position(14, 55),
920 sprites["ihdgageizm"].clone().set_position(4, 45),
921 sprites["ihdgageizm"].clone().set_position(34, 0),
922 sprites["ihdgageizm"].clone().set_position(59, 10),
923 sprites["ihdgageizm"].clone().set_position(59, 5),
924 sprites["ihdgageizm"].clone().set_position(39, 10),
925 sprites["ihdgageizm"].clone().set_position(14, 25),
926 sprites["ihdgageizm"].clone().set_position(19, 40),
927 sprites["ihdgageizm"].clone().set_position(19, 45),
928 sprites["ihdgageizm"].clone().set_position(19, 35),
929 sprites["ihdgageizm"].clone().set_position(49, 50),
930 sprites["ihdgageizm"].clone().set_position(39, 35),
931 sprites["ihdgageizm"].clone().set_position(14, 30),
932 sprites["ihdgageizm"].clone().set_position(49, 45),
933 sprites["ihdgageizm"].clone().set_position(49, 40),
934 sprites["ihdgageizm"].clone().set_position(14, 20),
935 sprites["ihdgageizm"].clone().set_position(14, 50),
936 sprites["ihdgageizm"].clone().set_position(39, 5),
937 sprites["ihdgageizm"].clone().set_position(44, 45),
938 sprites["ihdgageizm"].clone().set_position(19, 50),
939 sprites["ihdgageizm"].clone().set_position(44, 40),
940 sprites["ihdgageizm"].clone().set_position(39, 50),
941 sprites["ihdgageizm"].clone().set_position(44, 20),
942 sprites["ihdgageizm"].clone().set_position(49, 20),
943 sprites["ihdgageizm"].clone().set_position(39, 20),
944 sprites["ihdgageizm"].clone().set_position(19, 10),
945 sprites["ihdgageizm"].clone().set_position(14, 35),
946 sprites["ihdgageizm"].clone().set_position(39, 15),
947 sprites["ihdgageizm"].clone().set_position(34, 35),
948 sprites["ihdgageizm"].clone().set_position(14, 10),
949 sprites["ihdgageizm"].clone().set_position(14, 15),
950 sprites["ihdgageizm"].clone().set_position(49, 35),
951 sprites["ihdgageizm"].clone().set_position(24, 35),
952 sprites["ihdgageizm"].clone().set_position(34, 10),
953 sprites["ihdgageizm"].clone().set_position(24, 10),
954 sprites["ihdgageizm"].clone().set_position(59, 15),
955 sprites["ihdgageizm"].clone().set_position(54, 55),
956 sprites["ihdgageizm"].clone().set_position(44, 35),
957 sprites["ihdgageizm"].clone().set_position(39, 40),
958 sprites["ihdgageizm"].clone().set_position(39, 45),
959 sprites["ihdgageizm"].clone().set_position(44, 50),
960 sprites["kapcaakvb_b"].clone().set_position(54, 4),
961 sprites["kvynsvxbpi"].clone().set_position(55, 51),
962 sprites["mxfhnkdzvf"].clone().set_position(54, 0),
963 sprites["npxgalaybz"].clone().set_position(35, 16),
964 sprites["npxgalaybz"].clone().set_position(20, 31),
965 sprites["nszegiawib"].clone().set_position(52, 48),
966 sprites["rhsxkxzdjz"].clone().set_position(49, 10),
967 sprites["rjlbuycveu"].clone().set_position(54, 50),
968 sprites["sfqyzhzkij"].clone().set_position(9, 45),
969 sprites["soyhouuebz"].clone().set_position(29, 45),
970 sprites["vjotnebuqo"].clone().set_position(53, 49),
971 sprites["wgmbtyhvbc"].clone().set_position(3, 55).set_scale(2),
972 sprites["xvrpzkggig"].clone(),
973 sprites["yjgargdic_r"].clone().set_position(8, 5),
974 ],
975 grid_size=(64, 64),
976 data={
977 "StepCounter": 42,
978 "kvynsvxbpi": 5,
979 "GoalColor": 9,
980 "GoalRotation": 180,
981 "StartShape": 5,
982 "StartColor": 12,
983 "StartRotation": 0,
984 "Fog": False,
985 },
986 ),
987 # Level 4
988 Level(
989 sprites=[
990 sprites["eqatonpohu"].clone().set_position(1, 53),
991 sprites["fesygzfqui"].clone().set_position(29, 20),
992 sprites["fesygzfqui"].clone().set_position(4, 35),
993 sprites["ghizzeqtoh"].clone().set_position(1, 53),
994 sprites["hoswmpiqkw"].clone().set_position(8, 4),
995 sprites["ihdgageizm"].clone().set_position(4, 0),
996 sprites["ihdgageizm"].clone().set_position(9, 0),
997 sprites["ihdgageizm"].clone().set_position(4, 5),
998 sprites["ihdgageizm"].clone().set_position(14, 0),
999 sprites["ihdgageizm"].clone().set_position(19, 0),
1000 sprites["ihdgageizm"].clone().set_position(24, 0),
1001 sprites["ihdgageizm"].clone().set_position(29, 0),
1002 sprites["ihdgageizm"].clone().set_position(39, 0),
1003 sprites["ihdgageizm"].clone().set_position(44, 0),
1004 sprites["ihdgageizm"].clone().set_position(49, 0),
1005 sprites["ihdgageizm"].clone().set_position(54, 0),
1006 sprites["ihdgageizm"].clone().set_position(59, 0),
1007 sprites["ihdgageizm"].clone().set_position(4, 10),
1008 sprites["ihdgageizm"].clone().set_position(4, 15),
1009 sprites["ihdgageizm"].clone().set_position(4, 20),
1010 sprites["ihdgageizm"].clone().set_position(4, 25),
1011 sprites["ihdgageizm"].clone().set_position(4, 30),
1012 sprites["ihdgageizm"].clone().set_position(59, 15),
1013 sprites["ihdgageizm"].clone().set_position(59, 20),
1014 sprites["ihdgageizm"].clone().set_position(59, 25),
1015 sprites["ihdgageizm"].clone().set_position(59, 30),
1016 sprites["ihdgageizm"].clone().set_position(59, 20),
1017 sprites["ihdgageizm"].clone().set_position(59, 25),
1018 sprites["ihdgageizm"].clone().set_position(59, 30),
1019 sprites["ihdgageizm"].clone().set_position(59, 35),
1020 sprites["ihdgageizm"].clone().set_position(59, 40),
1021 sprites["ihdgageizm"].clone().set_position(59, 45),
1022 sprites["ihdgageizm"].clone().set_position(59, 35),
1023 sprites["ihdgageizm"].clone().set_position(59, 40),
1024 sprites["ihdgageizm"].clone().set_position(59, 45),
1025 sprites["ihdgageizm"].clone().set_position(59, 50),
1026 sprites["ihdgageizm"].clone().set_position(59, 55),
1027 sprites["ihdgageizm"].clone().set_position(59, 50),
1028 sprites["ihdgageizm"].clone().set_position(59, 55),
1029 sprites["ihdgageizm"].clone().set_position(54, 55),
1030 sprites["ihdgageizm"].clone().set_position(49, 55),
1031 sprites["ihdgageizm"].clone().set_position(44, 55),
1032 sprites["ihdgageizm"].clone().set_position(39, 55),
1033 sprites["ihdgageizm"].clone().set_position(34, 55),
1034 sprites["ihdgageizm"].clone().set_position(29, 55),
1035 sprites["ihdgageizm"].clone().set_position(24, 55),
1036 sprites["ihdgageizm"].clone().set_position(19, 55),
1037 sprites["ihdgageizm"].clone().set_position(4, 40),
1038 sprites["ihdgageizm"].clone().set_position(4, 45),
1039 sprites["ihdgageizm"].clone().set_position(4, 50),
1040 sprites["ihdgageizm"].clone().set_position(9, 50),
1041 sprites["ihdgageizm"].clone().set_position(4, 55),
1042 sprites["ihdgageizm"].clone().set_position(9, 55),
1043 sprites["ihdgageizm"].clone().set_position(14, 55),
1044 sprites["ihdgageizm"].clone().set_position(4, 45),
1045 sprites["ihdgageizm"].clone().set_position(59, 10),
1046 sprites["ihdgageizm"].clone().set_position(59, 5),
1047 sprites["ihdgageizm"].clone().set_position(14, 10),
1048 sprites["ihdgageizm"].clone().set_position(9, 10),
1049 sprites["ihdgageizm"].clone().set_position(24, 25),
1050 sprites["ihdgageizm"].clone().set_position(29, 30),
1051 sprites["ihdgageizm"].clone().set_position(19, 10),
1052 sprites["ihdgageizm"].clone().set_position(9, 20),
1053 sprites["ihdgageizm"].clone().set_position(29, 25),
1054 sprites["ihdgageizm"].clone().set_position(29, 35),
1055 sprites["ihdgageizm"].clone().set_position(34, 35),
1056 sprites["ihdgageizm"].clone().set_position(19, 50),
1057 sprites["ihdgageizm"].clone().set_position(39, 50),
1058 sprites["ihdgageizm"].clone().set_position(9, 15),
1059 sprites["ihdgageizm"].clone().set_position(49, 10),
1060 sprites["ihdgageizm"].clone().set_position(44, 10),
1061 sprites["ihdgageizm"].clone().set_position(39, 45),
1062 sprites["ihdgageizm"].clone().set_position(39, 50),
1063 sprites["ihdgageizm"].clone().set_position(44, 50),
1064 sprites["ihdgageizm"].clone().set_position(19, 25),
1065 sprites["ihdgageizm"].clone().set_position(39, 35),
1066 sprites["ihdgageizm"].clone().set_position(14, 50),
1067 sprites["ihdgageizm"].clone().set_position(9, 45),
1068 sprites["ihdgageizm"].clone().set_position(29, 5),
1069 sprites["ihdgageizm"].clone().set_position(14, 15),
1070 sprites["ihdgageizm"].clone().set_position(34, 0),
1071 sprites["ihdgageizm"].clone().set_position(29, 10),
1072 sprites["ihdgageizm"].clone().set_position(34, 5),
1073 sprites["ihdgageizm"].clone().set_position(54, 10),
1074 sprites["kapcaakvb_b"].clone().set_position(19, 34),
1075 sprites["kapcaakvb_b"].clone().set_position(44, 19),
1076 sprites["krdypjjivz"].clone().set_position(39, 30),
1077 sprites["kvynsvxbpi"].clone().set_position(10, 6),
1078 sprites["lujfinsby_t"].clone().set_position(39, 26),
1079 sprites["mkjdaccuuf"].clone().set_position(24, 30),
1080 sprites["mxfhnkdzvf"].clone().set_position(19, 30),
1081 sprites["mxfhnkdzvf"].clone().set_position(44, 15),
1082 sprites["npxgalaybz"].clone().set_position(35, 51),
1083 sprites["npxgalaybz"].clone().set_position(20, 16),
1084 sprites["nszegiawib"].clone().set_position(7, 3).set_rotation(90),
1085 sprites["rjlbuycveu"].clone().set_position(9, 5),
1086 sprites["sfqyzhzkij"].clone().set_position(54, 5),
1087 sprites["soyhouuebz"].clone().set_position(34, 30),
1088 sprites["tihiodtoj_l"].clone().set_position(45, 25),
1089 sprites["tihiodtoj_l"].clone().set_position(25, 40),
1090 sprites["tihiodtoj_l"].clone().set_position(45, 40),
1091 sprites["ubyunwkbpx"].clone().set_position(49, 25),
1092 sprites["ubyunwkbpx"].clone().set_position(29, 40),
1093 sprites["ubyunwkbpx"].clone().set_position(49, 40),
1094 sprites["vjotnebuqo"].clone().set_position(8, 4),
1095 sprites["wgmbtyhvbc"].clone().set_position(3, 55).set_scale(2),
1096 sprites["xvrpzkggig"].clone(),
1097 sprites["yjgargdic_r"].clone().set_position(33, 20),
1098 sprites["yjgargdic_r"].clone().set_position(8, 35),
1099 ],
1100 grid_size=(64, 64),
1101 data={
1102 "StepCounter": 42,
1103 "kvynsvxbpi": 5,
1104 "GoalColor": 9,
1105 "GoalRotation": 0,
1106 "StartShape": 4,
1107 "StartColor": 14,
1108 "StartRotation": 0,
1109 "Fog": False,
1110 "StepsDecrement": 1,
1111 },
1112 ),
1113 # Level 5
1114 Level(
1115 sprites=[
1116 sprites["ajdspzphhd"].clone().set_position(14, 35),
1117 sprites["eqatonpohu"].clone().set_position(1, 53),
1118 sprites["fesygzfqui"].clone().set_position(29, 20),
1119 sprites["fesygzfqui"].clone().set_position(39, 40),
1120 sprites["ghizzeqtoh"].clone().set_position(1, 53),
1121 sprites["hoswmpiqkw"].clone().set_position(53, 4),
1122 sprites["ihdgageizm"].clone().set_position(4, 0),
1123 sprites["ihdgageizm"].clone().set_position(9, 0),
1124 sprites["ihdgageizm"].clone().set_position(4, 5),
1125 sprites["ihdgageizm"].clone().set_position(19, 0),
1126 sprites["ihdgageizm"].clone().set_position(24, 0),
1127 sprites["ihdgageizm"].clone().set_position(29, 0),
1128 sprites["ihdgageizm"].clone().set_position(39, 0),
1129 sprites["ihdgageizm"].clone().set_position(44, 0),
1130 sprites["ihdgageizm"].clone().set_position(49, 0),
1131 sprites["ihdgageizm"].clone().set_position(54, 0),
1132 sprites["ihdgageizm"].clone().set_position(59, 0),
1133 sprites["ihdgageizm"].clone().set_position(4, 10),
1134 sprites["ihdgageizm"].clone().set_position(4, 15),
1135 sprites["ihdgageizm"].clone().set_position(4, 20),
1136 sprites["ihdgageizm"].clone().set_position(4, 25),
1137 sprites["ihdgageizm"].clone().set_position(4, 30),
1138 sprites["ihdgageizm"].clone().set_position(4, 35),
1139 sprites["ihdgageizm"].clone().set_position(59, 50),
1140 sprites["ihdgageizm"].clone().set_position(59, 55),
1141 sprites["ihdgageizm"].clone().set_position(39, 55),
1142 sprites["ihdgageizm"].clone().set_position(34, 55),
1143 sprites["ihdgageizm"].clone().set_position(29, 55),
1144 sprites["ihdgageizm"].clone().set_position(24, 55),
1145 sprites["ihdgageizm"].clone().set_position(19, 55),
1146 sprites["ihdgageizm"].clone().set_position(4, 40),
1147 sprites["ihdgageizm"].clone().set_position(4, 45),
1148 sprites["ihdgageizm"].clone().set_position(4, 50),
1149 sprites["ihdgageizm"].clone().set_position(9, 50),
1150 sprites["ihdgageizm"].clone().set_position(4, 55),
1151 sprites["ihdgageizm"].clone().set_position(9, 55),
1152 sprites["ihdgageizm"].clone().set_position(14, 55),
1153 sprites["ihdgageizm"].clone().set_position(4, 45),
1154 sprites["ihdgageizm"].clone().set_position(59, 5),
1155 sprites["ihdgageizm"].clone().set_position(49, 10),
1156 sprites["ihdgageizm"].clone().set_position(49, 5),
1157 sprites["ihdgageizm"].clone().set_position(29, 30),
1158 sprites["ihdgageizm"].clone().set_position(9, 20),
1159 sprites["ihdgageizm"].clone().set_position(24, 30),
1160 sprites["ihdgageizm"].clone().set_position(24, 20),
1161 sprites["ihdgageizm"].clone().set_position(34, 30),
1162 sprites["ihdgageizm"].clone().set_position(49, 45),
1163 sprites["ihdgageizm"].clone().set_position(49, 20),
1164 sprites["ihdgageizm"].clone().set_position(44, 55),
1165 sprites["ihdgageizm"].clone().set_position(49, 55),
1166 sprites["ihdgageizm"].clone().set_position(59, 10),
1167 sprites["ihdgageizm"].clone().set_position(59, 20),
1168 sprites["ihdgageizm"].clone().set_position(59, 25),
1169 sprites["ihdgageizm"].clone().set_position(59, 35),
1170 sprites["ihdgageizm"].clone().set_position(59, 40),
1171 sprites["ihdgageizm"].clone().set_position(59, 45),
1172 sprites["ihdgageizm"].clone().set_position(39, 45),
1173 sprites["ihdgageizm"].clone().set_position(44, 45),
1174 sprites["ihdgageizm"].clone().set_position(29, 35),
1175 sprites["ihdgageizm"].clone().set_position(9, 5),
1176 sprites["ihdgageizm"].clone().set_position(34, 45),
1177 sprites["ihdgageizm"].clone().set_position(29, 5),
1178 sprites["ihdgageizm"].clone().set_position(29, 10),
1179 sprites["ihdgageizm"].clone().set_position(14, 20),
1180 sprites["ihdgageizm"].clone().set_position(14, 0),
1181 sprites["ihdgageizm"].clone().set_position(19, 30),
1182 sprites["ihdgageizm"].clone().set_position(14, 30),
1183 sprites["ihdgageizm"].clone().set_position(9, 15),
1184 sprites["ihdgageizm"].clone().set_position(29, 45),
1185 sprites["ihdgageizm"].clone().set_position(14, 50),
1186 sprites["ihdgageizm"].clone().set_position(9, 45),
1187 sprites["ihdgageizm"].clone().set_position(49, 15),
1188 sprites["ihdgageizm"].clone().set_position(59, 15),
1189 sprites["ihdgageizm"].clone().set_position(44, 10),
1190 sprites["kapcaakvb_b"].clone().set_position(34, 4),
1191 sprites["kapcaakvb_b"].clone().set_position(49, 29),
1192 sprites["krdypjjivz"].clone().set_position(54, 55),
1193 sprites["krdypjjivz"].clone().set_position(39, 30),
1194 sprites["kvynsvxbpi"].clone().set_position(55, 6),
1195 sprites["lujfinsby_t"].clone().set_position(54, 51),
1196 sprites["lujfinsby_t"].clone().set_position(39, 26),
1197 sprites["mkjdaccuuf"].clone().set_position(19, 10),
1198 sprites["mxfhnkdzvf"].clone().set_position(34, 0),
1199 sprites["mxfhnkdzvf"].clone().set_position(49, 25),
1200 sprites["npxgalaybz"].clone().set_position(15, 46),
1201 sprites["npxgalaybz"].clone().set_position(45, 6),
1202 sprites["npxgalaybz"].clone().set_position(10, 11),
1203 sprites["nszegiawib"].clone().set_position(52, 3).set_rotation(180),
1204 sprites["rhsxkxzdjz"].clone().set_position(14, 35),
1205 sprites["rjlbuycveu"].clone().set_position(54, 5),
1206 sprites["sfqyzhzkij"].clone().set_position(49, 40),
1207 sprites["soyhouuebz"].clone().set_position(29, 25),
1208 sprites["tihiodtoj_l"].clone().set_position(55, 30),
1209 sprites["tihiodtoj_l"].clone().set_position(20, 25),
1210 sprites["ubyunwkbpx"].clone().set_position(59, 30),
1211 sprites["ubyunwkbpx"].clone().set_position(24, 25),
1212 sprites["vjotnebuqo"].clone().set_position(53, 4),
1213 sprites["wgmbtyhvbc"].clone().set_position(3, 55).set_scale(2),
1214 sprites["xvrpzkggig"].clone(),
1215 sprites["yjgargdic_r"].clone().set_position(33, 20),
1216 sprites["yjgargdic_r"].clone().set_position(43, 40),
1217 ],
1218 grid_size=(64, 64),
1219 data={
1220 "StepCounter": 42,
1221 "kvynsvxbpi": 0,
1222 "GoalColor": 8,
1223 "GoalRotation": 180,
1224 "StartShape": 4,
1225 "StartColor": 12,
1226 "StartRotation": 0,
1227 "Fog": False,
1228 },
1229 ),
1230 # Level 6
1231 Level(
1232 sprites=[
1233 sprites["eqatonpohu"].clone().set_position(1, 53),
1234 sprites["ghizzeqtoh"].clone().set_position(1, 53),
1235 sprites["hahdypcdru"].clone().set_position(14, 40),
1236 sprites["hahdypcdru"].clone().set_position(14, 10),
1237 sprites["hoswmpiqkw"].clone().set_position(53, 34),
1238 sprites["hoswmpiqkw"].clone().set_position(53, 49),
1239 sprites["ihdgageizm"].clone().set_position(4, 0),
1240 sprites["ihdgageizm"].clone().set_position(9, 0),
1241 sprites["ihdgageizm"].clone().set_position(4, 5),
1242 sprites["ihdgageizm"].clone().set_position(14, 0),
1243 sprites["ihdgageizm"].clone().set_position(19, 0),
1244 sprites["ihdgageizm"].clone().set_position(24, 0),
1245 sprites["ihdgageizm"].clone().set_position(29, 0),
1246 sprites["ihdgageizm"].clone().set_position(39, 0),
1247 sprites["ihdgageizm"].clone().set_position(59, 0),
1248 sprites["ihdgageizm"].clone().set_position(4, 10),
1249 sprites["ihdgageizm"].clone().set_position(4, 15),
1250 sprites["ihdgageizm"].clone().set_position(4, 20),
1251 sprites["ihdgageizm"].clone().set_position(4, 25),
1252 sprites["ihdgageizm"].clone().set_position(4, 30),
1253 sprites["ihdgageizm"].clone().set_position(4, 35),
1254 sprites["ihdgageizm"].clone().set_position(59, 25),
1255 sprites["ihdgageizm"].clone().set_position(59, 30),
1256 sprites["ihdgageizm"].clone().set_position(59, 35),
1257 sprites["ihdgageizm"].clone().set_position(59, 40),
1258 sprites["ihdgageizm"].clone().set_position(59, 45),
1259 sprites["ihdgageizm"].clone().set_position(59, 50),
1260 sprites["ihdgageizm"].clone().set_position(59, 55),
1261 sprites["ihdgageizm"].clone().set_position(49, 55),
1262 sprites["ihdgageizm"].clone().set_position(44, 55),
1263 sprites["ihdgageizm"].clone().set_position(39, 55),
1264 sprites["ihdgageizm"].clone().set_position(34, 55),
1265 sprites["ihdgageizm"].clone().set_position(29, 55),
1266 sprites["ihdgageizm"].clone().set_position(24, 55),
1267 sprites["ihdgageizm"].clone().set_position(19, 55),
1268 sprites["ihdgageizm"].clone().set_position(4, 40),
1269 sprites["ihdgageizm"].clone().set_position(4, 45),
1270 sprites["ihdgageizm"].clone().set_position(4, 50),
1271 sprites["ihdgageizm"].clone().set_position(9, 50),
1272 sprites["ihdgageizm"].clone().set_position(4, 55),
1273 sprites["ihdgageizm"].clone().set_position(9, 55),
1274 sprites["ihdgageizm"].clone().set_position(14, 55),
1275 sprites["ihdgageizm"].clone().set_position(4, 45),
1276 sprites["ihdgageizm"].clone().set_position(34, 0),
1277 sprites["ihdgageizm"].clone().set_position(59, 10),
1278 sprites["ihdgageizm"].clone().set_position(59, 5),
1279 sprites["ihdgageizm"].clone().set_position(29, 35),
1280 sprites["ihdgageizm"].clone().set_position(24, 35),
1281 sprites["ihdgageizm"].clone().set_position(34, 35),
1282 sprites["ihdgageizm"].clone().set_position(49, 35),
1283 sprites["ihdgageizm"].clone().set_position(49, 40),
1284 sprites["ihdgageizm"].clone().set_position(49, 45),
1285 sprites["ihdgageizm"].clone().set_position(49, 50),
1286 sprites["ihdgageizm"].clone().set_position(49, 30),
1287 sprites["ihdgageizm"].clone().set_position(44, 30),
1288 sprites["ihdgageizm"].clone().set_position(19, 15),
1289 sprites["ihdgageizm"].clone().set_position(14, 35),
1290 sprites["ihdgageizm"].clone().set_position(24, 15),
1291 sprites["ihdgageizm"].clone().set_position(34, 30),
1292 sprites["ihdgageizm"].clone().set_position(19, 35),
1293 sprites["ihdgageizm"].clone().set_position(29, 15),
1294 sprites["ihdgageizm"].clone().set_position(14, 30),
1295 sprites["ihdgageizm"].clone().set_position(34, 15),
1296 sprites["ihdgageizm"].clone().set_position(14, 15),
1297 sprites["ihdgageizm"].clone().set_position(34, 20),
1298 sprites["ihdgageizm"].clone().set_position(14, 20),
1299 sprites["ihdgageizm"].clone().set_position(54, 55),
1300 sprites["ihdgageizm"].clone().set_position(44, 0),
1301 sprites["ihdgageizm"].clone().set_position(54, 0),
1302 sprites["ihdgageizm"].clone().set_position(59, 15),
1303 sprites["ihdgageizm"].clone().set_position(44, 25),
1304 sprites["ihdgageizm"].clone().set_position(59, 20),
1305 sprites["ihdgageizm"].clone().set_position(44, 35),
1306 sprites["ihdgageizm"].clone().set_position(44, 50),
1307 sprites["ihdgageizm"].clone().set_position(39, 50),
1308 sprites["ihdgageizm"].clone().set_position(44, 45),
1309 sprites["ihdgageizm"].clone().set_position(44, 40),
1310 sprites["ihdgageizm"].clone().set_position(44, 5),
1311 sprites["ihdgageizm"].clone().set_position(44, 10),
1312 sprites["ihdgageizm"].clone().set_position(54, 15),
1313 sprites["kapcaakvb_b"].clone().set_position(49, 4),
1314 sprites["kvynsvxbpi"].clone().set_position(55, 51),
1315 sprites["kvynsvxbpi"].clone().set_position(55, 36),
1316 sprites["mkjdaccuuf"].clone().set_position(14, 10),
1317 sprites["mxfhnkdzvf"].clone().set_position(49, 0),
1318 sprites["njpewhmtfd"].clone().set_position(53, 34),
1319 sprites["npxgalaybz"].clone().set_position(40, 6),
1320 sprites["npxgalaybz"].clone().set_position(10, 46),
1321 sprites["npxgalaybz"].clone().set_position(10, 6),
1322 sprites["nszegiawib"].clone().set_position(52, 48),
1323 sprites["nszegiawib"].clone().set_position(52, 33),
1324 sprites["rhsxkxzdjz"].clone().set_position(34, 40),
1325 sprites["rjlbuycveu"].clone().set_position(54, 50),
1326 sprites["rjlbuycveu"].clone().set_position(54, 35),
1327 sprites["sfqyzhzkij"].clone().set_position(24, 50),
1328 sprites["soyhouuebz"].clone().set_position(24, 30),
1329 sprites["tihiodtoj_l"].clone().set_position(50, 20),
1330 sprites["ubyunwkbpx"].clone().set_position(54, 20),
1331 sprites["vjotnebuqo"].clone().set_position(53, 49),
1332 sprites["wgmbtyhvbc"].clone().set_position(3, 55).set_scale(2),
1333 sprites["xfmluydglp"].clone().set_position(19, 20),
1334 sprites["xvrpzkggig"].clone(),
1335 ],
1336 grid_size=(64, 64),
1337 data={
1338 "StepCounter": 42,
1339 "kvynsvxbpi": [5, 0],
1340 "GoalColor": [9, 8],
1341 "GoalRotation": [90, 180],
1342 "StartShape": 0,
1343 "StartColor": 14,
1344 "StartRotation": 0,
1345 "Fog": False,
1346 "StepsDecrement": 1,
1347 },
1348 ),
1349 # Level 7
1350 Level(
1351 sprites=[
1352 sprites["eqatonpohu"].clone().set_position(1, 53),
1353 sprites["ghizzeqtoh"].clone().set_position(1, 53),
1354 sprites["hoswmpiqkw"].clone().set_position(28, 49),
1355 sprites["ihdgageizm"].clone().set_position(4, 0),
1356 sprites["ihdgageizm"].clone().set_position(9, 0),
1357 sprites["ihdgageizm"].clone().set_position(4, 5),
1358 sprites["ihdgageizm"].clone().set_position(14, 0),
1359 sprites["ihdgageizm"].clone().set_position(19, 0),
1360 sprites["ihdgageizm"].clone().set_position(24, 0),
1361 sprites["ihdgageizm"].clone().set_position(29, 0),
1362 sprites["ihdgageizm"].clone().set_position(39, 0),
1363 sprites["ihdgageizm"].clone().set_position(44, 0),
1364 sprites["ihdgageizm"].clone().set_position(49, 0),
1365 sprites["ihdgageizm"].clone().set_position(54, 0),
1366 sprites["ihdgageizm"].clone().set_position(59, 0),
1367 sprites["ihdgageizm"].clone().set_position(4, 10),
1368 sprites["ihdgageizm"].clone().set_position(4, 15),
1369 sprites["ihdgageizm"].clone().set_position(4, 20),
1370 sprites["ihdgageizm"].clone().set_position(4, 25),
1371 sprites["ihdgageizm"].clone().set_position(4, 30),
1372 sprites["ihdgageizm"].clone().set_position(4, 35),
1373 sprites["ihdgageizm"].clone().set_position(59, 20),
1374 sprites["ihdgageizm"].clone().set_position(59, 30),
1375 sprites["ihdgageizm"].clone().set_position(59, 45),
1376 sprites["ihdgageizm"].clone().set_position(59, 50),
1377 sprites["ihdgageizm"].clone().set_position(59, 55),
1378 sprites["ihdgageizm"].clone().set_position(59, 55),
1379 sprites["ihdgageizm"].clone().set_position(54, 55),
1380 sprites["ihdgageizm"].clone().set_position(49, 55),
1381 sprites["ihdgageizm"].clone().set_position(44, 55),
1382 sprites["ihdgageizm"].clone().set_position(39, 55),
1383 sprites["ihdgageizm"].clone().set_position(34, 55),
1384 sprites["ihdgageizm"].clone().set_position(29, 55),
1385 sprites["ihdgageizm"].clone().set_position(24, 55),
1386 sprites["ihdgageizm"].clone().set_position(19, 55),
1387 sprites["ihdgageizm"].clone().set_position(4, 40),
1388 sprites["ihdgageizm"].clone().set_position(4, 45),
1389 sprites["ihdgageizm"].clone().set_position(4, 50),
1390 sprites["ihdgageizm"].clone().set_position(9, 50),
1391 sprites["ihdgageizm"].clone().set_position(4, 55),
1392 sprites["ihdgageizm"].clone().set_position(9, 55),
1393 sprites["ihdgageizm"].clone().set_position(14, 55),
1394 sprites["ihdgageizm"].clone().set_position(4, 45),
1395 sprites["ihdgageizm"].clone().set_position(34, 0),
1396 sprites["ihdgageizm"].clone().set_position(59, 10),
1397 sprites["ihdgageizm"].clone().set_position(59, 5),
1398 sprites["ihdgageizm"].clone().set_position(24, 40),
1399 sprites["ihdgageizm"].clone().set_position(44, 10),
1400 sprites["ihdgageizm"].clone().set_position(44, 5),
1401 sprites["ihdgageizm"].clone().set_position(44, 15),
1402 sprites["ihdgageizm"].clone().set_position(39, 45),
1403 sprites["ihdgageizm"].clone().set_position(24, 45),
1404 sprites["ihdgageizm"].clone().set_position(34, 45),
1405 sprites["ihdgageizm"].clone().set_position(24, 50),
1406 sprites["ihdgageizm"].clone().set_position(34, 50),
1407 sprites["ihdgageizm"].clone().set_position(44, 20),
1408 sprites["ihdgageizm"].clone().set_position(44, 25),
1409 sprites["ihdgageizm"].clone().set_position(19, 50),
1410 sprites["ihdgageizm"].clone().set_position(24, 35),
1411 sprites["ihdgageizm"].clone().set_position(39, 50),
1412 sprites["ihdgageizm"].clone().set_position(9, 45),
1413 sprites["ihdgageizm"].clone().set_position(14, 50),
1414 sprites["ihdgageizm"].clone().set_position(19, 45),
1415 sprites["ihdgageizm"].clone().set_position(29, 15),
1416 sprites["ihdgageizm"].clone().set_position(59, 15),
1417 sprites["ihdgageizm"].clone().set_position(59, 25),
1418 sprites["ihdgageizm"].clone().set_position(59, 35),
1419 sprites["ihdgageizm"].clone().set_position(59, 40),
1420 sprites["ihdgageizm"].clone().set_position(44, 45),
1421 sprites["ihdgageizm"].clone().set_position(24, 15),
1422 sprites["ihdgageizm"].clone().set_position(24, 20),
1423 sprites["ihdgageizm"].clone().set_position(19, 20),
1424 sprites["ihdgageizm"].clone().set_position(54, 45),
1425 sprites["ihdgageizm"].clone().set_position(34, 40),
1426 sprites["ihdgageizm"].clone().set_position(34, 5),
1427 sprites["ihdgageizm"].clone().set_position(24, 10),
1428 sprites["ihdgageizm"].clone().set_position(24, 30),
1429 sprites["ihdgageizm"].clone().set_position(19, 30),
1430 sprites["ihdgageizm"].clone().set_position(14, 20),
1431 sprites["ihdgageizm"].clone().set_position(14, 30),
1432 sprites["irgjxweouz"].clone().set_position(54, 5),
1433 sprites["kapcaakvb_b"].clone().set_position(39, 19),
1434 sprites["krdypjjivz"].clone().set_position(34, 35),
1435 sprites["kvynsvxbpi"].clone().set_position(30, 51),
1436 sprites["lujfinsby_t"].clone().set_position(34, 31),
1437 sprites["mkjdaccuuf"].clone().set_position(19, 40),
1438 sprites["mxfhnkdzvf"].clone().set_position(39, 15),
1439 sprites["npxgalaybz"].clone().set_position(30, 21),
1440 sprites["npxgalaybz"].clone().set_position(50, 6),
1441 sprites["npxgalaybz"].clone().set_position(15, 46),
1442 sprites["npxgalaybz"].clone().set_position(40, 6),
1443 sprites["npxgalaybz"].clone().set_position(55, 51),
1444 sprites["npxgalaybz"].clone().set_position(10, 6),
1445 sprites["nszegiawib"].clone().set_position(27, 48),
1446 sprites["rhsxkxzdjz"].clone().set_position(54, 10),
1447 sprites["rjlbuycveu"].clone().set_position(29, 50),
1448 sprites["sfqyzhzkij"].clone().set_position(19, 15),
1449 sprites["soyhouuebz"].clone().set_position(9, 40),
1450 sprites["tihiodtoj_l"].clone().set_position(40, 30),
1451 sprites["ubyunwkbpx"].clone().set_position(44, 30),
1452 sprites["vjotnebuqo"].clone().set_position(28, 49),
1453 sprites["wgmbtyhvbc"].clone().set_position(3, 55).set_scale(2),
1454 sprites["xvrpzkggig"].clone(),
1455 ],
1456 grid_size=(64, 64),
1457 data={
1458 "StepCounter": 42,
1459 "kvynsvxbpi": 0,
1460 "GoalColor": 8,
1461 "GoalRotation": 180,
1462 "StartShape": 1,
1463 "StartColor": 12,
1464 "StartRotation": 0,
1465 "Fog": True,
1466 },
1467 ),
1468]
1469BACKGROUND_COLOR = 3
1470PADDING_COLOR = 3
1471ubupgomgin = -1
1472epeqflmtfc = 0
1473dqifgqaxrg = 1
1474oazrnhzatr = 2
1475iisukudgvu = 3
1476kacnekcwsp = 4
1477avbdwkmqcy = 5
1478ijbilzmvdl = 6
1479yffnqoouus = 7
1480tqogkgimes = 8
1481jninpsotet = 9
1482vgcsccvckt = 10
1483dhxmtlewyv = 11
1484epqvqkpffo = 12
1485qqkmepheqb = 13
1486bejggpjowv = 14
1487eqvdisyxbr = 15
1488zoghkczvvt = 5
1489xvzyzqolqz = 5
1490
1491
1492class hbuhvkxlhc(RenderableUserDisplay):
1493 """."""
1494
1495 bfdcztirdu: List[Tuple[int, int]]
1496
1497 def __init__(self, vjhajnbdzr: "Ls20", osgviligwp: int):
1498 self.vjhajnbdzr = vjhajnbdzr
1499 self.osgviligwp = osgviligwp
1500 self.current_steps = osgviligwp
1501 self.efipnixsvl = 1
1502
1503 def kbkdzqocik(self, kapizhweba: int) -> None:
1504 self.current_steps = max(0, min(kapizhweba, self.osgviligwp))
1505
1506 def vytykscvhe(self, efipnixsvl: int) -> None:
1507 self.efipnixsvl = efipnixsvl
1508
1509 def mfyzdfvxsm(self) -> bool:
1510 if self.current_steps >= 0:
1511 self.current_steps -= self.efipnixsvl
1512 return self.current_steps >= 0
1513
1514 def nzukewekzr(self) -> None:
1515 self.current_steps = self.osgviligwp
1516
1517 def render_interface(self, frame: np.ndarray) -> np.ndarray:
1518 if self.osgviligwp == 0 or self.vjhajnbdzr.ebfuxzbvn:
1519 return frame
1520 yydgfgfvvh = 1.5
1521 if self.vjhajnbdzr.oeuabekjf:
1522 for i in range(64):
1523 for fbklvtfnjh in range(64):
1524 if (
1525 math.dist(
1526 (i, fbklvtfnjh),
1527 (
1528 self.vjhajnbdzr.gudziatsk.y + yydgfgfvvh,
1529 self.vjhajnbdzr.gudziatsk.x + yydgfgfvvh,
1530 ),
1531 )
1532 > 20.0
1533 ):
1534 frame[i, fbklvtfnjh] = avbdwkmqcy
1535 if self.vjhajnbdzr.htkmubhry and self.vjhajnbdzr.htkmubhry.is_visible:
1536 sprite = self.vjhajnbdzr.htkmubhry.render()
1537 wmdkkxqkw = 3
1538 toxqhfsju = 55
1539 for i in range(self.vjhajnbdzr.htkmubhry.height):
1540 for rejdvlfhdv in range(self.vjhajnbdzr.htkmubhry.width):
1541 if sprite[i][rejdvlfhdv] != -1:
1542 frame[toxqhfsju + i, wmdkkxqkw + rejdvlfhdv] = sprite[i][rejdvlfhdv]
1543 for i in range(self.osgviligwp):
1544 wmdkkxqkw = 13 + i
1545 toxqhfsju = 61
1546 frame[toxqhfsju : toxqhfsju + 2, wmdkkxqkw] = dhxmtlewyv if self.osgviligwp - i - 1 < self.current_steps else iisukudgvu
1547 for bsyrmrqsrq in range(3):
1548 wmdkkxqkw = 56 + 3 * bsyrmrqsrq
1549 toxqhfsju = 61
1550 for x in range(2):
1551 frame[toxqhfsju : toxqhfsju + 2, wmdkkxqkw + x] = tqogkgimes if self.vjhajnbdzr.aqygnziho > bsyrmrqsrq else iisukudgvu
1552 return frame
1553
1554
1555class xajlyftlyn:
1556 def wgxrzqzazj(self) -> bool:
1557 return False
1558
1559
1560class twkzhcfelv(xajlyftlyn):
1561 qeekhxkoad = 8
1562 boafatmkhi = 6
1563
1564 def __init__(self, sprite: Sprite, fjzuynaokm: Set[Tuple[int, int]]) -> None:
1565 self.fjzuynaokm = fjzuynaokm
1566 self.sprite = sprite
1567 self.sprite.set_blocking(BlockingMode.BOUNDING_BOX)
1568 self.width = self.sprite.width
1569 self.height = self.sprite.height
1570 self.start_x = self.sprite.x
1571 self.start_y = self.sprite.y
1572 self.dx = 0
1573 self.dy = 0
1574 if sprite.name.endswith("t"):
1575 self.dy = -1
1576 elif sprite.name.endswith("b"):
1577 self.dy = 1
1578 elif sprite.name.endswith("r"):
1579 self.dx = 1
1580 elif sprite.name.endswith("l"):
1581 self.dx = -1
1582 self.target_x = self.sprite.x
1583 self.target_y = self.sprite.y
1584 self.is_pushing = False
1585 self.aqxtoxeino: Optional[Sprite] = None
1586 self._anim_elapsed = 0
1587 self._anim_duration = 1
1588 self._anim_from_x = float(self.sprite.x)
1589 self._anim_from_y = float(self.sprite.y)
1590 self._anim_to_x = float(self.sprite.x)
1591 self._anim_to_y = float(self.sprite.y)
1592 self._carry_x = 0.0
1593 self._carry_y = 0.0
1594
1595 def ullzqnksoj(self, aqxtoxeino: Sprite) -> int:
1596 wall_cx, wall_cy = (self.sprite.x + 1 * self.dx, self.sprite.y + 1 * self.dy)
1597 xwjnqmqiaz = None
1598 for acdeadlbzx in range(1, 12):
1599 nskortmtde = wall_cx + self.dx * self.width * acdeadlbzx
1600 wsotwbexvh = wall_cy + self.dy * self.height * acdeadlbzx
1601 if (nskortmtde, wsotwbexvh) in self.fjzuynaokm:
1602 xwjnqmqiaz = acdeadlbzx
1603 break
1604 if xwjnqmqiaz is None:
1605 return 0
1606 return max(0, xwjnqmqiaz - 1)
1607
1608 def mfnyvivrar(self, dxegqdlzda: float) -> float:
1609 if dxegqdlzda < 0.5:
1610 return 4 * dxegqdlzda * dxegqdlzda * dxegqdlzda
1611 return 1 - (-2 * dxegqdlzda + 2) ** 3 / 2
1612
1613 def monctmxmpp(self, dutvzjyvok: int, xxnitqxuds: int, ilzothrych: int) -> None:
1614 self._anim_elapsed = 0
1615 self._anim_duration = max(1, int(ilzothrych))
1616 self._anim_from_x = float(self.sprite.x)
1617 self._anim_from_y = float(self.sprite.y)
1618 self._anim_to_x = float(dutvzjyvok)
1619 self._anim_to_y = float(xxnitqxuds)
1620 self._carry_x = 0.0
1621 self._carry_y = 0.0
1622
1623 def qeoitwygzm(self, srkcilioyp: bool) -> bool:
1624 if self._anim_elapsed >= self._anim_duration:
1625 dx = int(round(self._anim_to_x - self.sprite.x))
1626 dy = int(round(self._anim_to_y - self.sprite.y))
1627 if dx or dy:
1628 self.sprite.move(dx, dy)
1629 if srkcilioyp and self.aqxtoxeino is not None:
1630 self.aqxtoxeino.move(dx, dy)
1631 return False
1632 self._anim_elapsed += 1
1633 dxegqdlzda = self._anim_elapsed / self._anim_duration
1634 hpaysqkbgh = self.mfnyvivrar(dxegqdlzda)
1635 enzdcdjnzt = self._anim_from_x + (self._anim_to_x - self._anim_from_x) * hpaysqkbgh
1636 kyaecjvpph = self._anim_from_y + (self._anim_to_y - self._anim_from_y) * hpaysqkbgh
1637 kdsuujxuag = enzdcdjnzt - float(self.sprite.x) + self._carry_x
1638 sihdbliheu = kyaecjvpph - float(self.sprite.y) + self._carry_y
1639 vzkxmdfnba = int(kdsuujxuag)
1640 acjrijfisx = int(sihdbliheu)
1641 self._carry_x = kdsuujxuag - vzkxmdfnba
1642 self._carry_y = sihdbliheu - acjrijfisx
1643 if vzkxmdfnba or acjrijfisx:
1644 self.sprite.move(vzkxmdfnba, acjrijfisx)
1645 if srkcilioyp and self.aqxtoxeino is not None:
1646 self.aqxtoxeino.move(vzkxmdfnba, acjrijfisx)
1647 return True
1648
1649 def prpxgfxlcm(self, aqxtoxeino: Sprite) -> bool:
1650 if not self.sprite.collides_with(aqxtoxeino):
1651 return False
1652 gguyvrkohc = self.ullzqnksoj(aqxtoxeino)
1653 if gguyvrkohc <= 0:
1654 return False
1655 self.aqxtoxeino = aqxtoxeino
1656 self.is_pushing = True
1657 self.target_x = self.start_x + self.dx * self.width * gguyvrkohc
1658 self.target_y = self.start_y + self.dy * self.height * gguyvrkohc
1659 self.monctmxmpp(self.target_x, self.target_y, self.qeekhxkoad)
1660 return True
1661
1662 def wgxrzqzazj(self) -> bool:
1663 if self.is_pushing:
1664 if self.qeoitwygzm(srkcilioyp=True):
1665 return True
1666 self.target_x = self.start_x
1667 self.target_y = self.start_y
1668 self.is_pushing = False
1669 self.monctmxmpp(self.target_x, self.target_y, self.boafatmkhi)
1670 return True
1671 return self.qeoitwygzm(srkcilioyp=False)
1672
1673
1674class dboxixicic:
1675 def __init__(self, oypxsalqjo: Sprite, sprite: Sprite, pawjyrnadt: int = 5) -> None:
1676 self.bfdcztirdu = oypxsalqjo
1677 self._sprite = sprite
1678 self._cell = pawjyrnadt
1679 self._start_x = sprite.x
1680 self._start_y = sprite.y
1681 self._dir = 0
1682 self._undo_x: Optional[int] = None
1683 self._undo_y: Optional[int] = None
1684 self._undo_dir: Optional[int] = None
1685
1686 def bkuguqrpvq(self) -> None:
1687 self._dir = 0
1688 self._sprite.set_position(self._start_x, self._start_y)
1689 self._undo_x = None
1690 self._undo_y = None
1691 self._undo_dir = None
1692
1693 def qrttfzbifu(self) -> None:
1694 self._dir = (self._dir + 2) % 4
1695
1696 def npdjlrkhsg(self) -> Tuple[int, int]:
1697 if not self.bfdcztirdu:
1698 return (0, 0)
1699 msmljuaejl = (
1700 self._dir,
1701 (self._dir - 1) % 4,
1702 (self._dir + 1) % 4,
1703 (self._dir + 2) % 4,
1704 )
1705 for acdeadlbzx in msmljuaejl:
1706 dx, dy = self.nakogfhyus(acdeadlbzx)
1707 rbaqncskoi = self._sprite.x + dx * self._cell
1708 uodlwwyprt = self._sprite.y + dy * self._cell
1709 if self.iiosonyanc(rbaqncskoi, uodlwwyprt):
1710 self._dir = acdeadlbzx
1711 return (dx, dy)
1712 return (0, 0)
1713
1714 def step(self) -> bool:
1715 folqexnjmf = self._sprite.x
1716 yxlpsejtoh = self._sprite.y
1717 wsdeleuewc = self._dir
1718 dx, dy = self.npdjlrkhsg()
1719 if dx == 0 and dy == 0:
1720 self._undo_x = None
1721 self._undo_y = None
1722 self._undo_dir = None
1723 return False
1724 self._undo_x = folqexnjmf
1725 self._undo_y = yxlpsejtoh
1726 self._undo_dir = wsdeleuewc
1727 self._sprite.set_position(folqexnjmf + dx * self._cell, yxlpsejtoh + dy * self._cell)
1728 return True
1729
1730 def fwtnsrvkrz(self) -> bool:
1731 if self._undo_x is None or self._undo_y is None or self._undo_dir is None:
1732 return False
1733 self._sprite.set_position(self._undo_x, self._undo_y)
1734 self._dir = self._undo_dir
1735 self._undo_x = None
1736 self._undo_y = None
1737 self._undo_dir = None
1738 return True
1739
1740 def iiosonyanc(self, x: int, y: int) -> bool:
1741 if not self.bfdcztirdu:
1742 return False
1743 return self.vtfcqjvbeo(x, y) and self.uczkzlpcwg(x, y) >= 0
1744
1745 def vtfcqjvbeo(self, x: int, y: int) -> bool:
1746 return x >= self.bfdcztirdu.x and y >= self.bfdcztirdu.y and (x < self.bfdcztirdu.x + self.bfdcztirdu.width) and (y < self.bfdcztirdu.y + self.bfdcztirdu.height)
1747
1748 def uczkzlpcwg(self, x: int, y: int) -> int:
1749 akcoyirktv = x - self.bfdcztirdu.x
1750 cgpwxobidt = y - self.bfdcztirdu.y
1751 if akcoyirktv < 0 or akcoyirktv >= self.bfdcztirdu.width or cgpwxobidt < 0 or (cgpwxobidt >= self.bfdcztirdu.height):
1752 return -1
1753 return int(self.bfdcztirdu.pixels[cgpwxobidt, akcoyirktv])
1754
1755 def nakogfhyus(self, acdeadlbzx: int) -> Tuple[int, int]:
1756 if acdeadlbzx == 0:
1757 return (0, 1)
1758 if acdeadlbzx == 1:
1759 return (1, 0)
1760 if acdeadlbzx == 2:
1761 return (0, -1)
1762 return (-1, 0)
1763
1764
1765class Ls20(ARCBaseGame):
1766 def __init__(self) -> None:
1767 shumwqpzsq = levels[0].get_data("StepCounter") if levels else 0
1768 osgviligwp = shumwqpzsq if shumwqpzsq else 0
1769 self._step_counter_ui = hbuhvkxlhc(self, osgviligwp)
1770 self.ijessuuig = []
1771 self.tnkekoeuk = [epqvqkpffo, jninpsotet, bejggpjowv, tqogkgimes]
1772 self.dhksvilbb = [0, 90, 180, 270]
1773 self.ijessuuig.append(sprites["gngifvjddu"])
1774 self.ijessuuig.append(sprites["fywfjzkxlm"])
1775 self.ijessuuig.append(sprites["mkfbgalsbe"])
1776 self.ijessuuig.append(sprites["nnjhdcanjk"])
1777 self.ijessuuig.append(sprites["grcpfuizfp"])
1778 self.ijessuuig.append(sprites["ubspnhafvq"])
1779 self.oeuabekjf = False
1780 xngzmcbxu = Camera(
1781 width=16,
1782 height=16,
1783 background=BACKGROUND_COLOR,
1784 letter_box=PADDING_COLOR,
1785 interfaces=[self._step_counter_ui],
1786 )
1787 super().__init__(game_id="ls20", levels=levels, camera=xngzmcbxu, available_actions=[1, 2, 3, 4])
1788 self.wbcenorpju()
1789
1790 def wbcenorpju(self) -> None:
1791 """."""
1792 hgkhqetaxy = self.current_level.get_data("StepsDecrement")
1793 efipnixsvl = 2 if hgkhqetaxy is None else hgkhqetaxy
1794 self._step_counter_ui.vytykscvhe(efipnixsvl)
1795 rnaomksehd = self.current_level.get_data("StepCounter")
1796 if rnaomksehd:
1797 self._step_counter_ui.osgviligwp = rnaomksehd
1798 self._step_counter_ui.nzukewekzr()
1799
1800 def on_set_level(self, level: Level) -> None:
1801 """."""
1802 self._levels[self._current_level_index] = self._clean_levels[self._current_level_index].clone()
1803 self.gudziatsk = self.current_level.get_sprites_by_tag("sfqyzhzkij")[0]
1804 self.gudziatsk.set_blocking(BlockingMode.BOUNDING_BOX)
1805 self.gisrhqpee = self.gudziatsk.width
1806 self.tbwnoxqgc = self.gudziatsk.height
1807 self.htkmubhry = self.current_level.get_sprites_by_tag("wgmbtyhvbc")[0]
1808 self.htkmubhry_2 = self.current_level.get_sprites_by_tag("eqatonpohu")[0]
1809 self.tsynhckng = self.current_level.get_sprites_by_tag("ghizzeqtoh")[0]
1810 self.srgbthxut = self.current_level.get_sprites_by_tag("kvynsvxbpi")
1811 self.plrpelhym = self.current_level.get_sprites_by_tag("rjlbuycveu")
1812 self.lvrnuajbl = [False] * len(self.srgbthxut)
1813 self.fwckfzsyc = 0
1814 self.hiaauhahz = 0
1815 self.cklxociuu = 0
1816 self.wbcenorpju()
1817 ezhluetmc = self.current_level.grid_size
1818 if ezhluetmc is not None:
1819 self.drtdqwdbc = ezhluetmc[0]
1820 self.qlgmdayuo = ezhluetmc[1]
1821 self.ehwheiwsk = []
1822 self.yjdexjsoa = []
1823 self.oeuabekjf = self.current_level.get_data("Fog")
1824 self.ldxlnycps = self.current_level.get_data("kvynsvxbpi")
1825 if isinstance(self.ldxlnycps, int):
1826 self.ldxlnycps = [self.ldxlnycps]
1827 ldgzgjdsrf = self.current_level.get_data("GoalRotation")
1828 if isinstance(ldgzgjdsrf, int):
1829 ldgzgjdsrf = [ldgzgjdsrf]
1830 lbgtuaplev = self.current_level.get_data("GoalColor")
1831 if isinstance(lbgtuaplev, int):
1832 lbgtuaplev = [lbgtuaplev]
1833 for dinyecvyq in range(len(self.plrpelhym)):
1834 self.ehwheiwsk.append(self.dhksvilbb.index(ldgzgjdsrf[dinyecvyq]))
1835 self.yjdexjsoa.append(self.tnkekoeuk.index(lbgtuaplev[dinyecvyq]))
1836 self.srgbthxut[dinyecvyq].pixels = self.ijessuuig[self.ldxlnycps[dinyecvyq]].pixels.copy()
1837 self.srgbthxut[dinyecvyq].color_remap(epeqflmtfc, self.tnkekoeuk[self.yjdexjsoa[dinyecvyq]])
1838 self.srgbthxut[dinyecvyq].set_rotation(self.dhksvilbb[self.ehwheiwsk[dinyecvyq]])
1839 self.qetwzqzzik()
1840 self.aqdxgoyvu = sprites["sqpmiygfvh"].clone()
1841 self.current_level.add_sprite(self.aqdxgoyvu)
1842 self.aqdxgoyvu.set_visible(False)
1843 self.aqygnziho = 3
1844 self.ofoahudlo: List[Sprite] = []
1845 self.byotxmvkt: List[Sprite] = []
1846 self.alsxlhizr: List[Sprite] = []
1847 self.ebfuxzbvn = 0
1848 self.akoadfsur = 0
1849 self.ltwrkifkx = self.gudziatsk.x
1850 self.zyoimjaei = self.gudziatsk.y
1851 self.wsoslqeku: List[dboxixicic] = []
1852 for uedjpektbg in self.current_level.get_sprites_by_tag("xfmluydglp"):
1853 for ocajwvfus in ("ttfwljgohq", "soyhouuebz", "rhsxkxzdjz"):
1854 for hasivfwip in self.current_level.get_sprites_by_tag(ocajwvfus):
1855 if uedjpektbg.collides_with(hasivfwip, ignoreMode=True):
1856 self.wsoslqeku.append(dboxixicic(uedjpektbg, hasivfwip))
1857 fjzuynaokm: Set[Tuple[int, int]] = set()
1858 for qoceexndvw in self.current_level.get_sprites_by_tag("ihdgageizm"):
1859 fjzuynaokm.add((qoceexndvw.x, qoceexndvw.y))
1860 for grbudvkafa in self.current_level.get_sprites_by_tag("rjlbuycveu"):
1861 fjzuynaokm.add((grbudvkafa.x, grbudvkafa.y))
1862 self.hasivfwip: List[twkzhcfelv] = []
1863 for ojwauijaoq in self.current_level.get_sprites_by_tag("gbvqrjtaqo"):
1864 self.hasivfwip.append(twkzhcfelv(ojwauijaoq, fjzuynaokm))
1865 self.euemavvxz: List[xajlyftlyn] = []
1866
1867 def mrznumynfe(self, zccgflmau: int, qoxqcbqfp: int, xzejejszi: int, eutrvdkbx: int) -> List[Sprite]:
1868 """."""
1869 ehiovmywu = self.current_level._sprites
1870 return [xfemxgpuj for xfemxgpuj in ehiovmywu if xfemxgpuj.x >= zccgflmau and xfemxgpuj.x < zccgflmau + xzejejszi and (xfemxgpuj.y >= qoxqcbqfp) and (xfemxgpuj.y < qoxqcbqfp + eutrvdkbx)]
1871
1872 def txnfzvzetn(self, juldcpkjse: int, ullicjtklz: int) -> Tuple[bool, bool]:
1873 ttiyzlpkgh = self.mrznumynfe(juldcpkjse, ullicjtklz, self.gisrhqpee, self.tbwnoxqgc)
1874 bwdzgjttjp = False
1875 yubyobdoss = False
1876 for mvcsnkcqz in ttiyzlpkgh:
1877 if mvcsnkcqz.tags is None:
1878 break
1879 elif "ihdgageizm" in mvcsnkcqz.tags:
1880 bwdzgjttjp = True
1881 break
1882 elif "rjlbuycveu" in mvcsnkcqz.tags:
1883 wyhfvzxukh = self.plrpelhym.index(mvcsnkcqz)
1884 if not self.bejndxqqzf(wyhfvzxukh):
1885 self.htkmubhry_2.color_remap(None, epeqflmtfc)
1886 self.akoadfsur = zoghkczvvt
1887 bwdzgjttjp = True
1888 elif "npxgalaybz" in mvcsnkcqz.tags:
1889 yubyobdoss = True
1890 self._step_counter_ui.kbkdzqocik(self._step_counter_ui.osgviligwp)
1891 self.ofoahudlo.append(mvcsnkcqz)
1892 self.current_level.remove_sprite(mvcsnkcqz)
1893 elif "ttfwljgohq" in mvcsnkcqz.tags:
1894 self.fwckfzsyc = (self.fwckfzsyc + 1) % len(self.ijessuuig)
1895 self.htkmubhry.pixels = self.ijessuuig[self.fwckfzsyc].pixels.copy()
1896 self.htkmubhry.color_remap(epeqflmtfc, self.tnkekoeuk[self.hiaauhahz])
1897 if self.vqfjzzkhid():
1898 self.akoadfsur = zoghkczvvt
1899 elif "soyhouuebz" in mvcsnkcqz.tags:
1900 lwphyolnjb = (self.hiaauhahz + 1) % len(self.tnkekoeuk)
1901 self.htkmubhry.color_remap(self.tnkekoeuk[self.hiaauhahz], self.tnkekoeuk[lwphyolnjb])
1902 self.hiaauhahz = lwphyolnjb
1903 if self.vqfjzzkhid():
1904 self.akoadfsur = zoghkczvvt
1905 elif "rhsxkxzdjz" in mvcsnkcqz.tags:
1906 self.cklxociuu = (self.cklxociuu + 1) % 4
1907 self.htkmubhry.set_rotation(self.dhksvilbb[self.cklxociuu])
1908 if self.vqfjzzkhid():
1909 self.akoadfsur = zoghkczvvt
1910 return (bwdzgjttjp, yubyobdoss)
1911
1912 def step(self) -> None:
1913 if self.euemavvxz:
1914 for i in range(len(self.euemavvxz) - 1, -1, -1):
1915 kgppvertad = self.euemavvxz[i]
1916 if not kgppvertad.wgxrzqzazj():
1917 del self.euemavvxz[i]
1918 if not self.euemavvxz:
1919 self.txnfzvzetn(self.gudziatsk.x, self.gudziatsk.y)
1920 self.complete_action()
1921 return
1922 if self.ebfuxzbvn > 0:
1923 self.ebfuxzbvn -= 1
1924 if self.ebfuxzbvn > 0:
1925 return
1926 self.aqdxgoyvu.set_visible(False)
1927 self.htkmubhry.set_visible(True)
1928 self.complete_action()
1929 return
1930 if self.akoadfsur > 0:
1931 self.akoadfsur -= 1
1932 if self.akoadfsur > 0:
1933 return
1934 self.htkmubhry_2.color_remap(None, avbdwkmqcy)
1935 self.tsynhckng.set_visible(False)
1936 for pidqulszaw in self.current_level.get_sprites_by_tag("hoswmpiqkw"):
1937 pidqulszaw.set_visible(False)
1938 self.complete_action()
1939 return
1940 hnrvmfooc = 0
1941 feyjbrwyb = 0
1942 etvjlacrau = False
1943 if self.action.id == GameAction.ACTION1:
1944 feyjbrwyb = -1
1945 etvjlacrau = True
1946 elif self.action.id == GameAction.ACTION2:
1947 feyjbrwyb = 1
1948 etvjlacrau = True
1949 elif self.action.id == GameAction.ACTION3:
1950 hnrvmfooc = -1
1951 etvjlacrau = True
1952 elif self.action.id == GameAction.ACTION4:
1953 hnrvmfooc = 1
1954 etvjlacrau = True
1955 if not etvjlacrau:
1956 self.complete_action()
1957 return
1958 for arilbvrrme in self.wsoslqeku:
1959 arilbvrrme.step()
1960 juldcpkjse, ullicjtklz = (
1961 self.gudziatsk.x + hnrvmfooc * self.gisrhqpee,
1962 self.gudziatsk.y + feyjbrwyb * self.tbwnoxqgc,
1963 )
1964 bwdzgjttjp, yubyobdoss = self.txnfzvzetn(juldcpkjse, ullicjtklz)
1965 if not bwdzgjttjp:
1966 self.gudziatsk.set_position(juldcpkjse, ullicjtklz)
1967 else:
1968 for arilbvrrme in self.wsoslqeku:
1969 arilbvrrme.fwtnsrvkrz()
1970 if self.akoadfsur:
1971 return
1972 bkuguqrpvq = not yubyobdoss and (not self._step_counter_ui.mfyzdfvxsm())
1973 if not bkuguqrpvq:
1974 for shdkimnqse in self.hasivfwip:
1975 if shdkimnqse.prpxgfxlcm(self.gudziatsk):
1976 self.euemavvxz.append(shdkimnqse)
1977 return
1978 if self.pbznecvnfr():
1979 self.next_level()
1980 self.complete_action()
1981 return
1982 if bkuguqrpvq:
1983 self.aqygnziho -= 1
1984 if self.aqygnziho == 0:
1985 self.lose()
1986 self.complete_action()
1987 return
1988 self.aqdxgoyvu.set_visible(True)
1989 self.aqdxgoyvu.set_scale(64)
1990 self.aqdxgoyvu.set_position(0, 0)
1991 self.htkmubhry.set_visible(False)
1992 self.ebfuxzbvn = xvzyzqolqz
1993 self.lvrnuajbl = [False] * len(self.plrpelhym)
1994 self.gudziatsk.set_position(self.ltwrkifkx, self.zyoimjaei)
1995 self.qetwzqzzik()
1996 for iybkldaxol in self.ofoahudlo:
1997 self.current_level.add_sprite(iybkldaxol)
1998 for spssohsnbq in self.byotxmvkt:
1999 self.current_level.add_sprite(spssohsnbq)
2000 for lztoedneuu in self.alsxlhizr:
2001 self.current_level.add_sprite(lztoedneuu)
2002 self.ofoahudlo = []
2003 self.byotxmvkt = []
2004 self.alsxlhizr = []
2005 self._step_counter_ui.kbkdzqocik(self._step_counter_ui.osgviligwp)
2006 self.tsynhckng.set_visible(False)
2007 for pidqulszaw in self.current_level.get_sprites_by_tag("hoswmpiqkw"):
2008 pidqulszaw.set_visible(False)
2009 for opdsmckaqo in self.current_level.get_sprites_by_tag("vjotnebuqo"):
2010 opdsmckaqo.set_visible(True)
2011 for arilbvrrme in self.wsoslqeku:
2012 arilbvrrme.bkuguqrpvq()
2013 return
2014 self.complete_action()
2015
2016 def qetwzqzzik(self) -> None:
2017 self.cklxociuu = self.dhksvilbb.index(self.current_level.get_data("StartRotation"))
2018 self.hiaauhahz = self.tnkekoeuk.index(self.current_level.get_data("StartColor"))
2019 self.fwckfzsyc = self.current_level.get_data("StartShape")
2020 self.htkmubhry.pixels = self.ijessuuig[self.fwckfzsyc].pixels.copy()
2021 self.htkmubhry.color_remap(epeqflmtfc, self.tnkekoeuk[self.hiaauhahz])
2022 self.htkmubhry.set_rotation(self.dhksvilbb[self.cklxociuu])
2023
2024 def vqfjzzkhid(self) -> bool:
2025 if self.level_index > 0:
2026 return False
2027 uhftkonsvn = False
2028 for wyhfvzxukh, spssohsnbq in enumerate(self.plrpelhym):
2029 pidqulszaw = self.current_level.get_sprite_at(spssohsnbq.x - 1, spssohsnbq.y - 1, "hoswmpiqkw")
2030 if self.bejndxqqzf(wyhfvzxukh) and (not self.lvrnuajbl[wyhfvzxukh]):
2031 uhftkonsvn = True
2032 if pidqulszaw:
2033 pidqulszaw.set_visible(True)
2034 elif pidqulszaw:
2035 pidqulszaw.set_visible(False)
2036 self.tsynhckng.set_visible(uhftkonsvn)
2037 return uhftkonsvn
2038
2039 def bejndxqqzf(self, wyhfvzxukh: int) -> bool:
2040 return self.fwckfzsyc == self.ldxlnycps[wyhfvzxukh] and self.hiaauhahz == self.yjdexjsoa[wyhfvzxukh] and (self.cklxociuu == self.ehwheiwsk[wyhfvzxukh])
2041
2042 def pbznecvnfr(self) -> bool:
2043 for i, spssohsnbq in enumerate(self.plrpelhym):
2044 if not self.lvrnuajbl[i] and self.gudziatsk.x == spssohsnbq.x and (self.gudziatsk.y == spssohsnbq.y) and self.bejndxqqzf(i):
2045 self.lvrnuajbl[i] = True
2046 self.byotxmvkt.append(self.plrpelhym[i])
2047 self.alsxlhizr.append(self.srgbthxut[i])
2048 self.current_level.remove_sprite(self.plrpelhym[i])
2049 self.current_level.remove_sprite(self.srgbthxut[i])
2050 opdsmckaqo = self.current_level.get_sprite_at(spssohsnbq.x - 1, spssohsnbq.y - 1, "vjotnebuqo")
2051 if opdsmckaqo and "vfkkzdgxzx" in opdsmckaqo.tags:
2052 opdsmckaqo.set_visible(False)
2053 pidqulszaw = self.current_level.get_sprite_at(spssohsnbq.x - 1, spssohsnbq.y - 1, "hoswmpiqkw")
2054 if pidqulszaw:
2055 pidqulszaw.set_visible(False)
2056 self.tsynhckng.set_visible(False)
2057 for i in range(len(self.lvrnuajbl)):
2058 if not self.lvrnuajbl[i]:
2059 return False
2060 return True