Created
August 4, 2014 13:31
-
-
Save dobrokot/a79f70543ff7e8d45c21 to your computer and use it in GitHub Desktop.
icfp 2014 lambda-man asm and code
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
LD 0 0 ; 00 | |
LD 0 1 ; 01 | |
LDF 5 ; 02 | |
LDC 0 ; 03 | |
TSEL 1824 1824 ; 04 | |
LDC 1 ; 05 | |
LDC 2 ; 06 | |
LDC 3 ; 07 | |
LDC 0 ; 08 | |
CONS ; 09 | |
CONS ; 10 | |
CONS ; 11 | |
LDF 15 ; 12 | |
LDC 0 ; 13 | |
TSEL 1822 1822 ; 14 | |
LDF 18 ; 15 | |
LDC 0 ; 16 | |
TSEL 23 23 ; 17 | |
LD 0 0 ; f ; 18 | |
LD 0 1 ; n ; 19 | |
LD 0 0 ; f ; 20 | |
TAP 2 ; 21 | |
RTN ; 22 | |
LDF 26 ; 23 | |
LDC 0 ; 24 | |
TSEL 1820 1820 ; 25 | |
LDF 29 ; 26 | |
LDC 0 ; 27 | |
TSEL 35 35 ; 28 | |
LD 0 0 ; f ; 29 | |
LD 0 1 ; a ; 30 | |
LD 0 2 ; b ; 31 | |
LD 0 0 ; f ; 32 | |
TAP 3 ; 33 | |
RTN ; 34 | |
LDF 38 ; 35 | |
LDC 0 ; 36 | |
TSEL 1818 1818 ; 37 | |
LDF 41 ; 38 | |
LDC 0 ; 39 | |
TSEL 48 48 ; 40 | |
LD 0 0 ; f ; 41 | |
LD 0 1 ; a ; 42 | |
LD 0 2 ; b ; 43 | |
LD 0 3 ; c ; 44 | |
LD 0 0 ; f ; 45 | |
TAP 4 ; 46 | |
RTN ; 47 | |
LDF 51 ; 48 | |
LDC 0 ; 49 | |
TSEL 1816 1816 ; 50 | |
LDF 54 ; 51 | |
LDC 0 ; 52 | |
TSEL 72 72 ; 53 | |
LD 0 2 ; ls ; 54 | |
ATOM ; 55 | |
TSEL 57 60 ; 56 | |
LD 0 3 ; acc ; 57 | |
LDC 0 ; 58 | |
TSEL 71 71 ; 59 | |
LD 0 0 ; me ; 60 | |
LD 0 1 ; f ; 61 | |
LD 0 2 ; ls ; 62 | |
CDR ; 63 | |
LD 0 3 ; acc ; 64 | |
LD 0 2 ; ls ; 65 | |
CAR ; 66 | |
LD 0 1 ; f ; 67 | |
AP 2 ; 68 | |
LD 0 0 ; me ; 69 | |
TAP 4 ; 70 | |
RTN ; 71 | |
LDF 75 ; 72 | |
LDC 0 ; 73 | |
TSEL 1814 1814 ; 74 | |
LDF 78 ; 75 | |
LDC 0 ; 76 | |
TSEL 85 85 ; 77 | |
LD 1 0 ; fold_rec ; 78 | |
LD 0 0 ; f ; 79 | |
LD 0 1 ; li ; 80 | |
LD 0 2 ; acc ; 81 | |
LD 2 0 ; rec3 ; 82 | |
TAP 4 ; 83 | |
RTN ; 84 | |
LDF 88 ; 85 | |
LDC 0 ; 86 | |
TSEL 1812 1812 ; 87 | |
LDF 91 ; 88 | |
LDC 0 ; 89 | |
TSEL 109 109 ; 90 | |
LDC 0 ; 91 | |
LD 0 3 ; state ; 92 | |
LD 0 1 ; cond ; 93 | |
AP 1 ; 94 | |
CEQ ; 95 | |
TSEL 97 100 ; 96 | |
LD 0 3 ; state ; 97 | |
LDC 0 ; 98 | |
TSEL 108 108 ; 99 | |
LD 0 0 ; me ; 100 | |
LD 0 1 ; cond ; 101 | |
LD 0 2 ; next ; 102 | |
LD 0 3 ; state ; 103 | |
LD 0 2 ; next ; 104 | |
AP 1 ; 105 | |
LD 0 0 ; me ; 106 | |
TAP 4 ; 107 | |
RTN ; 108 | |
LDF 112 ; 109 | |
LDC 0 ; 110 | |
TSEL 1810 1810 ; 111 | |
LDF 115 ; 112 | |
LDC 0 ; 113 | |
TSEL 122 122 ; 114 | |
LD 1 0 ; while-rec ; 115 | |
LD 0 0 ; cond ; 116 | |
LD 0 1 ; next ; 117 | |
LD 0 2 ; state ; 118 | |
LD 4 0 ; rec3 ; 119 | |
TAP 4 ; 120 | |
RTN ; 121 | |
LDF 125 ; 122 | |
LDC 0 ; 123 | |
TSEL 1808 1808 ; 124 | |
LDF 128 ; 125 | |
LDC 0 ; 126 | |
TSEL 153 153 ; 127 | |
LDF 131 ; 128 | |
LDC 0 ; 129 | |
TSEL 148 148 ; 130 | |
LD 0 0 ; res ; 131 | |
ATOM ; 132 | |
TSEL 134 146 ; 133 | |
LD 0 1 ; x ; 134 | |
LD 1 0 ; f ; 135 | |
AP 1 ; 136 | |
TSEL 138 143 ; 137 | |
LD 0 1 ; x ; 138 | |
LDC 0 ; 139 | |
CONS ; 140 | |
LDC 0 ; 141 | |
TSEL 144 144 ; 142 | |
LDC 0 ; 143 | |
LDC 0 ; 144 | |
TSEL 147 147 ; 145 | |
LD 0 0 ; res ; 146 | |
RTN ; 147 | |
LD 0 1 ; ls ; 148 | |
LDC 0 ; 149 | |
LD 3 0 ; fold ; 150 | |
TAP 3 ; 151 | |
RTN ; 152 | |
LDF 156 ; 153 | |
LDC 0 ; 154 | |
TSEL 1806 1806 ; 155 | |
LDF 159 ; 156 | |
LDC 0 ; 157 | |
TSEL 189 189 ; 158 | |
LD 0 2 ; i_n ; 159 | |
CAR ; 160 | |
LDF 164 ; 161 | |
LDC 0 ; 162 | |
TSEL 187 187 ; 163 | |
LD 1 2 ; i_n ; 164 | |
CDR ; 165 | |
LD 0 0 ; i ; 166 | |
CEQ ; 167 | |
TSEL 169 172 ; 168 | |
LD 1 3 ; acc ; 169 | |
LDC 0 ; 170 | |
TSEL 186 186 ; 171 | |
LD 1 0 ; me ; 172 | |
LD 1 1 ; f ; 173 | |
LDC 1 ; 174 | |
LD 0 0 ; i ; 175 | |
ADD ; 176 | |
LD 1 2 ; i_n ; 177 | |
CDR ; 178 | |
CONS ; 179 | |
LD 1 3 ; acc ; 180 | |
LD 0 0 ; i ; 181 | |
LD 1 1 ; f ; 182 | |
AP 2 ; 183 | |
LD 1 0 ; me ; 184 | |
TAP 4 ; 185 | |
RTN ; 186 | |
TAP 1 ; 187 | |
RTN ; 188 | |
LDF 192 ; 189 | |
LDC 0 ; 190 | |
TSEL 1804 1804 ; 191 | |
LDF 195 ; 192 | |
LDC 0 ; 193 | |
TSEL 213 213 ; 194 | |
LD 0 2 ; ls ; 195 | |
ATOM ; 196 | |
TSEL 198 201 ; 197 | |
LDC 0 ; 198 | |
LDC 0 ; 199 | |
TSEL 212 212 ; 200 | |
LD 0 2 ; ls ; 201 | |
CAR ; 202 | |
LD 0 1 ; f ; 203 | |
AP 1 ; 204 | |
LD 0 0 ; me ; 205 | |
LD 0 1 ; f ; 206 | |
LD 0 2 ; ls ; 207 | |
CDR ; 208 | |
LD 0 0 ; me ; 209 | |
AP 3 ; 210 | |
CONS ; 211 | |
RTN ; 212 | |
LDF 216 ; 213 | |
LDC 0 ; 214 | |
TSEL 1802 1802 ; 215 | |
LDF 219 ; 216 | |
LDC 0 ; 217 | |
TSEL 225 225 ; 218 | |
LD 1 0 ; map_rec ; 219 | |
LD 0 0 ; f ; 220 | |
LD 0 1 ; ls ; 221 | |
LD 9 0 ; rec2 ; 222 | |
TAP 3 ; 223 | |
RTN ; 224 | |
LDF 228 ; 225 | |
LDC 0 ; 226 | |
TSEL 1800 1800 ; 227 | |
LDF 231 ; 228 | |
LDC 0 ; 229 | |
TSEL 239 239 ; 230 | |
LDF 234 ; 231 | |
LDC 0 ; 232 | |
TSEL 238 238 ; 233 | |
LD 1 0 ; x ; 234 | |
LD 0 0 ; y ; 235 | |
ADD ; 236 | |
RTN ; 237 | |
RTN ; 238 | |
LDF 242 ; 239 | |
LDC 0 ; 240 | |
TSEL 1798 1798 ; 241 | |
LDF 245 ; 242 | |
LDC 0 ; 243 | |
TSEL 254 254 ; 244 | |
LD 4 0 ; fold_range_rec ; 245 | |
LD 0 0 ; f ; 246 | |
LDC 0 ; 247 | |
LD 0 1 ; n ; 248 | |
CONS ; 249 | |
LD 0 2 ; acc ; 250 | |
LD 10 0 ; rec3 ; 251 | |
TAP 4 ; 252 | |
RTN ; 253 | |
LDF 257 ; 254 | |
LDC 0 ; 255 | |
TSEL 1796 1796 ; 256 | |
LDF 260 ; 257 | |
LDC 0 ; 258 | |
TSEL 276 276 ; 259 | |
LDF 263 ; 260 | |
LDC 0 ; 261 | |
TSEL 271 271 ; 262 | |
LD 1 0 ; n ; 263 | |
LD 0 1 ; x ; 264 | |
SUB ; 265 | |
LDC 1 ; 266 | |
SUB ; 267 | |
LD 0 0 ; acc ; 268 | |
CONS ; 269 | |
RTN ; 270 | |
LD 0 0 ; n ; 271 | |
LDC 0 ; 272 | |
LD 1 0 ; fold_range ; 273 | |
TAP 3 ; 274 | |
RTN ; 275 | |
LDF 279 ; 276 | |
LDC 0 ; 277 | |
TSEL 1794 1794 ; 278 | |
LDF 282 ; 279 | |
LDC 0 ; 280 | |
TSEL 294 294 ; 281 | |
LDF 285 ; 282 | |
LDC 0 ; 283 | |
TSEL 289 289 ; 284 | |
LD 0 0 ; a ; 285 | |
LD 0 1 ; b ; 286 | |
ADD ; 287 | |
RTN ; 288 | |
LD 0 0 ; li ; 289 | |
LDC 0 ; 290 | |
LD 10 0 ; fold ; 291 | |
TAP 3 ; 292 | |
RTN ; 293 | |
LDF 297 ; 294 | |
LDC 0 ; 295 | |
TSEL 1792 1792 ; 296 | |
LDF 300 ; 297 | |
LDC 0 ; 298 | |
TSEL 307 307 ; 299 | |
LD 0 0 ; t ; 300 | |
CAR ; 301 | |
LD 0 0 ; t ; 302 | |
CDR ; 303 | |
LD 0 1 ; f ; 304 | |
TAP 2 ; 305 | |
RTN ; 306 | |
LDF 310 ; 307 | |
LDC 0 ; 308 | |
TSEL 1790 1790 ; 309 | |
LDF 313 ; 310 | |
LDC 0 ; 311 | |
TSEL 324 324 ; 312 | |
LD 0 0 ; t ; 313 | |
CAR ; 314 | |
LD 0 0 ; t ; 315 | |
CDR ; 316 | |
CAR ; 317 | |
LD 0 0 ; t ; 318 | |
CDR ; 319 | |
CDR ; 320 | |
LD 0 1 ; f ; 321 | |
TAP 3 ; 322 | |
RTN ; 323 | |
LDF 327 ; 324 | |
LDC 0 ; 325 | |
TSEL 1788 1788 ; 326 | |
LDF 330 ; 327 | |
LDC 0 ; 328 | |
TSEL 346 346 ; 329 | |
LD 0 0 ; t ; 330 | |
CAR ; 331 | |
LD 0 0 ; t ; 332 | |
CDR ; 333 | |
CAR ; 334 | |
LD 0 0 ; t ; 335 | |
CDR ; 336 | |
CDR ; 337 | |
CAR ; 338 | |
LD 0 0 ; t ; 339 | |
CDR ; 340 | |
CDR ; 341 | |
CDR ; 342 | |
LD 0 1 ; f ; 343 | |
TAP 4 ; 344 | |
RTN ; 345 | |
LDF 349 ; 346 | |
LDC 0 ; 347 | |
TSEL 1786 1786 ; 348 | |
LDF 352 ; 349 | |
LDC 0 ; 350 | |
TSEL 374 374 ; 351 | |
LD 0 0 ; t ; 352 | |
CAR ; 353 | |
LD 0 0 ; t ; 354 | |
CDR ; 355 | |
CAR ; 356 | |
LD 0 0 ; t ; 357 | |
CDR ; 358 | |
CDR ; 359 | |
CAR ; 360 | |
LD 0 0 ; t ; 361 | |
CDR ; 362 | |
CDR ; 363 | |
CDR ; 364 | |
CAR ; 365 | |
LD 0 0 ; t ; 366 | |
CDR ; 367 | |
CDR ; 368 | |
CDR ; 369 | |
CDR ; 370 | |
LD 0 1 ; f ; 371 | |
TAP 5 ; 372 | |
RTN ; 373 | |
LDF 377 ; 374 | |
LDC 0 ; 375 | |
TSEL 1784 1784 ; 376 | |
LDF 380 ; 377 | |
LDC 0 ; 378 | |
TSEL 387 387 ; 379 | |
LD 0 1 ; result ; 380 | |
LD 0 0 ; out ; 381 | |
DBUG ; 382 | |
LDC 0 ; 383 | |
CONS ; 384 | |
CAR ; 385 | |
RTN ; 386 | |
LDF 390 ; 387 | |
LDC 0 ; 388 | |
TSEL 1782 1782 ; 389 | |
LDF 393 ; 390 | |
LDC 0 ; 391 | |
TSEL 398 398 ; 392 | |
LD 0 0 ; x ; 393 | |
LD 0 0 ; x ; 394 | |
LD 1 0 ; print ; 395 | |
TAP 2 ; 396 | |
RTN ; 397 | |
LDF 401 ; 398 | |
LDC 0 ; 399 | |
TSEL 1780 1780 ; 400 | |
LDF 404 ; 401 | |
LDC 0 ; 402 | |
TSEL 421 421 ; 403 | |
LDC 0 ; 404 | |
LD 0 2 ; i ; 405 | |
CEQ ; 406 | |
TSEL 408 412 ; 407 | |
LD 0 1 ; ls ; 408 | |
CAR ; 409 | |
LDC 0 ; 410 | |
TSEL 420 420 ; 411 | |
LD 0 0 ; me ; 412 | |
LD 0 1 ; ls ; 413 | |
CDR ; 414 | |
LD 0 2 ; i ; 415 | |
LDC 1 ; 416 | |
SUB ; 417 | |
LD 0 0 ; me ; 418 | |
TAP 3 ; 419 | |
RTN ; 420 | |
LDF 424 ; 421 | |
LDC 0 ; 422 | |
TSEL 1778 1778 ; 423 | |
LDF 427 ; 424 | |
LDC 0 ; 425 | |
TSEL 433 433 ; 426 | |
LD 1 0 ; at_rec ; 427 | |
LD 0 0 ; ls ; 428 | |
LD 0 1 ; i ; 429 | |
LD 21 0 ; rec2 ; 430 | |
TAP 3 ; 431 | |
RTN ; 432 | |
LDF 436 ; 433 | |
LDC 0 ; 434 | |
TSEL 1776 1776 ; 435 | |
LDF 439 ; 436 | |
LDC 0 ; 437 | |
TSEL 451 451 ; 438 | |
LDF 442 ; 439 | |
LDC 0 ; 440 | |
TSEL 446 446 ; 441 | |
LD 0 0 ; a ; 442 | |
LDC 1 ; 443 | |
ADD ; 444 | |
RTN ; 445 | |
LD 0 0 ; ls ; 446 | |
LDC 0 ; 447 | |
LD 19 0 ; fold ; 448 | |
TAP 3 ; 449 | |
RTN ; 450 | |
LDF 454 ; 451 | |
LDC 0 ; 452 | |
TSEL 1774 1774 ; 453 | |
LDC 0 ; 454 | |
LDF 458 ; 455 | |
LDC 0 ; 456 | |
TSEL 1772 1772 ; 457 | |
LDF 461 ; 458 | |
LDC 0 ; 459 | |
TSEL 478 478 ; 460 | |
LDF 464 ; 461 | |
LDC 0 ; 462 | |
TSEL 471 471 ; 463 | |
LD 0 0 ; a ; 464 | |
LD 1 1 ; key ; 465 | |
LD 0 1 ; key_val ; 466 | |
CAR ; 467 | |
CEQ ; 468 | |
ADD ; 469 | |
RTN ; 470 | |
LD 0 0 ; M ; 471 | |
LDC 0 ; 472 | |
LD 21 0 ; fold ; 473 | |
AP 3 ; 474 | |
LDC 0 ; 475 | |
CGT ; 476 | |
RTN ; 477 | |
LDF 481 ; 478 | |
LDC 0 ; 479 | |
TSEL 1770 1770 ; 480 | |
LDF 484 ; 481 | |
LDC 0 ; 482 | |
TSEL 507 507 ; 483 | |
LDF 487 ; 484 | |
LDC 0 ; 485 | |
TSEL 503 503 ; 486 | |
LD 0 0 ; key_val ; 487 | |
CAR ; 488 | |
LD 1 1 ; key ; 489 | |
CEQ ; 490 | |
TSEL 492 501 ; 491 | |
LD 1 1 ; key ; 492 | |
LD 1 2 ; val ; 493 | |
LD 0 0 ; key_val ; 494 | |
CDR ; 495 | |
LD 1 3 ; update-func ; 496 | |
AP 2 ; 497 | |
CONS ; 498 | |
LDC 0 ; 499 | |
TSEL 502 502 ; 500 | |
LD 0 0 ; key_val ; 501 | |
RTN ; 502 | |
LD 0 0 ; M ; 503 | |
LD 16 0 ; map ; 504 | |
TAP 2 ; 505 | |
RTN ; 506 | |
LDF 510 ; 507 | |
LDC 0 ; 508 | |
TSEL 1768 1768 ; 509 | |
LDF 513 ; 510 | |
LDC 0 ; 511 | |
TSEL 532 532 ; 512 | |
LD 0 0 ; M ; 513 | |
LD 0 1 ; key ; 514 | |
LD 2 0 ; in ; 515 | |
AP 2 ; 516 | |
TSEL 518 526 ; 517 | |
LD 0 0 ; M ; 518 | |
LD 0 1 ; key ; 519 | |
LD 0 2 ; val ; 520 | |
LD 0 3 ; update-func ; 521 | |
LD 1 0 ; replace ; 522 | |
AP 4 ; 523 | |
LDC 0 ; 524 | |
TSEL 531 531 ; 525 | |
LD 0 1 ; key ; 526 | |
LD 0 2 ; val ; 527 | |
CONS ; 528 | |
LD 0 0 ; M ; 529 | |
CONS ; 530 | |
RTN ; 531 | |
LDF 535 ; 532 | |
LDC 0 ; 533 | |
TSEL 1766 1766 ; 534 | |
LDF 538 ; 535 | |
LDC 0 ; 536 | |
TSEL 555 555 ; 537 | |
LDC 0 ; 538 | |
LD 0 2 ; i ; 539 | |
CEQ ; 540 | |
TSEL 542 546 ; 541 | |
LD 0 1 ; ls ; 542 | |
CAR ; 543 | |
LDC 0 ; 544 | |
TSEL 554 554 ; 545 | |
LD 0 0 ; me ; 546 | |
LD 0 1 ; ls ; 547 | |
CDR ; 548 | |
LD 0 2 ; i ; 549 | |
LDC 1 ; 550 | |
SUB ; 551 | |
LD 0 0 ; me ; 552 | |
TAP 3 ; 553 | |
RTN ; 554 | |
LDF 558 ; 555 | |
LDC 0 ; 556 | |
TSEL 1764 1764 ; 557 | |
LDF 561 ; 558 | |
LDC 0 ; 559 | |
TSEL 567 567 ; 560 | |
LD 1 0 ; at_rec ; 561 | |
LD 0 0 ; ls ; 562 | |
LD 0 1 ; i ; 563 | |
LD 28 0 ; rec2 ; 564 | |
TAP 3 ; 565 | |
RTN ; 566 | |
LDF 570 ; 567 | |
LDC 0 ; 568 | |
TSEL 1762 1762 ; 569 | |
LDF 573 ; 570 | |
LDC 0 ; 571 | |
TSEL 582 582 ; 572 | |
LD 0 1 ; y ; 573 | |
LD 0 0 ; x ; 574 | |
CGTE ; 575 | |
TSEL 577 580 ; 576 | |
LD 0 0 ; x ; 577 | |
LDC 0 ; 578 | |
TSEL 581 581 ; 579 | |
LD 0 1 ; y ; 580 | |
RTN ; 581 | |
LDF 585 ; 582 | |
LDC 0 ; 583 | |
TSEL 1760 1760 ; 584 | |
LDF 588 ; 585 | |
LDC 0 ; 586 | |
TSEL 607 607 ; 587 | |
LDF 591 ; 588 | |
LDC 0 ; 589 | |
TSEL 602 602 ; 590 | |
LD 0 1 ; elem ; 591 | |
LD 1 0 ; f ; 592 | |
AP 1 ; 593 | |
TSEL 595 600 ; 594 | |
LD 0 1 ; elem ; 595 | |
LD 0 0 ; result ; 596 | |
CONS ; 597 | |
LDC 0 ; 598 | |
TSEL 601 601 ; 599 | |
LD 0 0 ; result ; 600 | |
RTN ; 601 | |
LD 0 1 ; ls ; 602 | |
LDC 0 ; 603 | |
LD 27 0 ; fold ; 604 | |
TAP 3 ; 605 | |
RTN ; 606 | |
LDF 610 ; 607 | |
LDC 0 ; 608 | |
TSEL 1758 1758 ; 609 | |
LDC 0 ; 610 | |
LDF 614 ; 611 | |
LDC 0 ; 612 | |
TSEL 1756 1756 ; 613 | |
LDC 1 ; 614 | |
LDF 618 ; 615 | |
LDC 0 ; 616 | |
TSEL 1754 1754 ; 617 | |
LDC 2 ; 618 | |
LDF 622 ; 619 | |
LDC 0 ; 620 | |
TSEL 1752 1752 ; 621 | |
LDC 3 ; 622 | |
LDF 626 ; 623 | |
LDC 0 ; 624 | |
TSEL 1750 1750 ; 625 | |
LDC 4 ; 626 | |
LDF 630 ; 627 | |
LDC 0 ; 628 | |
TSEL 1748 1748 ; 629 | |
LDF 633 ; 630 | |
LDC 0 ; 631 | |
TSEL 639 639 ; 632 | |
LD 0 0 ; a ; 633 | |
LD 0 1 ; b ; 634 | |
ADD ; 635 | |
LDC 0 ; 636 | |
CGT ; 637 | |
RTN ; 638 | |
LDF 642 ; 639 | |
LDC 0 ; 640 | |
TSEL 1746 1746 ; 641 | |
LDF 645 ; 642 | |
LDC 0 ; 643 | |
TSEL 649 649 ; 644 | |
LD 0 0 ; x ; 645 | |
LDC 0 ; 646 | |
CEQ ; 647 | |
RTN ; 648 | |
LDF 652 ; 649 | |
LDC 0 ; 650 | |
TSEL 1744 1744 ; 651 | |
LD 40 0 ; wr ; 652 | |
CAR ; 653 | |
LDF 657 ; 654 | |
LDC 0 ; 655 | |
TSEL 1742 1742 ; 656 | |
LDF 660 ; 657 | |
LDC 0 ; 658 | |
TSEL 668 668 ; 659 | |
LD 1 0 ; gmap-init ; 660 | |
LD 0 1 ; y ; 661 | |
LD 11 0 ; at ; 662 | |
AP 2 ; 663 | |
LD 0 0 ; x ; 664 | |
LD 11 0 ; at ; 665 | |
TAP 2 ; 666 | |
RTN ; 667 | |
LDF 671 ; 668 | |
LDC 0 ; 669 | |
TSEL 1740 1740 ; 670 | |
LDF 674 ; 671 | |
LDC 0 ; 672 | |
TSEL 689 689 ; 673 | |
LD 0 0 ; x ; 674 | |
LD 0 1 ; y ; 675 | |
LD 1 0 ; get-init ; 676 | |
AP 2 ; 677 | |
LDF 681 ; 678 | |
LDC 0 ; 679 | |
TSEL 687 687 ; 680 | |
LD 0 0 ; v ; 681 | |
LD 10 0 ; WALL ; 682 | |
CEQ ; 683 | |
LD 4 0 ; not ; 684 | |
TAP 1 ; 685 | |
RTN ; 686 | |
TAP 1 ; 687 | |
RTN ; 688 | |
LDF 692 ; 689 | |
LDC 0 ; 690 | |
TSEL 1738 1738 ; 691 | |
LD 2 0 ; gmap-init ; 692 | |
LD 18 0 ; len ; 693 | |
AP 1 ; 694 | |
LDF 698 ; 695 | |
LDC 0 ; 696 | |
TSEL 1736 1736 ; 697 | |
LD 3 0 ; gmap-init ; 698 | |
CAR ; 699 | |
LD 19 0 ; len ; 700 | |
AP 1 ; 701 | |
LDF 705 ; 702 | |
LDC 0 ; 703 | |
TSEL 1734 1734 ; 704 | |
LDF 708 ; 705 | |
LDC 0 ; 706 | |
TSEL 721 721 ; 707 | |
LD 0 0 ; c ; 708 | |
LD 0 0 ; c ; 709 | |
LDC 1000 ; 710 | |
DIV ; 711 | |
LDC 1000 ; 712 | |
MUL ; 713 | |
SUB ; 714 | |
LD 0 0 ; c ; 715 | |
LDC 1000 ; 716 | |
DIV ; 717 | |
LD 0 1 ; f ; 718 | |
TAP 2 ; 719 | |
RTN ; 720 | |
LDF 724 ; 721 | |
LDC 0 ; 722 | |
TSEL 1732 1732 ; 723 | |
LDF 727 ; 724 | |
LDC 0 ; 725 | |
TSEL 732 732 ; 726 | |
LD 0 0 ; c ; 727 | |
LD 4 0 ; free ; 728 | |
LD 1 0 ; coord-dec ; 729 | |
TAP 2 ; 730 | |
RTN ; 731 | |
LDF 735 ; 732 | |
LDC 0 ; 733 | |
TSEL 1730 1730 ; 734 | |
LDF 738 ; 735 | |
LDC 0 ; 736 | |
TSEL 744 744 ; 737 | |
LD 0 0 ; x ; 738 | |
LDC 1000 ; 739 | |
LD 0 1 ; y ; 740 | |
MUL ; 741 | |
ADD ; 742 | |
RTN ; 743 | |
LDF 747 ; 744 | |
LDC 0 ; 745 | |
TSEL 1728 1728 ; 746 | |
LDC 0 ; 747 | |
LDC 1 ; 748 | |
LDC 2 ; 749 | |
LDC 3 ; 750 | |
LDC 0 ; 751 | |
CONS ; 752 | |
CONS ; 753 | |
CONS ; 754 | |
CONS ; 755 | |
LDF 759 ; 756 | |
LDC 0 ; 757 | |
TSEL 1726 1726 ; 758 | |
LDF 762 ; 759 | |
LDC 0 ; 760 | |
TSEL 815 815 ; 761 | |
LD 0 2 ; move ; 762 | |
LDC 0 ; 763 | |
CEQ ; 764 | |
TSEL 766 774 ; 765 | |
LD 0 0 ; x ; 766 | |
LD 0 1 ; y ; 767 | |
LDC 1 ; 768 | |
SUB ; 769 | |
LD 2 0 ; coord-enc ; 770 | |
AP 2 ; 771 | |
LDC 0 ; 772 | |
TSEL 814 814 ; 773 | |
LD 0 2 ; move ; 774 | |
LDC 2 ; 775 | |
CEQ ; 776 | |
TSEL 778 786 ; 777 | |
LD 0 0 ; x ; 778 | |
LD 0 1 ; y ; 779 | |
LDC 1 ; 780 | |
ADD ; 781 | |
LD 2 0 ; coord-enc ; 782 | |
AP 2 ; 783 | |
LDC 0 ; 784 | |
TSEL 814 814 ; 785 | |
LD 0 2 ; move ; 786 | |
LDC 1 ; 787 | |
CEQ ; 788 | |
TSEL 790 798 ; 789 | |
LD 0 0 ; x ; 790 | |
LDC 1 ; 791 | |
ADD ; 792 | |
LD 0 1 ; y ; 793 | |
LD 2 0 ; coord-enc ; 794 | |
AP 2 ; 795 | |
LDC 0 ; 796 | |
TSEL 814 814 ; 797 | |
LD 0 2 ; move ; 798 | |
LDC 3 ; 799 | |
CEQ ; 800 | |
TSEL 802 810 ; 801 | |
LD 0 0 ; x ; 802 | |
LDC 1 ; 803 | |
SUB ; 804 | |
LD 0 1 ; y ; 805 | |
LD 2 0 ; coord-enc ; 806 | |
AP 2 ; 807 | |
LDC 0 ; 808 | |
TSEL 814 814 ; 809 | |
LDC 827182 ; 810 | |
DBUG ; 811 | |
LDC 0 ; 812 | |
TAP 0 ; 813 | |
RTN ; 814 | |
LDF 818 ; 815 | |
LDC 0 ; 816 | |
TSEL 1724 1724 ; 817 | |
LDF 821 ; 818 | |
LDC 0 ; 819 | |
TSEL 859 859 ; 820 | |
LD 0 0 ; x ; 821 | |
LD 0 1 ; y ; 822 | |
LD 8 0 ; free ; 823 | |
AP 2 ; 824 | |
TSEL 826 857 ; 825 | |
LDF 829 ; 826 | |
LDC 0 ; 827 | |
TSEL 851 851 ; 828 | |
LD 1 0 ; x ; 829 | |
LD 1 1 ; y ; 830 | |
LD 0 1 ; m ; 831 | |
LD 2 0 ; add-move ; 832 | |
AP 3 ; 833 | |
LDF 837 ; 834 | |
LDC 0 ; 835 | |
TSEL 849 849 ; 836 | |
LD 0 0 ; c2 ; 837 | |
LD 10 0 ; free ; 838 | |
LD 7 0 ; coord-dec ; 839 | |
AP 2 ; 840 | |
TSEL 842 847 ; 841 | |
LD 0 0 ; c2 ; 842 | |
LD 1 0 ; free-list ; 843 | |
CONS ; 844 | |
LDC 0 ; 845 | |
TSEL 848 848 ; 846 | |
LD 1 0 ; free-list ; 847 | |
RTN ; 848 | |
TAP 1 ; 849 | |
RTN ; 850 | |
LD 2 0 ; all-moves ; 851 | |
LDC 0 ; 852 | |
LD 45 0 ; fold ; 853 | |
AP 3 ; 854 | |
LDC 0 ; 855 | |
TSEL 858 858 ; 856 | |
LDC 0 ; 857 | |
RTN ; 858 | |
LDF 862 ; 859 | |
LDC 0 ; 860 | |
TSEL 1722 1722 ; 861 | |
LDF 865 ; 862 | |
LDC 0 ; 863 | |
TSEL 879 879 ; 864 | |
LDF 868 ; 865 | |
LDC 0 ; 866 | |
TSEL 873 873 ; 867 | |
LD 0 0 ; x ; 868 | |
LD 1 0 ; y ; 869 | |
LD 2 0 ; get-neibours-init ; 870 | |
TAP 2 ; 871 | |
RTN ; 872 | |
LD 7 0 ; width ; 873 | |
LD 37 0 ; make_range ; 874 | |
AP 1 ; 875 | |
LD 40 0 ; map ; 876 | |
TAP 2 ; 877 | |
RTN ; 878 | |
LD 7 0 ; height ; 879 | |
LD 36 0 ; make_range ; 880 | |
AP 1 ; 881 | |
LD 39 0 ; map ; 882 | |
AP 2 ; 883 | |
LDF 887 ; 884 | |
LDC 0 ; 885 | |
TSEL 1720 1720 ; 886 | |
LD 0 0 ; free-neib-map ; 887 | |
LD 30 0 ; print1 ; 888 | |
AP 1 ; 889 | |
LDF 893 ; 890 | |
LDC 0 ; 891 | |
TSEL 1718 1718 ; 892 | |
LDF 896 ; 893 | |
LDC 0 ; 894 | |
TSEL 904 904 ; 895 | |
LD 2 0 ; free-neib-map ; 896 | |
LD 0 1 ; y ; 897 | |
LD 23 0 ; at ; 898 | |
AP 2 ; 899 | |
LD 0 0 ; x ; 900 | |
LD 23 0 ; at ; 901 | |
TAP 2 ; 902 | |
RTN ; 903 | |
LDF 907 ; 904 | |
LDC 0 ; 905 | |
TSEL 1716 1716 ; 906 | |
LDF 910 ; 907 | |
LDC 0 ; 908 | |
TSEL 1563 1563 ; 909 | |
LDF 913 ; 910 | |
LDC 0 ; 911 | |
TSEL 921 921 ; 912 | |
LD 1 3 ; gmap ; 913 | |
LD 0 1 ; y ; 914 | |
LD 25 0 ; at ; 915 | |
AP 2 ; 916 | |
LD 0 0 ; x ; 917 | |
LD 25 0 ; at ; 918 | |
TAP 2 ; 919 | |
RTN ; 920 | |
LDF 924 ; 921 | |
LDC 0 ; 922 | |
TSEL 1561 1561 ; 923 | |
LDF 927 ; 924 | |
LDC 0 ; 925 | |
TSEL 932 932 ; 926 | |
LDC 0 ; 927 | |
LD 0 0 ; ghost ; 928 | |
CAR ; 929 | |
CEQ ; 930 | |
RTN ; 931 | |
LD 1 4 ; ghs_state ; 932 | |
LD 23 0 ; filter-rev ; 933 | |
AP 2 ; 934 | |
LDF 938 ; 935 | |
LDC 0 ; 936 | |
TSEL 949 949 ; 937 | |
LDF 941 ; 938 | |
LDC 0 ; 939 | |
TSEL 945 945 ; 940 | |
LD 0 0 ; ghost ; 941 | |
CDR ; 942 | |
CAR ; 943 | |
RTN ; 944 | |
LD 0 0 ; alive_ghost ; 945 | |
LD 45 0 ; map ; 946 | |
TAP 2 ; 947 | |
RTN ; 948 | |
AP 1 ; 949 | |
LDF 953 ; 950 | |
LDC 0 ; 951 | |
TSEL 1559 1559 ; 952 | |
LDF 956 ; 953 | |
LDC 0 ; 954 | |
TSEL 982 982 ; 955 | |
LDF 959 ; 956 | |
LDC 0 ; 957 | |
TSEL 974 974 ; 958 | |
LD 1 0 ; vis ; 959 | |
LD 0 1 ; c2 ; 960 | |
LD 32 0 ; in ; 961 | |
AP 2 ; 962 | |
TSEL 964 967 ; 963 | |
LD 0 0 ; front ; 964 | |
LDC 0 ; 965 | |
TSEL 973 973 ; 966 | |
LD 0 0 ; front ; 967 | |
LD 0 1 ; c2 ; 968 | |
LD 1 3 ; src ; 969 | |
LD 27 0 ; min ; 970 | |
LD 30 0 ; add-replace ; 971 | |
TAP 4 ; 972 | |
RTN ; 973 | |
LD 0 2 ; c ; 974 | |
LD 4 0 ; get-neibours-list ; 975 | |
LD 12 0 ; coord-dec ; 976 | |
AP 2 ; 977 | |
LD 0 1 ; front ; 978 | |
LD 52 0 ; fold ; 979 | |
TAP 3 ; 980 | |
RTN ; 981 | |
LDF 985 ; 982 | |
LDC 0 ; 983 | |
TSEL 1557 1557 ; 984 | |
LDF 988 ; 985 | |
LDC 0 ; 986 | |
TSEL 994 994 ; 987 | |
LD 0 0 ; x ; 988 | |
LD 0 0 ; x ; 989 | |
MUL ; 990 | |
LDC 1 ; 991 | |
CEQ ; 992 | |
RTN ; 993 | |
LDF 997 ; 994 | |
LDC 0 ; 995 | |
TSEL 1555 1555 ; 996 | |
LDF 1000 ; 997 | |
LDC 0 ; 998 | |
TSEL 1037 1037 ; 999 | |
LD 0 1 ; ghc ; 1000 | |
LDF 1004 ; 1001 | |
LDC 0 ; 1002 | |
TSEL 1034 1034 ; 1003 | |
LD 0 0 ; x ; 1004 | |
LD 6 0 ; lx ; 1005 | |
SUB ; 1006 | |
LD 2 0 ; dist1 ; 1007 | |
AP 1 ; 1008 | |
LD 0 1 ; y ; 1009 | |
LD 6 1 ; ly ; 1010 | |
CEQ ; 1011 | |
MUL ; 1012 | |
LD 0 0 ; x ; 1013 | |
LD 6 0 ; lx ; 1014 | |
CEQ ; 1015 | |
LD 0 1 ; y ; 1016 | |
LD 6 1 ; ly ; 1017 | |
SUB ; 1018 | |
LD 2 0 ; dist1 ; 1019 | |
AP 1 ; 1020 | |
MUL ; 1021 | |
LD 22 0 ; or ; 1022 | |
AP 2 ; 1023 | |
TSEL 1025 1032 ; 1024 | |
LD 0 0 ; x ; 1025 | |
LD 0 1 ; y ; 1026 | |
CONS ; 1027 | |
LD 1 0 ; r ; 1028 | |
CONS ; 1029 | |
LDC 0 ; 1030 | |
TSEL 1033 1033 ; 1031 | |
LD 1 0 ; r ; 1032 | |
RTN ; 1033 | |
LD 43 0 ; untup2 ; 1034 | |
TAP 2 ; 1035 | |
RTN ; 1036 | |
LD 2 0 ; ghs-coords ; 1037 | |
LDC 0 ; 1038 | |
LD 53 0 ; fold ; 1039 | |
AP 3 ; 1040 | |
LDF 1044 ; 1041 | |
LDC 0 ; 1042 | |
TSEL 1553 1553 ; 1043 | |
LDF 1047 ; 1044 | |
LDC 0 ; 1045 | |
TSEL 1054 1054 ; 1046 | |
LD 0 0 ; c ; 1047 | |
CAR ; 1048 | |
LD 0 0 ; c ; 1049 | |
CDR ; 1050 | |
LD 13 0 ; coord-enc ; 1051 | |
TAP 2 ; 1052 | |
RTN ; 1053 | |
LD 3 0 ; ghs-coords ; 1054 | |
LD 48 0 ; map ; 1055 | |
AP 2 ; 1056 | |
LDF 1060 ; 1057 | |
LDC 0 ; 1058 | |
TSEL 1551 1551 ; 1059 | |
LDF 1063 ; 1060 | |
LDC 0 ; 1061 | |
TSEL 1075 1075 ; 1062 | |
LDC 0 ; 1063 | |
LD 0 0 ; front ; 1064 | |
LD 0 1 ; c ; 1065 | |
LDC -1 ; 1066 | |
LD 30 0 ; min ; 1067 | |
LD 33 0 ; add-replace ; 1068 | |
AP 4 ; 1069 | |
LD 0 1 ; c ; 1070 | |
LDC -1 ; 1071 | |
LD 4 0 ; update-neibours ; 1072 | |
TAP 4 ; 1073 | |
RTN ; 1074 | |
LD 0 0 ; ghs-enc-coords ; 1075 | |
LDC 0 ; 1076 | |
LD 55 0 ; fold ; 1077 | |
AP 3 ; 1078 | |
LDF 1082 ; 1079 | |
LDC 0 ; 1080 | |
TSEL 1549 1549 ; 1081 | |
LDF 1085 ; 1082 | |
LDC 0 ; 1083 | |
TSEL 1110 1110 ; 1084 | |
LD 8 0 ; lx ; 1085 | |
LD 8 1 ; ly ; 1086 | |
LD 0 1 ; m ; 1087 | |
LD 13 0 ; add-move ; 1088 | |
AP 3 ; 1089 | |
LDF 1093 ; 1090 | |
LDC 0 ; 1091 | |
TSEL 1108 1108 ; 1092 | |
LD 0 0 ; new-pos ; 1093 | |
LD 21 0 ; free ; 1094 | |
LD 18 0 ; coord-dec ; 1095 | |
AP 2 ; 1096 | |
TSEL 1098 1106 ; 1097 | |
LD 1 0 ; cur ; 1098 | |
LD 0 0 ; new-pos ; 1099 | |
LD 1 1 ; m ; 1100 | |
LD 32 0 ; min ; 1101 | |
LD 35 0 ; add-replace ; 1102 | |
AP 4 ; 1103 | |
LDC 0 ; 1104 | |
TSEL 1107 1107 ; 1105 | |
LD 1 0 ; cur ; 1106 | |
RTN ; 1107 | |
TAP 1 ; 1108 | |
RTN ; 1109 | |
LD 13 0 ; all-moves ; 1110 | |
LD 0 0 ; ghs-front-tmp ; 1111 | |
LD 56 0 ; fold ; 1112 | |
AP 3 ; 1113 | |
LDF 1117 ; 1114 | |
LDC 0 ; 1115 | |
TSEL 1547 1547 ; 1116 | |
LDF 1120 ; 1117 | |
LDC 0 ; 1118 | |
TSEL 1125 1125 ; 1119 | |
LD 0 0 ; c ; 1120 | |
LD 8 0 ; get ; 1121 | |
LD 18 0 ; coord-dec ; 1122 | |
TAP 2 ; 1123 | |
RTN ; 1124 | |
LDF 1128 ; 1125 | |
LDC 0 ; 1126 | |
TSEL 1545 1545 ; 1127 | |
LDF 1131 ; 1128 | |
LDC 0 ; 1129 | |
TSEL 1149 1149 ; 1130 | |
LD 0 0 ; val ; 1131 | |
LD 29 0 ; PILL ; 1132 | |
CEQ ; 1133 | |
LD 0 0 ; val ; 1134 | |
LD 28 0 ; POWER ; 1135 | |
CEQ ; 1136 | |
LD 26 0 ; or ; 1137 | |
AP 2 ; 1138 | |
LD 0 0 ; val ; 1139 | |
LD 27 0 ; FRUIT ; 1140 | |
CEQ ; 1141 | |
LD 10 5 ; fruit_count ; 1142 | |
LDC 300 ; 1143 | |
CGT ; 1144 | |
MUL ; 1145 | |
LD 26 0 ; or ; 1146 | |
TAP 2 ; 1147 | |
RTN ; 1148 | |
LDF 1152 ; 1149 | |
LDC 0 ; 1150 | |
TSEL 1543 1543 ; 1151 | |
LDF 1155 ; 1152 | |
LDC 0 ; 1153 | |
TSEL 1182 1182 ; 1154 | |
LDF 1158 ; 1155 | |
LDC 0 ; 1156 | |
TSEL 1161 1161 ; 1157 | |
LD 0 0 ; x ; 1158 | |
CDR ; 1159 | |
RTN ; 1160 | |
LDF 1164 ; 1161 | |
LDC 0 ; 1162 | |
TSEL 1176 1176 ; 1163 | |
LD 0 0 ; x ; 1164 | |
CDR ; 1165 | |
LDC 0 ; 1166 | |
CGTE ; 1167 | |
LD 0 0 ; x ; 1168 | |
CAR ; 1169 | |
LD 3 0 ; get-enc ; 1170 | |
AP 1 ; 1171 | |
LD 2 0 ; edible ; 1172 | |
AP 1 ; 1173 | |
MUL ; 1174 | |
RTN ; 1175 | |
LD 0 0 ; front ; 1176 | |
LD 57 0 ; find-first ; 1177 | |
AP 2 ; 1178 | |
LD 54 0 ; map ; 1179 | |
TAP 2 ; 1180 | |
RTN ; 1181 | |
LDF 1185 ; 1182 | |
LDC 0 ; 1183 | |
TSEL 1541 1541 ; 1184 | |
LDF 1188 ; 1185 | |
LDC 0 ; 1186 | |
TSEL 1198 1198 ; 1187 | |
LDC 0 ; 1188 | |
LD 0 0 ; front ; 1189 | |
ATOM ; 1190 | |
CEQ ; 1191 | |
LD 0 0 ; front ; 1192 | |
LD 1 0 ; finish-and-src ; 1193 | |
AP 1 ; 1194 | |
ATOM ; 1195 | |
MUL ; 1196 | |
RTN ; 1197 | |
LDF 1201 ; 1198 | |
LDC 0 ; 1199 | |
TSEL 1539 1539 ; 1200 | |
LDF 1204 ; 1201 | |
LDC 0 ; 1202 | |
TSEL 1235 1235 ; 1203 | |
LD 0 1 ; front ; 1204 | |
LDF 1208 ; 1205 | |
LDC 0 ; 1206 | |
TSEL 1229 1229 ; 1207 | |
LD 0 1 ; e ; 1208 | |
CAR ; 1209 | |
LDF 1213 ; 1210 | |
LDC 0 ; 1211 | |
TSEL 1227 1227 ; 1212 | |
LD 1 1 ; e ; 1213 | |
CDR ; 1214 | |
LDF 1218 ; 1215 | |
LDC 0 ; 1216 | |
TSEL 1225 1225 ; 1217 | |
LD 3 0 ; vis ; 1218 | |
LD 2 0 ; front2 ; 1219 | |
LD 1 0 ; c ; 1220 | |
LD 0 0 ; src ; 1221 | |
LD 13 0 ; update-neibours ; 1222 | |
TAP 4 ; 1223 | |
RTN ; 1224 | |
TAP 1 ; 1225 | |
RTN ; 1226 | |
TAP 1 ; 1227 | |
RTN ; 1228 | |
LD 0 1 ; front ; 1229 | |
LDC 0 ; 1230 | |
LD 62 0 ; fold ; 1231 | |
AP 3 ; 1232 | |
CONS ; 1233 | |
RTN ; 1234 | |
LDF 1238 ; 1235 | |
LDC 0 ; 1236 | |
TSEL 1537 1537 ; 1237 | |
LDF 1241 ; 1238 | |
LDC 0 ; 1239 | |
TSEL 1301 1301 ; 1240 | |
LDF 1244 ; 1241 | |
LDC 0 ; 1242 | |
TSEL 1249 1249 ; 1243 | |
LD 0 0 ; vis-front ; 1244 | |
CDR ; 1245 | |
LD 3 0 ; front-continue ; 1246 | |
TAP 1 ; 1247 | |
RTN ; 1248 | |
LDF 1252 ; 1249 | |
LDC 0 ; 1250 | |
TSEL 1259 1259 ; 1251 | |
LD 0 0 ; vis-front ; 1252 | |
CAR ; 1253 | |
LD 0 0 ; vis-front ; 1254 | |
CDR ; 1255 | |
LD 2 0 ; front-step ; 1256 | |
TAP 2 ; 1257 | |
RTN ; 1258 | |
LDC 0 ; 1259 | |
LD 0 0 ; front ; 1260 | |
CONS ; 1261 | |
LD 61 0 ; while ; 1262 | |
AP 3 ; 1263 | |
LDF 1267 ; 1264 | |
LDC 0 ; 1265 | |
TSEL 1299 1299 ; 1266 | |
LD 0 0 ; final-vis-front ; 1267 | |
CDR ; 1268 | |
LDF 1272 ; 1269 | |
LDC 0 ; 1270 | |
TSEL 1297 1297 ; 1271 | |
LD 0 0 ; final-front ; 1272 | |
ATOM ; 1273 | |
TSEL 1275 1278 ; 1274 | |
LDC -7 ; 1275 | |
LDC 0 ; 1276 | |
TSEL 1296 1296 ; 1277 | |
LD 0 0 ; final-front ; 1278 | |
LD 5 0 ; finish-and-src ; 1279 | |
AP 1 ; 1280 | |
LDF 1284 ; 1281 | |
LDC 0 ; 1282 | |
TSEL 1295 1295 ; 1283 | |
LD 0 0 ; src-list ; 1284 | |
ATOM ; 1285 | |
TSEL 1287 1292 ; 1286 | |
LDC 1893120 ; 1287 | |
DBUG ; 1288 | |
LDC 0 ; 1289 | |
LDC 0 ; 1290 | |
TSEL 1294 1294 ; 1291 | |
LD 0 0 ; src-list ; 1292 | |
CAR ; 1293 | |
RTN ; 1294 | |
TAP 1 ; 1295 | |
RTN ; 1296 | |
TAP 1 ; 1297 | |
RTN ; 1298 | |
TAP 1 ; 1299 | |
RTN ; 1300 | |
LDF 1304 ; 1301 | |
LDC 0 ; 1302 | |
TSEL 1535 1535 ; 1303 | |
LD 32 0 ; POWER ; 1304 | |
LD 34 0 ; SPACE ; 1305 | |
LD 31 0 ; FRUIT ; 1306 | |
LD 33 0 ; PILL ; 1307 | |
LDC 0 ; 1308 | |
CONS ; 1309 | |
CONS ; 1310 | |
CONS ; 1311 | |
CONS ; 1312 | |
LDF 1316 ; 1313 | |
LDC 0 ; 1314 | |
TSEL 1533 1533 ; 1315 | |
LDF 1319 ; 1316 | |
LDC 0 ; 1317 | |
TSEL 1365 1365 ; 1318 | |
LDF 1322 ; 1319 | |
LDC 0 ; 1320 | |
TSEL 1357 1357 ; 1321 | |
LD 0 0 ; r ; 1322 | |
CAR ; 1323 | |
LDF 1327 ; 1324 | |
LDC 0 ; 1325 | |
TSEL 1355 1355 ; 1326 | |
LD 1 0 ; r ; 1327 | |
CDR ; 1328 | |
LDF 1332 ; 1329 | |
LDC 0 ; 1330 | |
TSEL 1353 1353 ; 1331 | |
LD 1 0 ; found ; 1332 | |
ATOM ; 1333 | |
TSEL 1335 1347 ; 1334 | |
LD 2 1 ; x ; 1335 | |
LD 3 0 ; what ; 1336 | |
CEQ ; 1337 | |
TSEL 1339 1344 ; 1338 | |
LD 0 0 ; i ; 1339 | |
LDC 0 ; 1340 | |
CONS ; 1341 | |
LDC 0 ; 1342 | |
TSEL 1345 1345 ; 1343 | |
LDC 0 ; 1344 | |
LDC 0 ; 1345 | |
TSEL 1348 1348 ; 1346 | |
LD 1 0 ; found ; 1347 | |
LDC 1 ; 1348 | |
LD 0 0 ; i ; 1349 | |
ADD ; 1350 | |
CONS ; 1351 | |
RTN ; 1352 | |
TAP 1 ; 1353 | |
RTN ; 1354 | |
TAP 1 ; 1355 | |
RTN ; 1356 | |
LD 0 1 ; where ; 1357 | |
LDC 0 ; 1358 | |
LDC 0 ; 1359 | |
CONS ; 1360 | |
LD 65 0 ; fold ; 1361 | |
AP 3 ; 1362 | |
CAR ; 1363 | |
RTN ; 1364 | |
LDF 1368 ; 1365 | |
LDC 0 ; 1366 | |
TSEL 1531 1531 ; 1367 | |
LDF 1371 ; 1368 | |
LDC 0 ; 1369 | |
TSEL 1402 1402 ; 1370 | |
LD 17 0 ; lx ; 1371 | |
LD 17 1 ; ly ; 1372 | |
LD 0 0 ; move ; 1373 | |
LD 22 0 ; add-move ; 1374 | |
AP 3 ; 1375 | |
LD 8 0 ; get-enc ; 1376 | |
AP 1 ; 1377 | |
LDF 1381 ; 1378 | |
LDC 0 ; 1379 | |
TSEL 1400 1400 ; 1380 | |
LD 0 0 ; type ; 1381 | |
LD 3 0 ; best-emergency-type ; 1382 | |
LD 2 0 ; find-first-index ; 1383 | |
AP 2 ; 1384 | |
LDF 1388 ; 1385 | |
LDC 0 ; 1386 | |
TSEL 1398 1398 ; 1387 | |
LDF 1391 ; 1388 | |
LDC 0 ; 1389 | |
TSEL 1393 1393 ; 1390 | |
LD 0 1 ; foundVal ; 1391 | |
RTN ; 1392 | |
LD 0 0 ; found ; 1393 | |
LDC 999 ; 1394 | |
LD 68 0 ; fold ; 1395 | |
TAP 3 ; 1396 | |
RTN ; 1397 | |
TAP 1 ; 1398 | |
RTN ; 1399 | |
TAP 1 ; 1400 | |
RTN ; 1401 | |
LDF 1405 ; 1402 | |
LDC 0 ; 1403 | |
TSEL 1529 1529 ; 1404 | |
LDF 1408 ; 1405 | |
LDC 0 ; 1406 | |
TSEL 1431 1431 ; 1407 | |
LDF 1411 ; 1408 | |
LDC 0 ; 1409 | |
TSEL 1424 1424 ; 1410 | |
LD 0 1 ; e ; 1411 | |
LD 1 0 ; key-func ; 1412 | |
AP 1 ; 1413 | |
LD 0 0 ; current ; 1414 | |
LD 1 0 ; key-func ; 1415 | |
AP 1 ; 1416 | |
CGTE ; 1417 | |
TSEL 1419 1422 ; 1418 | |
LD 0 0 ; current ; 1419 | |
LDC 0 ; 1420 | |
TSEL 1423 1423 ; 1421 | |
LD 0 1 ; e ; 1422 | |
RTN ; 1423 | |
LD 0 1 ; ls ; 1424 | |
CDR ; 1425 | |
LD 0 1 ; ls ; 1426 | |
CAR ; 1427 | |
LD 67 0 ; fold ; 1428 | |
TAP 3 ; 1429 | |
RTN ; 1430 | |
LDF 1434 ; 1431 | |
LDC 0 ; 1432 | |
TSEL 1527 1527 ; 1433 | |
LDF 1437 ; 1434 | |
LDC 0 ; 1435 | |
TSEL 1487 1487 ; 1436 | |
LDF 1440 ; 1437 | |
LDC 0 ; 1438 | |
TSEL 1466 1466 ; 1439 | |
LD 20 0 ; lx ; 1440 | |
LD 20 1 ; ly ; 1441 | |
LD 0 0 ; m ; 1442 | |
LD 25 0 ; add-move ; 1443 | |
AP 3 ; 1444 | |
LDF 1448 ; 1445 | |
LDC 0 ; 1446 | |
TSEL 1464 1464 ; 1447 | |
LD 0 0 ; c2 ; 1448 | |
LD 29 0 ; free-enc ; 1449 | |
AP 1 ; 1450 | |
LDF 1454 ; 1451 | |
LDC 0 ; 1452 | |
TSEL 1458 1458 ; 1453 | |
LD 0 0 ; ghc-enc ; 1454 | |
LD 1 0 ; c2 ; 1455 | |
CEQ ; 1456 | |
RTN ; 1457 | |
LD 15 0 ; ghs-enc-coords ; 1458 | |
LD 67 0 ; find-first ; 1459 | |
AP 2 ; 1460 | |
ATOM ; 1461 | |
MUL ; 1462 | |
RTN ; 1463 | |
TAP 1 ; 1464 | |
RTN ; 1465 | |
LD 25 0 ; all-moves ; 1466 | |
LD 41 0 ; filter-rev ; 1467 | |
AP 2 ; 1468 | |
LDF 1472 ; 1469 | |
LDC 0 ; 1470 | |
TSEL 1485 1485 ; 1471 | |
LD 0 0 ; filtered-moves ; 1472 | |
ATOM ; 1473 | |
TSEL 1475 1478 ; 1474 | |
LDC 0 ; 1475 | |
LDC 0 ; 1476 | |
TSEL 1484 1484 ; 1477 | |
LD 3 0 ; emergency-type-num ; 1478 | |
LD 0 0 ; filtered-moves ; 1479 | |
LD 2 0 ; search-min ; 1480 | |
AP 2 ; 1481 | |
LDC 0 ; 1482 | |
CONS ; 1483 | |
RTN ; 1484 | |
TAP 1 ; 1485 | |
RTN ; 1486 | |
LDF 1490 ; 1487 | |
LDC 0 ; 1488 | |
TSEL 1525 1525 ; 1489 | |
LDF 1493 ; 1490 | |
LDC 0 ; 1491 | |
TSEL 1509 1509 ; 1492 | |
LD 1 0 ; emergency-move-search ; 1493 | |
AP 0 ; 1494 | |
LDF 1498 ; 1495 | |
LDC 0 ; 1496 | |
TSEL 1507 1507 ; 1497 | |
LD 0 0 ; found-move ; 1498 | |
ATOM ; 1499 | |
TSEL 1501 1504 ; 1500 | |
LDC -7 ; 1501 | |
LDC 0 ; 1502 | |
TSEL 1506 1506 ; 1503 | |
LD 0 0 ; found-move ; 1504 | |
CAR ; 1505 | |
RTN ; 1506 | |
TAP 1 ; 1507 | |
RTN ; 1508 | |
LDF 1512 ; 1509 | |
LDC 0 ; 1510 | |
TSEL 1523 1523 ; 1511 | |
LD 15 0 ; is-ghost-near ; 1512 | |
ATOM ; 1513 | |
TSEL 1515 1520 ; 1514 | |
LD 12 0 ; front-init ; 1515 | |
LD 6 0 ; search-safe-path ; 1516 | |
AP 1 ; 1517 | |
LDC 0 ; 1518 | |
TSEL 1522 1522 ; 1519 | |
LD 0 0 ; emergency-move ; 1520 | |
TAP 0 ; 1521 | |
RTN ; 1522 | |
TAP 1 ; 1523 | |
RTN ; 1524 | |
TAP 1 ; 1525 | |
RTN ; 1526 | |
TAP 1 ; 1527 | |
RTN ; 1528 | |
TAP 1 ; 1529 | |
RTN ; 1530 | |
TAP 1 ; 1531 | |
RTN ; 1532 | |
TAP 1 ; 1533 | |
RTN ; 1534 | |
TAP 1 ; 1535 | |
RTN ; 1536 | |
TAP 1 ; 1537 | |
RTN ; 1538 | |
TAP 1 ; 1539 | |
RTN ; 1540 | |
TAP 1 ; 1541 | |
RTN ; 1542 | |
TAP 1 ; 1543 | |
RTN ; 1544 | |
TAP 1 ; 1545 | |
RTN ; 1546 | |
TAP 1 ; 1547 | |
RTN ; 1548 | |
TAP 1 ; 1549 | |
RTN ; 1550 | |
TAP 1 ; 1551 | |
RTN ; 1552 | |
TAP 1 ; 1553 | |
RTN ; 1554 | |
TAP 1 ; 1555 | |
RTN ; 1556 | |
TAP 1 ; 1557 | |
RTN ; 1558 | |
TAP 1 ; 1559 | |
RTN ; 1560 | |
TAP 1 ; 1561 | |
RTN ; 1562 | |
LDF 1566 ; 1563 | |
LDC 0 ; 1564 | |
TSEL 1714 1714 ; 1565 | |
LDC 10 ; 1566 | |
LD 55 0 ; wr ; 1567 | |
LDF 1571 ; 1568 | |
LDC 0 ; 1569 | |
TSEL 1634 1634 ; 1570 | |
LD 0 1 ; lms ; 1571 | |
LD 0 2 ; ghs ; 1572 | |
LD 0 3 ; frs ; 1573 | |
LDF 1577 ; 1574 | |
LDC 0 ; 1575 | |
TSEL 1583 1583 ; 1576 | |
LD 0 0 ; x ; 1577 | |
LD 0 0 ; x ; 1578 | |
LDC 20 ; 1579 | |
ADD ; 1580 | |
CONS ; 1581 | |
RTN ; 1582 | |
LDC 8 ; 1583 | |
LD 41 0 ; make_range ; 1584 | |
AP 1 ; 1585 | |
LD 44 0 ; map ; 1586 | |
AP 2 ; 1587 | |
LDF 1591 ; 1588 | |
LDC 0 ; 1589 | |
TSEL 1627 1627 ; 1590 | |
LD 0 0 ; r ; 1591 | |
LDC 5 ; 1592 | |
LDC -100 ; 1593 | |
LD 25 0 ; min ; 1594 | |
LD 29 0 ; replace ; 1595 | |
AP 4 ; 1596 | |
LDF 1600 ; 1597 | |
LDC 0 ; 1598 | |
TSEL 1625 1625 ; 1599 | |
LDF 1603 ; 1600 | |
LDC 0 ; 1601 | |
TSEL 1607 1607 ; 1602 | |
LD 0 0 ; x ; 1603 | |
LDC 2 ; 1604 | |
CGT ; 1605 | |
RTN ; 1606 | |
LDC 1 ; 1607 | |
LDC 3 ; 1608 | |
LDC 13 ; 1609 | |
LDC 3 ; 1610 | |
LDC 12 ; 1611 | |
LDC 17 ; 1612 | |
LDC 3 ; 1613 | |
LDC 0 ; 1614 | |
CONS ; 1615 | |
CONS ; 1616 | |
CONS ; 1617 | |
CONS ; 1618 | |
CONS ; 1619 | |
CONS ; 1620 | |
CONS ; 1621 | |
LD 49 0 ; find-first ; 1622 | |
TAP 2 ; 1623 | |
RTN ; 1624 | |
TAP 1 ; 1625 | |
RTN ; 1626 | |
AP 1 ; 1627 | |
DBUG ; 1628 | |
LDC 0 ; 1629 | |
CONS ; 1630 | |
CONS ; 1631 | |
CONS ; 1632 | |
RTN ; 1633 | |
LD 36 0 ; untup4 ; 1634 | |
AP 2 ; 1635 | |
CONS ; 1636 | |
CAR ; 1637 | |
LDF 1641 ; 1638 | |
LDC 0 ; 1639 | |
TSEL 1712 1712 ; 1640 | |
LD 0 1 ; wr ; 1641 | |
LDF 1645 ; 1642 | |
LDC 0 ; 1643 | |
TSEL 1709 1709 ; 1644 | |
LD 0 1 ; lms ; 1645 | |
LDF 1649 ; 1646 | |
LDC 0 ; 1647 | |
TSEL 1706 1706 ; 1648 | |
LD 0 1 ; lm-coord ; 1649 | |
LDF 1653 ; 1650 | |
LDC 0 ; 1651 | |
TSEL 1703 1703 ; 1652 | |
LD 3 0 ; rnd ; 1653 | |
LDC 1000000007 ; 1654 | |
MUL ; 1655 | |
LD 0 0 ; lx ; 1656 | |
LD 0 1 ; ly ; 1657 | |
LD 1 0 ; lvit ; 1658 | |
LD 2 0 ; gmap ; 1659 | |
LD 2 2 ; ghs ; 1660 | |
LD 2 3 ; frs ; 1661 | |
LD 4 0 ; get-move ; 1662 | |
AP 6 ; 1663 | |
LDF 1667 ; 1664 | |
LDC 0 ; 1665 | |
TSEL 1697 1697 ; 1666 | |
LDC -7 ; 1667 | |
LD 0 0 ; move ; 1668 | |
CEQ ; 1669 | |
TSEL 1671 1695 ; 1670 | |
LDC 0 ; 1671 | |
LD 4 0 ; rnd ; 1672 | |
CGTE ; 1673 | |
TSEL 1675 1685 ; 1674 | |
LDC -1073741824 ; 1675 | |
LD 4 0 ; rnd ; 1676 | |
CGTE ; 1677 | |
TSEL 1679 1682 ; 1678 | |
LDC 0 ; 1679 | |
LDC 0 ; 1680 | |
TSEL 1683 1683 ; 1681 | |
LDC 1 ; 1682 | |
LDC 0 ; 1683 | |
TSEL 1693 1693 ; 1684 | |
LDC 1073741824 ; 1685 | |
LD 4 0 ; rnd ; 1686 | |
CGTE ; 1687 | |
TSEL 1689 1692 ; 1688 | |
LDC 2 ; 1689 | |
LDC 0 ; 1690 | |
TSEL 1693 1693 ; 1691 | |
LDC 3 ; 1692 | |
LDC 0 ; 1693 | |
TSEL 1696 1696 ; 1694 | |
LD 0 0 ; move ; 1695 | |
RTN ; 1696 | |
AP 1 ; 1697 | |
CONS ; 1698 | |
LDC 1 ; 1699 | |
CONS ; 1700 | |
CAR ; 1701 | |
RTN ; 1702 | |
LD 41 0 ; untup2 ; 1703 | |
TAP 2 ; 1704 | |
RTN ; 1705 | |
LD 37 0 ; untup5 ; 1706 | |
TAP 2 ; 1707 | |
RTN ; 1708 | |
LD 37 0 ; untup4 ; 1709 | |
TAP 2 ; 1710 | |
RTN ; 1711 | |
CONS ; 1712 | |
RTN ; 1713 | |
TAP 1 ; 1714 | |
RTN ; 1715 | |
TAP 1 ; 1716 | |
RTN ; 1717 | |
TAP 1 ; 1718 | |
RTN ; 1719 | |
TAP 1 ; 1720 | |
RTN ; 1721 | |
TAP 1 ; 1722 | |
RTN ; 1723 | |
TAP 1 ; 1724 | |
RTN ; 1725 | |
TAP 1 ; 1726 | |
RTN ; 1727 | |
TAP 1 ; 1728 | |
RTN ; 1729 | |
TAP 1 ; 1730 | |
RTN ; 1731 | |
TAP 1 ; 1732 | |
RTN ; 1733 | |
TAP 1 ; 1734 | |
RTN ; 1735 | |
TAP 1 ; 1736 | |
RTN ; 1737 | |
TAP 1 ; 1738 | |
RTN ; 1739 | |
TAP 1 ; 1740 | |
RTN ; 1741 | |
TAP 1 ; 1742 | |
RTN ; 1743 | |
TAP 1 ; 1744 | |
RTN ; 1745 | |
TAP 1 ; 1746 | |
RTN ; 1747 | |
TAP 1 ; 1748 | |
RTN ; 1749 | |
TAP 1 ; 1750 | |
RTN ; 1751 | |
TAP 1 ; 1752 | |
RTN ; 1753 | |
TAP 1 ; 1754 | |
RTN ; 1755 | |
TAP 1 ; 1756 | |
RTN ; 1757 | |
TAP 1 ; 1758 | |
RTN ; 1759 | |
TAP 1 ; 1760 | |
RTN ; 1761 | |
TAP 1 ; 1762 | |
RTN ; 1763 | |
TAP 1 ; 1764 | |
RTN ; 1765 | |
TAP 1 ; 1766 | |
RTN ; 1767 | |
TAP 1 ; 1768 | |
RTN ; 1769 | |
TAP 1 ; 1770 | |
RTN ; 1771 | |
TAP 1 ; 1772 | |
RTN ; 1773 | |
TAP 1 ; 1774 | |
RTN ; 1775 | |
TAP 1 ; 1776 | |
RTN ; 1777 | |
TAP 1 ; 1778 | |
RTN ; 1779 | |
TAP 1 ; 1780 | |
RTN ; 1781 | |
TAP 1 ; 1782 | |
RTN ; 1783 | |
TAP 1 ; 1784 | |
RTN ; 1785 | |
TAP 1 ; 1786 | |
RTN ; 1787 | |
TAP 1 ; 1788 | |
RTN ; 1789 | |
TAP 1 ; 1790 | |
RTN ; 1791 | |
TAP 1 ; 1792 | |
RTN ; 1793 | |
TAP 1 ; 1794 | |
RTN ; 1795 | |
TAP 1 ; 1796 | |
RTN ; 1797 | |
TAP 1 ; 1798 | |
RTN ; 1799 | |
TAP 1 ; 1800 | |
RTN ; 1801 | |
TAP 1 ; 1802 | |
RTN ; 1803 | |
TAP 1 ; 1804 | |
RTN ; 1805 | |
TAP 1 ; 1806 | |
RTN ; 1807 | |
TAP 1 ; 1808 | |
RTN ; 1809 | |
TAP 1 ; 1810 | |
RTN ; 1811 | |
TAP 1 ; 1812 | |
RTN ; 1813 | |
TAP 1 ; 1814 | |
RTN ; 1815 | |
TAP 1 ; 1816 | |
RTN ; 1817 | |
TAP 1 ; 1818 | |
RTN ; 1819 | |
TAP 1 ; 1820 | |
RTN ; 1821 | |
TAP 1 ; 1822 | |
RTN ; 1823 | |
TAP 2 ; 1824 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(ff wr ghc | |
(let | |
(li (cons 1 (cons 2 (cons 3 0)))) | |
(rec (ff f n (f f n))) | |
(rec2 (ff f a b (f f a b))) | |
(rec3 (ff f a b c (f f a b c))) | |
(fold_rec (ff me f ls acc | |
(if (atom ls) acc (me me f (cdr ls) (f acc (car ls)))) | |
)) | |
(fold (ff f li acc (rec3 fold_rec f li acc))) | |
(while-rec (ff me cond next state | |
(if (== 0 (cond state)) | |
state | |
(me me cond next (next state)) | |
) | |
)) | |
(while (ff cond next state (rec3 while-rec cond next state))) | |
(find-first (ff f ls | |
(fold (ff res x | |
(if (atom res) | |
(if (f x) (cons x 0) 0) | |
res | |
) | |
) ls 0) | |
)) | |
; (merge_rec (ff me A B | |
; (if (atom A) B | |
; (if (atom B) A | |
; (let | |
; (a (car A)) (b (car B)) | |
; (if (a < b) | |
; (cons a (me me (cdr A) B)) | |
; (cons b (me me A (cdr B))) | |
; )))))) | |
; (merge (ff A B (rec2 merge_rec A B))) | |
; (split_rec (ff me A1 half1 half2) | |
; (if (atom A) (cons half1 half2) | |
; (let | |
; (A1 (cdr A)) | |
; (if (atom A1) (cons half1 half2) | |
; (me me (cdr A) (cons (car half2) half1) (cdr half2)) | |
; ) | |
; ) | |
; ) | |
; ) | |
; ; first half is reversed | |
; (split (ff A (rec3 split_rec A 0 A))) | |
; (sort (ff A | |
; (if (atom A) 0 (let | |
; two-halves (split A) | |
; (merge (sort (car two-halves)) (sort (cdr two-halves))) | |
; ) | |
; )) | |
(fold_range_rec (ff me f i_n acc | |
(let | |
(i (car i_n)) | |
(if (== (cdr i_n) i) acc (me me f (cons (+ 1 i) (cdr i_n)) (f acc i))) | |
) | |
)) | |
(map_rec (ff me f ls | |
(if (atom ls) 0 (cons (f (car ls)) (me me f (cdr ls)))) | |
)) | |
(map (ff f ls (rec2 map_rec f ls))) | |
(gen_adder (ff x (ff y (+ x y)))) | |
(fold_range (ff f n acc | |
(rec3 fold_range_rec f (cons 0 n) acc) | |
)) | |
(make_range (ff n (fold_range (ff acc x (cons (- (- n x) 1) acc)) n 0))) | |
(sum (ff li (fold (ff a b (+ a b)) li 0))) | |
(untup2 (ff t f (f (car t) (cdr t)))) | |
(untup3 (ff t f (f (car t) (car (cdr t)) (cdr (cdr t)) ))) | |
(untup4 (ff t f (f (car t) (car (cdr t)) (car (cdr (cdr t))) (cdr (cdr (cdr t))) ))) | |
(untup5 (ff t f (f (car t) (car (cdr t)) (car (cdr (cdr t))) (car (cdr (cdr (cdr t)))) (cdr (cdr (cdr (cdr t)))) ))) | |
(print (ff out result (car (cons result (dbug out)) ))) | |
(print1 (ff x (print x x))) | |
; trivial array operations on list | |
(at_rec (ff me ls i | |
(if (== 0 i) (car ls) (me me (cdr ls) (- i 1))) | |
)) | |
(at (ff ls i (rec2 at_rec ls i))) | |
(len (ff ls (fold (ff a _ (+ a 1)) ls 0))) | |
; trivial set implementation on list with linear search | |
; (empty 0) | |
; (in (ff set x (> (fold (ff a y (+ a (== x y))) set 0) 0) )) | |
; (add (ff set x (if (in set x) set (cons x set)) )) | |
; (union (ff A B (fold (ff Bcur a (add Bcur a)) A B))) | |
; trivial map implementation on list with linear search | |
(empty 0) | |
(in (ff M key (> (fold (ff a key_val (+ a (== key (car key_val)))) M 0) 0) )) | |
(replace (ff M key val update-func | |
(map | |
(ff key_val ( | |
if (== (car key_val) key) | |
(cons key (update-func val (cdr key_val))) | |
key_val | |
)) | |
M | |
) | |
)) | |
(add-replace (ff M key val update-func | |
(if (in M key) | |
(replace M key val update-func) | |
(cons (cons key val) M) | |
) | |
)) | |
(at_rec (ff me ls i | |
(if (== 0 i) (car ls) (me me (cdr ls) (- i 1))) | |
)) | |
(at (ff ls i (rec2 at_rec ls i))) | |
(min (ff x y (if (< x y) x y))) | |
; return -1 if no move | |
(filter-rev (ff f ls (fold | |
(ff result elem ( | |
if (f elem) | |
(cons elem result) | |
result | |
)) | |
ls | |
0 | |
))) | |
(WALL 0) | |
(SPACE 1) | |
(PILL 2) | |
(POWER 3) | |
(FRUIT 4) | |
(or (ff a b (> (+ a b) 0))) | |
(not (ff x (== x 0))) | |
(gmap-init (car wr)) | |
(get-init (ff x y (at (at gmap-init y) x))) | |
(free (ff x y (let | |
(v (get-init x y)) | |
(not (== v WALL)) | |
))) | |
(height (len gmap-init)) | |
(width (len (car gmap-init))) | |
(coord-dec (ff c f (f | |
(- c (* (/ c 1000) 1000)) | |
(/ c 1000) | |
))) | |
(free-enc (ff c (coord-dec c free))) | |
(coord-enc (ff x y (+ x (* 1000 y)))) | |
(all-moves (cons 0 (cons 1 (cons 2 (cons 3 0))))) | |
(add-move (ff x y move | |
; * 0: up; 1: right; * 2: down; 3: left | |
( if (== move 0) (coord-enc x (- y 1)) ( | |
if (== move 2) (coord-enc x (+ y 1)) ( | |
if (== move 1) (coord-enc (+ x 1) y) ( | |
if (== move 3) (coord-enc (- x 1) y) ( | |
(dbug 827182) ; on error | |
))))) | |
)) | |
(get-neibours-init (ff x y | |
(if | |
(free x y) | |
(fold | |
(ff free-list m (let | |
(c2 (add-move x y m)) | |
(if | |
(coord-dec c2 free) | |
(cons c2 free-list) | |
free-list | |
) | |
)) | |
all-moves | |
0 | |
) | |
0 | |
) | |
)) | |
(free-neib-map (map | |
(ff y (map | |
(ff x (get-neibours-init x y)) | |
(make_range width) | |
)) | |
(make_range height) | |
)) | |
(asdf (print1 free-neib-map)) | |
(get-neibours-list (ff x y (at (at free-neib-map y) x))) | |
(get-move (ff lx ly lvit gmap ghs_state fruit_count | |
(let | |
(get (ff x y (at (at gmap y) x))) | |
(ghs-coords (let | |
(alive_ghost (filter-rev (ff ghost (== 0 (car ghost))) ghs_state)) | |
(map (ff ghost (car (cdr ghost))) alive_ghost) | |
)) | |
(update-neibours (ff vis front c src | |
(fold | |
(ff front c2 | |
(if (in vis c2) front (add-replace front c2 src min)) | |
) | |
(coord-dec c get-neibours-list) | |
front | |
) | |
)) | |
(dist1 (ff x (== (* x x) 1))) | |
(is-ghost-near (fold | |
(ff r ghc (untup2 ghc (ff x y (if | |
(or (* (dist1 (- x lx)) (== y ly)) (* (== x lx) (dist1 (- y ly)))) | |
(cons (cons x y) r) | |
r | |
)))) | |
ghs-coords | |
0 | |
)) | |
(ghs-enc-coords (map (ff c (coord-enc (car c) (cdr c)) ) ghs-coords)) | |
(ghs-front-tmp (fold (ff front c | |
(update-neibours 0 (add-replace front c -1 min) c -1) | |
) ghs-enc-coords 0)) | |
(front-init (fold | |
(ff cur m | |
(let | |
(new-pos (add-move lx ly m)) | |
(if | |
(coord-dec new-pos free) | |
(add-replace cur new-pos m min) | |
cur | |
) | |
) | |
) | |
all-moves ghs-front-tmp | |
)) | |
(get-enc (ff c (coord-dec c get))) | |
(edible (ff val ; todo: ghost huntering, they are tasty too | |
(or (or (== val PILL) (== val POWER)) | |
(* (== val FRUIT) (> fruit_count 300) ) | |
) | |
)) | |
(finish-and-src (ff front | |
(map | |
(ff x (cdr x)) | |
(find-first | |
(ff x (* (>= (cdr x) 0) (edible (get-enc (car x))) )) | |
front | |
) | |
) | |
)) | |
; (finish-and-src (ff front (let | |
; (r (finish-and-src-x front)) | |
; (tmp (print1 front)) | |
; (tmp (print1 r)) | |
; r | |
; ))) | |
(front-continue (ff front | |
(* (== 0 (atom front)) (atom (finish-and-src front))) | |
)) | |
(front-step (ff vis front | |
(cons | |
front | |
(fold | |
(ff front2 e | |
(let | |
(c (car e)) | |
(src (cdr e)) | |
(update-neibours vis front2 c src) | |
) | |
) | |
front | |
0 | |
) | |
) | |
)) | |
(search-safe-path (ff front | |
(let | |
(final-vis-front (while | |
(ff vis-front (front-continue (cdr vis-front))) | |
(ff vis-front (front-step (car vis-front) (cdr vis-front))) | |
(cons 0 front) | |
)) | |
(final-front (cdr final-vis-front)) | |
(if (atom final-front) | |
-7 ; todo: trivial logic for unknown path | |
(let (src-list (finish-and-src final-front)) | |
(if (atom src-list) (dbug 1893120) (car src-list)) | |
) | |
) | |
) | |
)) | |
(best-emergency-type (cons POWER (cons SPACE (cons FRUIT (cons PILL 0))))) ; fruit is more like 'empty' here | |
(find-first-index (ff what where (car (fold | |
(ff r x (let (found (car r)) (i (cdr r)) | |
(cons | |
(if (atom found) | |
(if (== x what) | |
(cons i 0) | |
0 | |
) | |
found | |
) | |
(+ 1 i) | |
) | |
)) | |
where | |
(cons 0 0) | |
)))) | |
(emergency-type-num (ff move | |
(let | |
(type (get-enc (add-move lx ly move))) | |
(found (find-first-index type best-emergency-type)) | |
(fold (ff _ foundVal foundVal) found 999) | |
) | |
)) | |
(search-min (ff key-func ls (fold | |
(ff current e | |
(if (< (key-func current) (key-func e)) current e) | |
) | |
(cdr ls) | |
(car ls) | |
))) | |
(emergency-move-search (ff (let | |
(filtered-moves (filter-rev | |
(ff m (let | |
(c2 (add-move lx ly m)) | |
(* | |
(free-enc c2) | |
(atom (find-first (ff ghc-enc (== ghc-enc c2)) ghs-enc-coords)) ; not occupied by ghost | |
) | |
)) | |
all-moves | |
)) | |
(if (atom filtered-moves) | |
0 | |
(cons (search-min emergency-type-num filtered-moves) 0) | |
) | |
))) | |
(emergency-move (ff (let | |
(found-move (emergency-move-search)) | |
(if (atom found-move) -7 (car found-move)) | |
))) | |
;(search-safe-path front-init) | |
(if (atom is-ghost-near) | |
(search-safe-path front-init) | |
(emergency-move) | |
) | |
) | |
)) | |
(cons | |
; (print 10) | |
(car (cons 10 | |
(untup4 wr (ff gmap lms ghs frs ( cons lms (cons ghs(cons frs | |
; (dbug (fold (ff a x (+ a (fold (ff a2 y (+ (== y 2) a2)) x 0) )) gmap 0)) | |
(dbug (let | |
(r (map (ff x (cons x (+ x 20))) (make_range 8) )) | |
(r2 (replace r 5 -100 min)) | |
; (while (ff rnd (< (car rnd) 10)) (ff rnd (untup2 rnd (ff i list (cons (+ 1 i) (cons (* i i) list))))) (cons 0 0) ) | |
(find-first (ff x (> x 2)) | |
(cons 1 (cons 3 (cons 13 (cons 3 (cons 12 (cons 17 (cons 3 0))))))) | |
) | |
)) | |
))))) | |
)) | |
(ff rnd wr | |
(untup4 wr (ff gmap lms ghs frs | |
(untup5 lms (ff lvit lm-coord _ _ | |
(untup2 lm-coord (ff lx ly | |
(car (cons | |
;(cons (* rnd 1000000007) | |
(cons (* rnd 1000000007) | |
(let | |
(move (get-move lx ly lvit gmap ghs frs)) | |
(if (== -7 move) | |
(if (< rnd 0) (if (< rnd -1073741824) 0 1) (if (< rnd 1073741824) 2 3) ) ; random wandering | |
move | |
) | |
) | |
) | |
1 | |
)) | |
)) | |
)) | |
; (car | |
; (cons | |
; (cons (* rnd 1000000007) (if (< rnd 0) (if (< rnd -1073741824) 0 1) (if (< rnd 1073741824) 2 3) )) | |
; ; (print1 (fold (ff a x (+ a (fold (ff a2 y (+ (== y 2) a2)) x 0) )) gmap 0) ) | |
; 1 | |
; ; (print1 gmap) | |
; ; (print1 (fold (ff a row (cons a ( | |
; ; car (fold (ff a2 v ( cons ( if (== v 3) (cons (cdr a2) (car a2)) (car a2) ) (+ 1 (cdr a2)) )) row (cons 0 0))) )) gmap 0 | |
; ; )) | |
; )) | |
)) | |
)))) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment