#N canvas 0 56 1680 969 12; #X obj 1228 89 f \$1; #X msg 2095 741 symbol c\$1; #X obj 2091 799 v; #X msg 1887 745 symbol c\$1; #X obj 1899 805 v; #X msg 1729 747 symbol c\$1; #X obj 1717 806 v; #X obj 1608 806 v; #X msg 1481 748 symbol c\$1; #X obj 1508 806 v; #X msg 1330 751 symbol c\$1; #X obj 1356 809 v; #X msg 1197 755 symbol c\$1; #X obj 1219 813 v; #X obj 1093 810 v; #X obj 1228 32 r setup_c\$1; #X msg 1597 751 symbol c\$1; #X msg 1068 756 symbol c\$1; #X obj 891 834 t b s; #X obj 891 868 f \$1; #X msg 891 926 symbol setup_c\$1; #X obj 891 978 s; #X obj 891 952 t b s; #X obj 2165 1053 r new_round_c\$1; #X floatatom 1669 1109 5 0 0 0 - - -; #X obj 337 472 f; #X obj 337 401 r change_state_c\$1; #X obj 1171 1034 f \$1; #X msg 1171 1094 symbol new_round_c\$1; #X obj 1175 1148 s; #X obj 1171 1119 t b s; #X obj 1625 1153 t f f; #X obj 337 534 select 2 3; #X obj 103 103 tgl 55 0 empty empty empty 17 7 0 10 -4032 -159808 -159808 0 1; #X msg 378 654 0; #X obj 103 339 v c\$1; #X obj 1228 60 t b b; #X msg 435 165 0; #X msg 341 653 1; #X obj 249 530 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X obj 211 523 f; #X obj 211 553 moses 1; #X obj 103 227 t f f; #X obj 197 327 t b f; #X obj 891 897 + 1; #X obj 1171 1062 + 1; #X obj 68 546 f \$1; #X obj 68 734 s; #X obj 68 675 t b s; #X obj 68 588 + 1; #X msg 68 629 symbol change_state_c\$1; #X obj 1228 160 mod; #X obj 1285 138 v ncols; #X obj 1228 120 t f b; #X obj 1228 186 select 0 1; #X obj 1539 274 expr $i1 < (ncols + 1) \; ($i1 >= (ncols + 1)) && ($i1 <= (ncols * nrows - ncols)) \; $i1 > (ncols * nrows - ncols); #X obj 1128 274 expr $i1 < (ncols + 1) \; ($i1 >= (ncols + 1)) && ($i1 <= (ncols * nrows - ncols)) \; $i1 > (ncols * nrows - ncols); #X obj 708 275 expr $i1 < (ncols + 1) \; ($i1 >= (ncols + 1)) && ($i1 <= (ncols * nrows - ncols)) \; $i1 > (ncols * nrows - ncols); #X obj 1671 236 f \$1; #X obj 1259 237 f \$1; #X obj 940 239 f \$1; #X obj 1552 210 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X obj 1952 476 expr $i1 + ncols + 1 \; $i1 + ncols \; $i1 + ncols - 1 \; $i1 - 1 \; $i1 - ncols - 1 \; $i1 - ncols \; $i1 - ncols + 1 \; $i1 + 1; #X obj 1708 476 expr $i1 + ncols + 1 \; $i1 + ncols \; $i1 + ncols - 1 \; $i1 - 1 \; ncols * nrows + $i1 - ncols - 1 \; ncols * nrows + $i1 - ncols \; ncols * nrows + $i1 - ncols + 1 \; $i1 + 1; #X obj 1390 478 expr $i1 + ncols + 1 \; $i1 + ncols \; $i1 + ncols - 1 \; $i1 - 1 \; $i1 + 2 * ncols - 1 \; $i1 - ncols \; $i1 - ncols + 1 \; $i1 + 1; #X obj 1577 478 expr 2 \; 1 \; ncols \; ncols * nrows \; $i1 - 1 \; $i1 - ncols \; $i1 - ncols + 1 \; $i1 + 1; #X obj 810 476 expr $i1 - 2 * ncols + 1 \; $i1 + ncols \; $i1 + ncols - 1 \; $i1 - 1 \; $i1 - ncols - 1 \; $i1 - ncols \; $i1 - ncols + 1 \; $i1 + 1; #X obj 1012 479 expr 1 \; ncols \; ncols - 1 \; $i1 - 1 \; $i1 - ncols - 1 \; $i1 - ncols \; $i1 - 2 * ncols + 1 \; $i1 - ncols + 1; #X obj 608 478 expr ncols + 1 \; $i1 + ncols \; $i1 + ncols - 1 \; $i1 - 1 \; nrows * ncols - 1 \; nrows * ncols \; nrows * ncols - ncols + 1 \; 1; #X obj 700 375 select 1; #X obj 700 405 f \$1; #X obj 849 377 select 1; #X obj 849 407 f \$1; #X obj 1066 375 select 1; #X obj 1066 405 f \$1; #X obj 1215 377 select 1; #X obj 1215 407 f \$1; #X obj 1441 378 select 1; #X obj 1441 408 f \$1; #X obj 1590 380 select 1; #X obj 1590 410 f \$1; #X obj 1717 389 select 1; #X obj 1717 419 f \$1; #X obj 1956 380 select 1; #X obj 1956 410 f \$1; #X obj 2141 379 select 1; #X obj 2141 409 f \$1; #X msg 1668 1039 0; #X obj 2056 1147 t b b b b b b b b b; #X obj 1218 880 t f b; #X msg 1297 903 1; #X obj 1186 919 spigot; #X obj 1173 981 t b f; #X obj 1672 1071 t f f; #X obj 2128 478 expr $i1 - ncols + 1 \; $i1 - ncols \; $i1 - ncols - 1 \; $i1 - 1 \; $i1 - 1 - ncols * nrows + ncols \; $i1 - ncols * nrows + ncols \; $i1 + 1 - ncols * nrows + ncols \; $i1 + 1; #X obj 1185 479 expr $i1 + ncols + 1 \; $i1 + ncols \; 2 * ncols \; ncols \; ncols * nrows \; ncols * nrows - ncols + 2 \; ncols * nrows - ncols + 1 \; $i1 + 1; #X symbolatom 1130 788 10 0 0 0 - - -; #X symbolatom 1634 779 10 0 0 0 - - -; #X symbolatom 1523 776 10 0 0 0 - - -; #X symbolatom 1383 786 10 0 0 0 - - -; #X symbolatom 1259 790 10 0 0 0 - - -; #X symbolatom 1751 780 10 0 0 0 - - -; #X symbolatom 1933 776 10 0 0 0 - - -; #X symbolatom 2150 780 10 0 0 0 - - -; #X obj 1573 1069 +; #X text 390 117 Initialize state as not alive; #X text 1606 195 Determine which column & which row the current cell is on; #X text 1639 212 The first & last cols & rows need to be handled differently ; #X text 650 870 After storing the last neighbor; #X text 615 891 send the setup-bang to the next cell; #X text 1718 1119 Count alive neighbors; #X text 942 991 After counting the last neighbor; #X text 1194 1010 store the number; #X text 1221 1122 and tell the next cell to count its neighbors; #X text 315 375 Receive bang to change state; #X text 2091 1033 Receive bang to start a new round; #X text 1335 33 Receive bang from the previous cell to initiate setup ; #X text 253 705 3 neighbors alive -> set state to alive; #X text 255 689 !(2 \, 3) neighbors alive -> set state to dead; #X text 255 723 2 neighbors alive -> keep previous state; #X obj 329 211 t f f; #X text 48 756 Send bang for next cell to change state; #X text 1775 421 Calculate neighbors; #X obj 817 1036 print c\$1_setup_send; #X obj 1278 59 print c\$1_setup_receive; #X connect 0 0 53 0; #X connect 1 0 2 1; #X connect 1 0 103 0; #X connect 2 0 104 0; #X connect 3 0 4 1; #X connect 3 0 102 0; #X connect 4 0 104 0; #X connect 5 0 6 1; #X connect 5 0 101 0; #X connect 6 0 104 0; #X connect 7 0 104 0; #X connect 8 0 9 1; #X connect 8 0 98 0; #X connect 9 0 104 0; #X connect 10 0 11 1; #X connect 10 0 99 0; #X connect 11 0 104 0; #X connect 12 0 13 1; #X connect 12 0 100 0; #X connect 13 0 104 0; #X connect 14 0 89 0; #X connect 15 0 36 0; #X connect 15 0 124 0; #X connect 16 0 7 1; #X connect 16 0 97 0; #X connect 17 0 18 0; #X connect 17 0 96 0; #X connect 18 0 19 0; #X connect 18 1 14 1; #X connect 19 0 44 0; #X connect 20 0 22 0; #X connect 22 0 21 0; #X connect 22 1 21 1; #X connect 23 0 88 0; #X connect 24 0 31 0; #X connect 25 0 32 0; #X connect 26 0 25 0; #X connect 27 0 45 0; #X connect 28 0 30 0; #X connect 30 0 29 0; #X connect 30 1 29 1; #X connect 31 0 91 0; #X connect 31 1 104 1; #X connect 32 0 39 0; #X connect 32 1 38 0; #X connect 32 2 34 0; #X connect 33 0 42 0; #X connect 34 0 43 0; #X connect 36 0 0 0; #X connect 36 1 37 0; #X connect 37 0 120 0; #X connect 38 0 43 0; #X connect 39 0 40 0; #X connect 40 0 41 0; #X connect 41 0 34 0; #X connect 41 1 38 0; #X connect 42 0 35 0; #X connect 42 1 40 1; #X connect 43 0 46 0; #X connect 43 1 33 0; #X connect 44 0 20 0; #X connect 44 0 123 0; #X connect 45 0 28 0; #X connect 46 0 49 0; #X connect 48 0 47 0; #X connect 48 1 47 1; #X connect 49 0 50 0; #X connect 50 0 48 0; #X connect 51 0 54 0; #X connect 52 0 51 1; #X connect 53 0 51 0; #X connect 53 1 52 0; #X connect 54 0 60 0; #X connect 54 1 59 0; #X connect 54 2 61 0; #X connect 55 0 81 0; #X connect 55 1 83 0; #X connect 55 2 85 0; #X connect 56 0 75 0; #X connect 56 1 77 0; #X connect 56 2 79 0; #X connect 57 0 69 0; #X connect 57 1 71 0; #X connect 57 2 73 0; #X connect 58 0 55 0; #X connect 59 0 56 0; #X connect 60 0 57 0; #X connect 61 0 58 0; #X connect 62 0 17 0; #X connect 62 1 12 0; #X connect 62 2 10 0; #X connect 62 3 8 0; #X connect 62 4 16 0; #X connect 62 5 5 0; #X connect 62 6 3 0; #X connect 62 7 1 0; #X connect 63 0 17 0; #X connect 63 1 12 0; #X connect 63 2 10 0; #X connect 63 3 8 0; #X connect 63 4 16 0; #X connect 63 5 5 0; #X connect 63 6 3 0; #X connect 63 7 1 0; #X connect 64 0 17 0; #X connect 64 1 12 0; #X connect 64 2 10 0; #X connect 64 3 8 0; #X connect 64 4 16 0; #X connect 64 5 5 0; #X connect 64 6 3 0; #X connect 64 7 1 0; #X connect 65 0 17 0; #X connect 65 1 12 0; #X connect 65 2 10 0; #X connect 65 3 8 0; #X connect 65 4 16 0; #X connect 65 5 5 0; #X connect 65 6 3 0; #X connect 65 7 1 0; #X connect 66 0 17 0; #X connect 66 1 12 0; #X connect 66 2 10 0; #X connect 66 3 8 0; #X connect 66 4 16 0; #X connect 66 5 5 0; #X connect 66 6 3 0; #X connect 66 7 1 0; #X connect 67 0 17 0; #X connect 67 1 12 0; #X connect 67 2 10 0; #X connect 67 3 8 0; #X connect 67 4 16 0; #X connect 67 5 5 0; #X connect 67 6 3 0; #X connect 67 7 1 0; #X connect 68 0 17 0; #X connect 68 1 12 0; #X connect 68 2 10 0; #X connect 68 3 8 0; #X connect 68 4 16 0; #X connect 68 5 5 0; #X connect 68 6 3 0; #X connect 68 7 1 0; #X connect 69 0 70 0; #X connect 70 0 68 0; #X connect 71 0 72 0; #X connect 72 0 66 0; #X connect 73 0 74 0; #X connect 74 0 67 0; #X connect 75 0 76 0; #X connect 76 0 95 0; #X connect 77 0 78 0; #X connect 78 0 64 0; #X connect 79 0 80 0; #X connect 80 0 65 0; #X connect 81 0 82 0; #X connect 82 0 63 0; #X connect 83 0 84 0; #X connect 84 0 62 0; #X connect 85 0 86 0; #X connect 86 0 94 0; #X connect 87 0 93 0; #X connect 88 0 14 0; #X connect 88 1 13 0; #X connect 88 2 11 0; #X connect 88 3 9 0; #X connect 88 4 7 0; #X connect 88 5 6 0; #X connect 88 6 4 0; #X connect 88 7 2 0; #X connect 88 8 87 0; #X connect 89 0 104 0; #X connect 89 1 90 0; #X connect 90 0 91 1; #X connect 91 0 92 0; #X connect 92 0 27 0; #X connect 92 1 25 1; #X connect 93 0 24 0; #X connect 93 1 91 1; #X connect 94 0 17 0; #X connect 94 1 12 0; #X connect 94 2 10 0; #X connect 94 3 8 0; #X connect 94 4 16 0; #X connect 94 5 5 0; #X connect 94 6 3 0; #X connect 94 7 1 0; #X connect 95 0 17 0; #X connect 95 1 12 0; #X connect 95 2 10 0; #X connect 95 3 8 0; #X connect 95 4 16 0; #X connect 95 5 5 0; #X connect 95 6 3 0; #X connect 95 7 1 0; #X connect 104 0 24 0; #X connect 120 0 35 0; #X connect 120 1 40 1; #X coords 0 -1 1 1 60 60 1 100 100;