BlinkerSpawn wrote:muzik wrote:I'm pretty sure that the block is the only finite pattern at all with very cell having exactly 3 neighbours.
I also believe that the only stable patterns with every cell having 3 neighbors consist exclusively of blocks.
Here I will attempt to construct a pattern with every cell having 3 neighbors and containing no blocks.
Set your coordinate system so that the lower left corner of the pattern's bounding box is at (0,0), with coordinates increasing going up and to the right:
Code: Select all
x = 10, y = 10, rule = LifeHistory
D$D$D$D$D$D$D$D$D$10D!
Assume (0,0) is ON.
For the cell to have 3 live neighbors, (1,0), (0,1), and (1,0) must be ON, but then the pattern contains a block and is invalid, so (0,0) must be OFF:
Code: Select all
x = 10, y = 10, rule = LifeHistory
D$D$D$D$D$D$D$D$2A$CA8D!
Let's say (1,0) is ON instead.
There are four possible neighbors for (1,0): (0,1), (1,1), (2,1), and (2,0), but one of these must be (0,1) because the other three neighbors constitute a block. In addition, allowing (1,1) to be ON creates B3a at (0,0) so it is OFF and the other two neighbors must therefore be ON. Similar logic applies to (0,1), resulting in a ship:
Code: Select all
x = 10, y = 10, rule = LifeHistory
D$D$D$D$D$D$D$2C$C.C$B2C7D!
But (2,0) has two neighbors, and giving it a third causes (2,1) to have four neighbors and die, so this solution is also unworkable, and neither (1,0) nor (0,1) can be on in any solution. (This logic is reflection-invariant and so applies to both cases)
Let's force (2,0) to be ON, then.
By identical logic to the above we can immediately force these cells ON:
Code: Select all
x = 10, y = 10, rule = LifeHistory
D$D$D$D$D$D$D$D$BC.C$2B2C6D!
To prevent the contradiction in the previous case, though, (2,2) must stay OFF, forcing (1,1)'s two neighbors to be (2,1) and (2,0), creating B3a on (0,1). Therefore, (2,0) and (0,2) don't work either:
Code: Select all
x = 10, y = 10, rule = LifeHistory
D$D$D$D$D$D$D$2C$BC.C$2B2C6D!
Similarly, (3,0) creates this:
Code: Select all
x = 10, y = 10, rule = LifeHistory
D$D$D$D$D$D$D$B2C$B.C.C$3B2C5D!
(4,0) doesn't work:
Code: Select all
x = 10, y = 10, rule = LifeHistory
D$D$D$D$D$D$B$B3C$B2.C.C$4B2C4D!
This is the only way (5,0) can be done without creating birth at (2,1) or death at (3,2), but (1,1) and (1,2) are still unrescuable:
Code: Select all
x = 10, y = 10, rule = LifeHistory
D$D$D$D$D$B$B$B4C$BC2.C.C$5B2C3D!
And (6,0) has to be one of these but I don't know how to carry the logic past that:
Code: Select all
x = 30, y = 10, rule = LifeHistory
D19.D$D19.D$D19.D$D19.D$B19.B$B19.B$B19.B$B.4C14.B5C$B2C2.C.C12.B.C2.
C.C$6B2C2D10.6B2C2D!
I'm pretty sure some sort of proof-by-induction is possible along these lines.
If I could prove in each step that not just the end cells but each successive diagonal must be clear then the solution should just reduce to showing that each attempt to follow the instructions just creates the next level of ship and the proof would trivially follow from that and the logic used above.
Force (2,0) to be on:
Code: Select all
x = 10, y = 10, rule = LifeHistory
D$D$D$D$D$D$D$DB$D2B$10D!
4 possible arrangements:
Code: Select all
x = 70, y = 10, rule = LifeHistory
D19.D19.D19.D$D19.D19.D19.D$D19.D19.D19.D$D19.D19.D19.D$D19.D19.D19.D
$D19.D19.D19.D$D19.D19.D19.D$DB3A15.DB2A16.DBA.A15.DB.2A$D2BA16.D2B2A
15.D2B2A15.D2B2A$10D10.10D10.10D10.10D!
One on the right is a block so it doesn't count.
The others have a cell in common:
Code: Select all
x = 50, y = 10, rule = LifeHistory
D19.D19.D$D19.D19.D$D19.D19.D$D19.D19.D$D19.D19.D$D19.D19.D$D19.D19.D
$DB3A15.DB2A16.DBA.A$D2BA16.D2B2A15.D2B2A$10D10.10D10.10D!
Therefore:
Code: Select all
x = 10, y = 10, rule = LifeHistory
D$D$D$D$D$D$D$DBA$D2BA$10D!
Gray cannot be on because of B3a:
Code: Select all
x = 10, y = 10, rule = LifeHistory
D$D$D$D$D$D$D$DBAF$D2BA$10D!
Yellow has two other neighbors, they must both be on:
Code: Select all
x = 10, y = 10, rule = LifeHistory
D$D$D$D$D$D$D$DBAFA$D2BEA$10D!
3 arrangements:
Code: Select all
x = 50, y = 10, rule = LifeHistory
D19.D19.D$D19.D19.D$D19.D19.D$D19.D19.D$D19.D19.D$D19.D19.D$D2A17.DA.
A16.D.2A$DBAFA15.DBAFA15.DBAFA$D2B2A15.D2B2A15.D2B2A$10D10.10D10.10D!
First one causes B3a into blue, other two have cell in common:
Code: Select all
x = 30, y = 10, rule = LifeHistory
D19.D$D19.D$D19.D$D19.D$D19.D$D19.D$DA.A16.D.2A$DBAFA15.DBAFA$D2B2A
15.D2B2A$10D10.10D!
Code: Select all
x = 10, y = 10, rule = LifeHistory
D$D$D$D$D$D$D2.A$DBAFA$D2B2A$10D!
Yellow cannot have 3 on neighbors because both would kill the one above it:
Code: Select all
x = 10, y = 10, rule = LifeHistory
D$D$D$D$D$D$D2.A$DBAFA$D2BAE$10D!
Therefore (2,0) and (0,2) must be off:
Code: Select all
x = 10, y = 10, rule = LifeHistory
D$D$D$D$D$D$DB$DB$D3B$10D!
(1,1) must be off because it forces a block:
Code: Select all
x = 10, y = 10, rule = LifeHistory
D$D$D$D$D$D$DB2E$DBAE$D3B$10D!
Code: Select all
x = 10, y = 10, rule = LifeHistory
D$D$D$D$D$D$DB$D2B$D3B$10D!
(3,0):
Code: Select all
x = 10, y = 10, rule = LifeHistory
D$D$D$D$D$D$DB$D2B$D3BA$10D!
Code: Select all
x = 70, y = 10, rule = LifeHistory
D19.D19.D19.D$D19.D19.D19.D$D19.D19.D19.D$D19.D19.D19.D$D19.D19.D19.D
$D19.D19.D19.D$DB18.DB18.DB18.DB$D2B3A14.D2B2A15.D2BA.A14.D2B.2A$D3BA
15.D3B2A14.D3B2A14.D3B2A$10D10.10D10.10D10.10D!
Code: Select all
x = 50, y = 10, rule = LifeHistory
D19.D19.D$D19.D19.D$D19.D19.D$D19.D19.D$D19.D19.D$D19.D19.D$DB18.DB
18.DB$D2B3A14.D2B2A15.D2BA.A$D3BA15.D3B2A14.D3B2A$10D10.10D10.10D!
Code: Select all
x = 10, y = 10, rule = LifeHistory
D$D$D$D$D$D$DB$D2BA$D3BA$10D!
Code: Select all
x = 10, y = 10, rule = LifeHistory
D$D$D$D$D$D$DB$D2BAF$D3BA$10D!
Code: Select all
x = 10, y = 10, rule = LifeHistory
D$D$D$D$D$D$DB$D2BAFA$D3B2A$10D!
Code: Select all
x = 10, y = 10, rule = LifeHistory
D$D$D$D$D$D$DB2.A$D2BAFA$D3B2A$10D!
Code: Select all
x = 10, y = 10, rule = LifeHistory
D$D$D$D$D$D$DB2.A$D2BAFA$D3BAE$10D!
Code: Select all
x = 10, y = 10, rule = LifeHistory
D$D$D$D$D$DB$DB$D2B$D4B$10D!
(2,1):
Code: Select all
x = 10, y = 10, rule = LifeHistory
D$D$D$D$D$DB$DB$D2BA$D4B$10D!
Code: Select all
x = 10, y = 10, rule = LifeHistory
D$D$D$D$D$DB$DBA$D2BA$D4B$10D!
Code: Select all
x = 10, y = 10, rule = LifeHistory
D$D$D$D$D$DB$DBAF$D2BA$D4B$10D!
Code: Select all
x = 10, y = 10, rule = LifeHistory
D$D$D$D$D$DB2A$DBAFA$D2B2A$D4B$10D!
This is where it starts to deviate.
Gray would kill yellow:
Code: Select all
x = 10, y = 10, rule = LifeHistory
D$D$D$D$D.3F$DBAE2F$DBAFEF$D2B2AF$D4B$10D!
Yellow needs one more neighbor and one is available:
Code: Select all
x = 10, y = 10, rule = LifeHistory
D$D$D$D$D.3F$DBEA2F$DBAFAF$D2BAEF$D4B$10D!
Code: Select all
x = 10, y = 10, rule = LifeHistory
D$D$D$D$DA3F$DB2A2F$DBAFAF$D2B2AF$D4BA$10D!
But this causes B3j into blue:
Code: Select all
x = 10, y = 10, rule = LifeHistory
D$D$D$D$DE3F$DB2A2F$DBAFAF$D2B2AF$D4BE$10D!
Therefore (2,1) must be off.
Code: Select all
x = 10, y = 10, rule = LifeHistory
D$D$D$D$D$DB$D2B$D3B$D4B$10D!
Also, the block theorem:
Code: Select all
x = 15, y = 5, rule = LifeHistory
7.D$8.D$B4.5D2.B$B7.D3.2B$3B4.D4.3B!
(4,0):
Code: Select all
x = 130, y = 10, rule = LifeHistory
D19.D19.D19.D19.D19.D19.D$D19.D19.D19.D19.D19.D19.D$D19.D19.D19.D19.D
19.D19.D$D19.D19.D19.D19.D19.D19.D$D19.D19.D19.D19.D19.D19.DB$DB18.DB
18.DB18.DB18.DB18.DB18.DB$D2B17.D2B17.D2B17.D2B17.D2B2.A14.D2B2.A14.D
2B$D3B16.D3BA15.D3BAF14.D3BAFA13.D3BAFA13.D3BAFA13.D3B$D4BA14.D4BA14.
D4BA14.D4B2A13.D4B2A13.D4BAE13.D5B$10D10.10D10.10D10.10D10.10D10.10D
10.10D!
(2,2):
Code: Select all
x = 10, y = 10, rule = LifeHistory
D$D$D$D$DB$DB$D2BA$D3B$D5B$10D!
6 arrangements:
Code: Select all
x = 110, y = 10, rule = LifeHistory
D19.D19.D19.D19.D19.D$D19.D19.D19.D19.D19.D$D19.D19.D19.D19.D19.D$D
19.D19.D19.D19.D19.D$DB18.DB18.DB18.DB18.DB18.DB$DB3A15.DB2A16.DB2A
16.DBA.A15.DBA.A15.DB.2A$D2BA16.D2B2A15.D2BA16.D2B2A15.D2BA16.D2B2A$D
3B16.D3B16.D3BA15.D3B16.D3BA15.D3B$D5B14.D5B14.D5B14.D5B14.D5B14.D5B$
10D10.10D10.10D10.10D10.10D10.10D!
Also, the claw theorem:
Code: Select all
x = 15, y = 5, rule = LifeHistory
7.D$8.D$B4.5D.B$2B6.D2.2B$4B3.D3.4B!
Only 2 are valid:
Code: Select all
x = 30, y = 10, rule = LifeHistory
D19.D$D19.D$D19.D$D19.D$DB18.DB$DBA.A15.DBA.A$D2B2A15.D2BA$D3B16.D3BA
$D5B14.D5B$10D10.10D!
2 cells in common:
Code: Select all
x = 10, y = 10, rule = LifeHistory
D$D$D$D$DB$DBAFA$D2BA$D3B$D5B$10D!
2 arrangements, both equally valid for now:
Code: Select all
x = 30, y = 10, rule = LifeHistory
D19.D$D19.D$D19.D$D19.D$DB18.DB$DBAFA15.DBAFA$D2B2A15.D2BAF$D3BF15.D
3BA$D5B14.D5B$10D10.10D!
The first is object 3x2 43 and the second is object 3x3 337.
Object 3x2 43:
2 and 2 for yellow:
Code: Select all
x = 10, y = 10, rule = LifeHistory
D$D$D$D$DB2A$DBEFA$D2B2A$D3BF$D5B$10D!
Gray kills yellow:
Code: Select all
x = 10, y = 10, rule = LifeHistory
D$D$D$D.3F$DBAE2F$DBAFEF$D2B2AF$D3BF$D5B$10D!
1 and 1 for yellow:
Code: Select all
x = 10, y = 10, rule = LifeHistory
D$D$D$DA3F$DBEA2F$DBAFAF$D2BAEF$D3BFA$D5B$10D!
B3j error:
Code: Select all
x = 10, y = 10, rule = LifeHistory
D$D$D$DA3F$DB2A2F$DBAFAF$D2B2AF$D3BFA$D5B$10D!
Object 3x2 43 invalidated.
Object 3x3 337:
2 and 2 for yellow:
Code: Select all
x = 10, y = 10, rule = LifeHistory
D$D$D$D$DB$DBEFA$D2BAF$D3BE$D5B$10D!
Code: Select all
x = 10, y = 10, rule = LifeHistory
D$D$D$D$DB2A$DBAFA$D2BAFA$D3B2A$D5B$10D!
Applied gray:
Code: Select all
x = 10, y = 10, rule = LifeHistory
D$D$D$D.3F$DB2A2F$DBAFA2F$D2BAFAF$D3B2AF$D5B$10D!
1 and 1 for yellow:
Code: Select all
x = 10, y = 10, rule = LifeHistory
D$D$D$DA3F$DB2A2F$DBAFA2F$D2BAFAF$D3B2AF$D5BA$10D!
B3j error:
Code: Select all
x = 10, y = 10, rule = LifeHistory
D$D$D$DA3F$DB2A2F$DBAFA2F$D2BAFAF$D3B2AF$D5BA$10D!
Object 3x3 337 invalidated.
(2,2) must be off:
Code: Select all
x = 10, y = 10, rule = LifeHistory
D$D$D$D$DB$DB$D3B$D3B$D5B$10D!
Block theorem:
Code: Select all
x = 10, y = 10, rule = LifeHistory
D$D$D$D$DB$D2B$D3B$D4B$D5B$10D!
Claw theorem:
Code: Select all
x = 10, y = 10, rule = LifeHistory
D$D$D$DB$DB$D2B$D3B$D4B$D6B$10D!
Code: Select all
x = 10, y = 10, rule = LifeHistory
D$D$D$DB$D2B$D2B$D3B$D5B$D6B$10D!
Code: Select all
x = 10, y = 10, rule = LifeHistory
D$D$D$DB$D2B$D3B$D4B$D5B$D6B$10D!
Ad infinitum. Proved.