Page 1 of 1

Overwrite a Block

Posted: September 30th, 2009, 8:25 am
by knightlife
This unusual reaction will delete a block and then recreate it in one continuous action. It is easy to delete a block with a vanish reaction so that it does not matter whether the block is there or not (or fire a glider at the block with an eater on the other side), but not so easy to create it whether or not it is already there. This reaction has a bonus feature that the block overwrite is at the very edge of the envelope of changing cells. The final result of the reaction is clean with two forward gliders in tandem.

Overwrite a block or create it if not there initially:

Code: Select all

x = 15, y = 11, rule = B3/S23
13b2o$13b2o$bo$2bo$3o3$4b2o4b2o$3bo2bo3b2o$3bo2bo$4b2o!
It is so cool how a single cell is created by induction that cleanly deletes the block, then the reaction comes back to replace the block from a distance.

I discovered this when trying to clean up the left-over block from the basic glider duplicator. I found that the unwanted block itself can be a catalyst for the reaction! Notice that the pond/block combo that the glider is initially colliding with is very close to being a HWSS eater mentioned elsewhere in this forum.

The brute force synthesis for this reaction requires 5 gliders which is fairly expensive. Is there a better synthesis that can produce one of the patterns up to generation 34? Too bad the pond/block is not a HWSS eater that requires only 3 gliders to synthesize (although it takes too much space).

Deleting and replacing a block can be done with 4 gliders in a two-stage reaction, for example:

Code: Select all

x = 25, y = 32, rule = B3/S23
8$6bobo$7b2o$7bo2$9bo$10b2o$9b2o3$12b3o2b2o$14bo2b2o$13bo4$10bo$10b2o$
9bobo!
The gliders are very close together but can be separated more if necessary since it is two-stage. This method is not as nice as the previous method because the block is created too close to the collisions. So I wonder if a better synthesis can be found for the single-stage reaction, one that uses less than 5 gliders.

This reaction is useful for periodically refreshing a block that may or may not be consumed by another reaction, such as in glider circuits or a small reflector that consumes a block. The block could also be a memory bit that you want to initialize in an algorithm or just simply copy (overwrite) a bit.

Re: Overwrite a Block

Posted: October 5th, 2009, 7:28 am
by PM 2Ring
The block could also be a memory bit that you want to initialize in an algorithm or just simply copy (overwrite) a bit.
Nice, knightlife.

Re: Overwrite a Block

Posted: October 10th, 2009, 2:48 am
by Eylrid
I strung together a chain of overwriters to create a repairable line of blocks. One of the gliders from each reaction triggers the next, with an extra block added to eat the other glider:

Code: Select all

x = 134, y = 95, rule = B3/S23
13b2o$13b2o$bo$2bo$3o3$4b2o4b2o$3bo2bo3b2o$3bo2bo$4b2o$20b2o$20b2o8b2o
$30b2o6$21b2o4b2o$20bo2bo3b2o$20bo2bo$21b2o$37b2o$37b2o8b2o$47b2o6$38b
2o4b2o$37bo2bo3b2o$37bo2bo$38b2o$54b2o$54b2o8b2o$64b2o6$55b2o4b2o$54bo
2bo3b2o$54bo2bo$55b2o$71b2o$71b2o8b2o$81b2o6$72b2o4b2o$71bo2bo3b2o$71b
o2bo$72b2o$88b2o$88b2o8b2o$98b2o6$89b2o4b2o$88bo2bo3b2o$88bo2bo$89b2o$
105b2o$105b2o8b2o$115b2o6$106b2o4b2o$105bo2bo3b2o$105bo2bo$106b2o$122b
2o$122b2o8b2o$132b2o6$123b2o4b2o$122bo2bo3b2o$122bo2bo$123b2o!

Re: Overwrite a Block

Posted: October 10th, 2009, 11:37 pm
by Extrementhusiast
I found a new (?) synthesis without the block:

Code: Select all

x = 47, y = 39, rule = B3/S23
2bo$obo$b2o$10bo$8bobo$9b2o17$27bobo$28b2o$28bo7$26b3o$28bo$27bo3$45bo
$44b2o$44bobo!

Re: Overwrite a Block

Posted: October 13th, 2009, 12:01 am
by knightlife
Extrementhusiast wrote:I found a new (?) synthesis without the block
I noticed your 2-glider salvo bringing up the rear is almost identical to the 2-glider salvo emitted at the end (but glide reflected). I couldn't make it work but discovered this edge-shooting reaction that bumps a glider by one diagonal track:

Code: Select all

x = 16, y = 14, rule = B3/S23
bo$2bo$3o5bo$9bo$7b3o2$14bo$13bobo$13bobo$14bo2$9b2o$8bo2bo$9b2o!


The 2-glider salvo is the same one as from the "block overwrite" output and the beehives are the same (1/2 of a honeyfarm). The first glider is re-formed one track over and 13 tics delayed. The "edge-shooting" is as perfect as it can get. The reaction does not cross over the diagonal lines occupied by the final glider. This reaction requires access along the diagonal paths but very little width.

Re: Overwrite a Block

Posted: March 23rd, 2010, 6:44 pm
by Extrementhusiast
Totally unrelated one caused by glider and LWSS and block:

Code: Select all

x = 12, y = 20, rule = B3/S23
7bobo$10bo$10bo$7bo2bo$8b3o3$bo$2bo$3o9$10b2o$10b2o!

Re: Overwrite a Block

Posted: March 24th, 2010, 12:45 am
by knightlife
Extrementhusiast wrote:Totally unrelated one caused by glider and LWSS and block:

Code: Select all

x = 12, y = 20, rule = B3/S23
7bobo$10bo$10bo$7bo2bo$8b3o3$bo$2bo$3o9$10b2o$10b2o!
Nice one! Direct access using spaceships makes it very convenient.

Re: Overwrite a Block

Posted: March 24th, 2010, 7:54 pm
by knightlife
If the glider is advanced by 10 tics the reaction will be a vanish reaction regardless of whether the block is there or not. That could be used as a "reset" to complement the overwrite which acts as a "set" reaction (using the block as a memory bit).

I thought that was great until I found out that a second glider trailing by 30 tics will also kill the reaction regardless of the block:

Code: Select all

x = 20, y = 20, rule = B3/S23
2bo12bobo$obo15bo$b2o15bo$15bo2bo$16b3o3$9bo$10bo$8b3o9$18b2o$18b2o!
So you get a programmable set or reset by using one or two gliders of a p30 stream, rather than advancing or interleaving a glider with different timing. Since the overwrite reaction deletes the block first anyway there is less serendipity involved here than one might think at first.