|
| 1 | +@NUTSHELL Tet2 |
| 2 | + |
| 3 | +Tet2 is the successor to Tetrazine, where the DECA blocker heads change behavior slightly. |
| 4 | +They "write" their values to NTAA data passing below, instead of toggling when NTAA heads pass. |
| 5 | + |
| 6 | +States: |
| 7 | + |
| 8 | +0: {Background} background |
| 9 | +1: {StrongHead} strong head |
| 10 | +2: {StrongTail} strong tail |
| 11 | +3: {StrongWire} strong wire |
| 12 | +4: {WeakHead} weak head |
| 13 | +5: {WeakTail} weak tail |
| 14 | +6: {WeakWire} weak wire |
| 15 | +7: {NTAAHead1} NTAA head 1 |
| 16 | +8: {NTAAHead0} NTAA head 0 |
| 17 | +9: {NTAATail} NTAA tail |
| 18 | +10: {NTAAWire} NTAA wire |
| 19 | +11: {DECA1} DECA blocker head 1 |
| 20 | +12: {DECA0} DECA blocker head 0 |
| 21 | + |
| 22 | + |
| 23 | +@TABLE |
| 24 | +neighborhood: Moore |
| 25 | +anyNTAAHead = (NTAAHead0, NTAAHead1) |
| 26 | +anyWWHead = (StrongHead, WeakHead) |
| 27 | +WWTail = (WeakTail, StrongTail) |
| 28 | +anyWW = (anyWWHead, WeakWire, StrongWire) |
| 29 | +anyNTAA = (anyNTAAHead, NTAATail, NTAAWire) |
| 30 | + |
| 31 | +# --------------DECA--------------- |
| 32 | + |
| 33 | +symmetries: rotate4reflect |
| 34 | +# blocked by adjacent DECA head1 |
| 35 | +(WeakWire, StrongWire), N Background, E (WeakWire, StrongWire), S DECA1, W (anyWWHead, anyNTAAHead); [0] |
| 36 | + |
| 37 | +# toggle when lone WW (stronghead/strongtail/weakhead) next to |
| 38 | +(DECA0, DECA1), NW --anyWW, N (anyWWHead, StrongTail), NE --anyWW; [0: (DECA1, DECA0)] |
| 39 | + |
| 40 | +# --------------NTAA-------------- |
| 41 | +# 0: blank |
| 42 | +# 1: wire {w} |
| 43 | +# 2: wire 0 {h0} |
| 44 | +# 3: wire 1 {h1} |
| 45 | +# 4: tail {t} |
| 46 | + |
| 47 | +# h = (h0, h1) |
| 48 | +# ht = (h, t) |
| 49 | +# wht = (w, ht) |
| 50 | +# wt = (w, t) |
| 51 | + |
| 52 | +symmetries: nutshell.AlternatingPermute |
| 53 | +# NEVER put a head where there would be an adjacent tail |
| 54 | +# w, t, any ~ 3; w |
| 55 | +NTAAWire, NTAATail, any ~ 4, any ~ 3; NTAAWire |
| 56 | + |
| 57 | +symmetries: rotate4reflect |
| 58 | +# Split at T |
| 59 | +# w, w, h, w, --wht; [2] |
| 60 | +NTAAWire, N NTAAWire, E anyNTAAHead, S NTAAWire, W --anyNTAA; [E] |
| 61 | + |
| 62 | +symmetries: nutshell.AlternatingPermute |
| 63 | +# Signals wait at intersections |
| 64 | +# w, w ~ 2, any ~ 2; w |
| 65 | +NTAAWire, NTAAWire ~ 2, any ~ 4, any ~ 2; NTAAWire |
| 66 | + |
| 67 | +# Sum=1 signal combination |
| 68 | +# w, h1, h1, any ~ 2; h0 |
| 69 | +NTAAWire, NTAAHead1 ~ 2, any ~ 4, any ~ 2; NTAAHead0 |
| 70 | + |
| 71 | +# w, h, h0, --h1 ~ 2; [1] |
| 72 | +NTAAWire, anyNTAAHead, any ~ 2, NTAAHead0, any ~ 2, --NTAAHead1 ~ 2; [1] |
| 73 | + |
| 74 | +# DECA interjection: DECA0/1 adjacent writes type |
| 75 | +symmeries: rotate4reflect |
| 76 | +NTAAWire, N DECA0, E anyNTAAHead, W NTAAWire, S Background; NTAAHead1 |
| 77 | +NTAAWire, N DECA1, E anyNTAAHead, W NTAAWire, S Background; NTAAHead0 |
| 78 | + |
| 79 | +symmetries: nutshell.AlternatingPermute |
| 80 | +# Signals |
| 81 | +# w, h, --h ~ 3; [1] |
| 82 | +NTAAWire, anyNTAAHead, any ~ 2, --anyNTAAHead ~ 3, any ~ 2; [1] |
| 83 | +# h, --w ~ 4; t |
| 84 | +anyNTAAHead, --NTAAWire ~ 4, any ~ 4; NTAATail |
| 85 | +# t, --h ~ 4; w |
| 86 | +NTAATail, --anyNTAAHead ~ 4, any ~ 4; NTAAWire |
| 87 | + |
| 88 | +# -----------------Wireworld++----------------- |
| 89 | + |
| 90 | +symmetries: permute |
| 91 | +# prevent backfiring when transitioning into NTAA wire |
| 92 | +(StrongTail, WeakTail), NTAAHead1 ~ 1, any ~ 7; [0] |
| 93 | +# wireworld heads go immediately to tail |
| 94 | +(StrongHead, StrongTail), any; [0: (StrongTail, StrongWire)] |
| 95 | +(WeakHead, WeakTail), any; [0: (WeakTail, WeakWire)] |
| 96 | +# wireworld++ transitions |
| 97 | +StrongWire, <12 / (StrongHead, NTAAHead1) / any - (StrongHead, NTAAHead1)>; StrongHead |
| 98 | +StrongWire, <2 / (WeakHead, NTAAHead1) / any - (WeakHead, NTAAHead1)>; StrongHead |
| 99 | +WeakWire, <12 / (WeakHead, NTAAHead1) / any - (WeakHead, NTAAHead1)>; WeakHead |
| 100 | +WeakWire, <1 / (StrongHead, NTAAHead1) / any - (StrongHead, NTAAHead1)>; WeakHead |
| 101 | + |
| 102 | +# ---------------some crossover------------ |
| 103 | + |
| 104 | +# activate when Wireworld++heads |
| 105 | +symmetries: permute |
| 106 | +NTAAWire, anyWWHead ~ 2, any; NTAAHead1 |
| 107 | +NTAAWire, anyWWhead ~ 1, any; NTAAHead0 |
| 108 | + |
| 109 | +@COLORS |
| 110 | + |
| 111 | +000: Background |
| 112 | +0F0: StrongHead |
| 113 | +080: StrongTail |
| 114 | +050: StrongWire |
| 115 | +FF0: WeakHead |
| 116 | +880: WeakTail |
| 117 | +005: WeakWire |
| 118 | +0FF: NTAAHead1 |
| 119 | +088: NTAAHead0 |
| 120 | +800: NTAATail |
| 121 | +500: NTAAWire |
| 122 | +555: DECA0 |
| 123 | +FFF: DECA1 |
0 commit comments