Rule:WWEJ

From LifeWiki
Revision as of 19:29, 15 March 2020 by Ian07 (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

@RULE WWEJ

  1. Mark Jeronimus's WireWorld Extendable (WWEJ) in Golly rule-table format.
  2. Version 3.1
  3. Based on WireWorld. Universally extendable, using just 11 states.
  4. Although inspired by, it is not based on Alan Tennant's WWE and WWE2.
  5. This WireWorld Extendable automaton can operate a common construction or
  6. read/write arm using special functions (FORWARD, BACKWARD, LEFT, RIGHT) and
  7. at the end of an arm, a remote WIRE cell can be written, read or erased
  8. using special photons (WRITE, READ). The special functions are coded in
  9. different HEAD states. This is a choice I made this choice consciously and
  10. it has nothing to do with doing it differently than WWE. In fact, I had this
  11. idea before I got to know WWE but didn't have enough inspiration back then.
  12. I managed to get every special function (FORWARD, BACKWARD, LEFT, RIGHT,
  13. WRITE, READ) to operate correctly with just one extra state, namely the
  14. TEMPORARY state. The side-effects that would normally result, and why WWE
  15. needs lots of extra states, are solved cleverly by restraining the possible
  16. number of designs. In each case the TEMPORARY pops up, the surrounding
  17. situation should be unique for the head that caused it to appear (LEFT,
  18. RIGHT, WRITE, READ). By distinguishing these unique neighborhoods,
  19. LEFT/RIGHT can go around corners and WRITE/READ can reach distant cells
  20. without making contact with them. The result is that wires that go around
  21. corners should have a WIRE cell AT the corner, because a 45 degree corner
  22. would confuse a turn-head and it will generate a turn in the opposite
  23. direction. Also, when a turn-head reaches the end of a wire, it writes two
  24. WIRE cells in the direction of the turn, as a side effect from the
  25. WRITE-head rules, which write a cell at a distance of two from the wire end.
  26. Finally, the READ head always destroys the data, as this rule would either
  27. conflict with the operation of the WRITE signal or the WRITE head wouldn't
  28. be able to write a WIRE between two WIRE cells. The latter again conflicts
  29. with the WRITE rule, so when a cell is written, the write arm retracts one
  30. cell, except when the cell already existed (write collision), otherwise a
  31. WIRE can not be erased when another WIRE cell is directly behind it. This
  32. all doesn't affect the universality of the automaton.
  33. States:
  34. 0: BACKGROUND
  35. 1: HEAD
  36. 2: TAIL
  37. 3: WIRE
  38. 4: FORWARD head
  39. 5: BACKWARD head
  40. 6: LEFT head
  41. 7: RIGHT head
  42. 8: WRITE head
  43. 9: READ head
  44. 10: TEMPORARY state
  45. For simplicity, special heads can only be created when two heads collide
  46. side-by-side. Adding scenarios for diagonal, opposite, etc collisions would
  47. require more than twice the number of rules in this table.
  48. Special head transition matrix:
  49. 1 4 5 6 7 8 9
  50. 1 4 5 7 . 8 9 1
  51. 4 5 8 . . . 6 4
  52. 5 7 . . . . . 5
  53. 6 . . . 7 . . 7
  54. 7 8 . . . . . 6
  55. 8 9 6 . . . 9 8
  56. 9 1 4 5 7 6 8 1
  57. Spots with a '.' are reserved and should not be used to guarantee forward
  58. compatibility.
  59. Changelog:
  60. Version 3.1
  61. - Feeding other heads into ERASE constructor wont create oscillation anymore.
  62. Version 3.0
  63. - Differrent transition matrix for easier access to all photons.
  64. - Abandoned 3-micron logic backwards compatibility.
  65. Version 2.2
  66. - Combining signals with a READ heads will now 'mirror' the signal (except
  67. two READ heads which will always combine to a normal HEAD).
  68. - Fix 3-micron XOR gate bug.
  69. - Nicer wide display wire (3 micron).
  70. Version 2.0
  71. - Made 99.9% backwards compatible with WireWorld.
  72. - Transition table instead of linear transitions.
  73. - Fix to make it more compatible with WWEJ2.
  74. Contact: mark.jeronimus@gmail.com
  75. Number of rules: <to count>

@TABLE n_states:11 neighborhood:Moore symmetries:rotate4

  1. ALL

var aa={0,1,2,3,4,5,6,7,8,9,10} var ab={0,1,2,3,4,5,6,7,8,9,10} var ac={0,1,2,3,4,5,6,7,8,9,10} var ad={0,1,2,3,4,5,6,7,8,9,10} var ae={0,1,2,3,4,5,6,7,8,9,10} var af={0,1,2,3,4,5,6,7,8,9,10} var ag={0,1,2,3,4,5,6,7,8,9,10} var ah={0,1,2,3,4,5,6,7,8,9,10}

  1. not a head

var na={0,2,3,10} var nb={0,2,3,10} var nc={0,2,3,10} var nd={0,2,3,10} var ne={0,2,3,10} var nf={0,2,3,10} var ng={0,2,3,10} var nh={0,2,3,10}

  1. not BACKGROUND

var ba={1,2,3,4,5,6,7,8,9,10} var bb={1,2,3,4,5,6,7,8,9,10} var bc={1,2,3,4,5,6,7,8,9,10} var bd={1,2,3,4,5,6,7,8,9,10} var be={1,2,3,4,5,6,7,8,9,10} var bg={1,2,3,4,5,6,7,8,9,10}

  1. Heads

var ha={1,4,5,6,7,8,9} var hb={1,4,5,6,7,8,9} var hc={1,4,5,6,7,8,9} var hd={1,4,5,6,7,8,9} var he={1,4,5,6,7,8,9} var hf={1,4,5,6,7,8,9}

  1. Special heads

var sa={4,5,6,7,8,9} var sb={4,5,6,7,8,9} var sc={4,5,6,7,8,9} var sd={4,5,6,7,8,9} var se={4,5,6,7,8,9} var sf={4,5,6,7,8,9}

  1. BACKGROUND or WIRE

var wa={0,3} var wc={0,3} var we={0,3} var wg={0,3}

  1. TAIL or WIRE

var td={2,3} var tf={2,3} var th={2,3}

  1. OTHER
  1. not WIRE

var nw={0,1,2,4,5,6,7,8,9,10}

  1. not LEFT

var nl={0,1,2,3,4,5,7,8,9,10}

  1. not RIGHT

var nr={0,1,2,3,4,5,6,8,9,10}

                                1. NORMAL interactions (high priority) ################
  1. WWEJ2 compatibility fix: Create a TAIL to prevent oscillation (in WWEJ2 an ERASE state would be generated here)

3, 3,sb,sb,sb, 3,af,ag,ah,2

  1. Nicer wide display wire (3 micron)

3, 1, 1, 3, 2, 2, 0, 0, 0,1 3, 3, 1, 1, 0, 0, 0, 2, 2,1

  1. Two colliding HEADs become FORWARD when propagating in a 2x2 block of cells.

3, 1, 1, 3,nd,ne,nf,ng,nh,4 3, 3, 1, 1,nd,ne,nf,ng,nh,4

  1. Two colliding special heads become another head type.

3, 1, 4,nc,nd,ne,nf,ng,nh,5 3, 4, 1,nc,nd,ne,nf,ng,nh,5 3,na, 1, 4,nd,ne,nf,ng,nh,5 3,na, 4, 1,nd,ne,nf,ng,nh,5

3, 4, 4,nc,nd,ne,nf,ng,nh,8 3,na, 4, 4,nd,ne,nf,ng,nh,8

3, 1, 5,nc,nd,ne,nf,ng,nh,7 3, 5, 1,nc,nd,ne,nf,ng,nh,7 3,na, 1, 5,nd,ne,nf,ng,nh,7 3,na, 5, 1,nd,ne,nf,ng,nh,7

3, 4, 8,nc,nd,ne,nf,ng,nh,6 3, 8, 4,nc,nd,ne,nf,ng,nh,6 3,na, 4, 8,nd,ne,nf,ng,nh,6 3,na, 8, 4,nd,ne,nf,ng,nh,6

3, 8, 8,nc,nd,ne,nf,ng,nh,9 3,na, 8, 8,nd,ne,nf,ng,nh,9

3, 1, 7,nc,nd,ne,nf,ng,nh,8 3, 7, 1,nc,nd,ne,nf,ng,nh,8 3,na, 1, 7,nd,ne,nf,ng,nh,8 3,na, 7, 1,nd,ne,nf,ng,nh,8

3, 6, 6,nc,nd,ne,nf,ng,nh,7 3,na, 6, 6,nd,ne,nf,ng,nh,7

3, 1, 8,nc,nd,ne,nf,ng,nh,9 3, 8, 1,nc,nd,ne,nf,ng,nh,9 3,na, 1, 8,nd,ne,nf,ng,nh,9 3,na, 8, 1,nd,ne,nf,ng,nh,9

3, 1, 9,nc,nd,ne,nf,ng,nh,1 3, 9, 1,nc,nd,ne,nf,ng,nh,1 3,na, 1, 9,nd,ne,nf,ng,nh,1 3,na, 9, 1,nd,ne,nf,ng,nh,1

3, 4, 9,nc,nd,ne,nf,ng,nh,4 3, 9, 4,nc,nd,ne,nf,ng,nh,4 3,na, 4, 9,nd,ne,nf,ng,nh,4 3,na, 9, 4,nd,ne,nf,ng,nh,4

3, 5, 9,nc,nd,ne,nf,ng,nh,5 3, 9, 5,nc,nd,ne,nf,ng,nh,5 3,na, 5, 9,nd,ne,nf,ng,nh,5 3,na, 9, 5,nd,ne,nf,ng,nh,5

3, 6, 9,nc,nd,ne,nf,ng,nh,7 3, 9, 6,nc,nd,ne,nf,ng,nh,7 3,na, 6, 9,nd,ne,nf,ng,nh,7 3,na, 9, 6,nd,ne,nf,ng,nh,7

3, 7, 9,nc,nd,ne,nf,ng,nh,6 3, 9, 7,nc,nd,ne,nf,ng,nh,6 3,na, 7, 9,nd,ne,nf,ng,nh,6 3,na, 9, 7,nd,ne,nf,ng,nh,6

3, 8, 9,nc,nd,ne,nf,ng,nh,8 3, 9, 8,nc,nd,ne,nf,ng,nh,8 3,na, 8, 9,nd,ne,nf,ng,nh,8 3,na, 9, 8,nd,ne,nf,ng,nh,8

3, 9, 9,nc,nd,ne,nf,ng,nh,1 3,na, 9, 9,nd,ne,nf,ng,nh,1

  1. Normal propagation of HEAD (two special heads reset to HEAD)

3,ha,hb,nc,nd,ne,nf,ng,nh,1 3,na,hb,hc,nd,ne,nf,ng,nh,1 3,ha,nb,hc,nd,ne,nf,ng,nh,1 3,na,hb,nc,hd,ne,nf,ng,nh,1 3,ha,nb,nc,hd,ne,nf,ng,nh,1 3,na,hb,nc,nd,he,nf,ng,nh,1 3,ha,nb,nc,nd,he,nf,ng,nh,1 3,na,hb,nc,nd,ne,hf,ng,nh,1

                                1. CONSTRUCTION interactions ################
  1. Certain WIRE becomes special heads when going around a corner

3,aa,ab,ac,ad,nw,nl,6,ah,6 3,nw,ab,ac,ad,ae,af,7,nr,7

3,3,ab,ac,ad,ae,af,ag,6,6 3,aa,ab,ac,ad,3,7,ag,ah,7

  1. Certian WIRE becomes TAIL when going around a corner

3,0,0,0,0,3,0,6,0,2 3,3,0,0,0,0,0,7,0,2

  1. BACKGROUND becomes WIRE when FORWARD finds a dead end and opposite is not WIRE

0,0,ab,0,ad,0,0,4,0,3

  1. BACKGROUND becomes TEMPORARY when RIGHT/LEFT finds a dead end

0,0,0,0,0,6,2,0,0,10 0,7,0,0,0,0,0,0,2,10

  1. TEMPORARY becomes WIRE when left or right besides a dead end

10,0,0,0,0,2,3,0,0,3 10,2,0,0,0,0,0,0,3,3

  1. BACKWARD becomes BACKGROUND when it finds a dead end

5,0,0,0,0,0,af,bg,ah,0

  1. BACKWARD becomes BACKGROUND when it erases wire

5,3,ab,0,0,5,0,0,ah,0

  1. TAIL stays TAIL at T-sections

2,0,0,3,0,6,0,2,0,2 2,7,0,3,0,0,0,2,0,2

                                1. WRITE interactions ################
  1. WRITE becomes WIRE when WRITE finds a dead end

8,0,0,0,0,0,0,2,0,3 8,0,0,0,0,0,af,ag,2,3 8,0,0,0,0,0,2,ag,ah,3

  1. BACKGROUND becomes TEMPORARY when WRITE finds a dead end (when WRITE head should write)

0,0,ab,0,ad,0,0,8,0,10

  1. BACKGROUND becomes TEMPORARY when WRITE finds a dead end (when WRITE head should toggle)
  2. 0,0,ab,wc,ad,0,0,8,0,10
                                1. READ interactions ################
  1. BACKGROUND becomes TEMPORARY when in between READ and WIRE

0,0,ab,3,ad,0,0,9,0,10

  1. TAIL becomes HEAD when the neighbor opposite to WIRE is TEMPORARY

2,10,ab,ac,ad,3,af,ag,ah,1

                                1. Overlapping READ/WRITE/LEFT/RIGHT interactions ################
  1. WIRE becomes BACKGROUND when in between WIRE and TEMPORARY (erase / retract one)

3,wa,0,10,0,we,af,wg,ah,0

  1. BACKGROUND becomes WIRE when one neighbor is TEMPORARY and neighbors of that are BACKGROUND

0,aa,ab,ac,ad,ae,0,10,0,3

                                1. NORMAL interactions (fallback behavior) ################
  1. WIRE becomes HEAD when one neighbor is HEAD

3,ha,nb,nc,nd,ne,nf,ng,nh,ha 3,na,hb,nc,nd,ne,nf,ng,nh,hb

  1. Heads (except READ) always becomes TAIL

ha,aa,ab,ac,ad,ae,af,ag,ah,2

  1. TAIL always becomes WIRE

2,aa,ab,ac,ad,ae,af,ag,ah,3

  1. TEMPORARY always becomes BACKGROUND

10,aa,ab,ac,ad,ae,af,ag,ah,0