"Fast Salvos"

For discussion of specific patterns or specific families of patterns, both newly-discovered and well-known.
User avatar
dvgrn
Moderator
Posts: 10669
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: "Fast Salvos"

Post by dvgrn » August 14th, 2015, 3:39 pm

M. I. Wright wrote:How would I go about checking the output with Python?
I borrowed fifteen minutes from my lunch hour to write a very minimal sample script today, and came up with the following. It appears that yesterday's quick manual scan missed perfectly good +1, +3, +5, and +7 PUSH operations:

Code: Select all

x = 9164, y = 30, rule = LifeHistory
2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C
48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.
2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C
48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.
2C48.2C48.2C48.3C47.3C47.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C
48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.
2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C
48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.
2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C
48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.
2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C49.2C47.2C48.2C48.2C48.2C48.2C
48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C49.2C47.2C48.2C48.2C48.2C49.
2C47.2C48.2C48.2C48.2C48.2C49.2C47.2C48.2C48.2C48.2C48.2C48.2C48.2C
48.2C49.2C47.2C48.2C50.2C48.2C46.2C48.2C$2C48.2C48.2C48.2C48.2C48.2C
48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.
2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C
48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.
2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C148.2C48.2C48.2C
48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.
2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C
48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.
2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C
48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.
2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C
49.2C47.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.
2C49.2C47.2C48.2C48.2C48.2C49.2C47.2C48.2C48.2C48.2C48.2C49.2C47.2C
48.2C48.2C48.2C48.2C48.2C48.2C48.2C49.2C47.2C48.2C$2560.C99.C99.C449.
C198.2C4297.3C47.3C1239.3C47.3C47.3C47.3C$110.C848.2C199.C49.C199.C
997.3C99.2C47.2C98.2C98.2C199.2C47.2C48.3C147.2C48.2C98.2C48.C.C4296.
C49.C700.2C448.2C$109.2C498.2C98.2C199.2C46.2C149.2C48.2C48.2C48.2C
148.2C299.2C696.C51.2C48.C.C46.C.C48.2C47.C.C48.2C47.C.C48.2C148.C.C
45.2C49.C50.2C48.2C47.C.C46.2C50.2C46.2C49.C1349.3C97.2C1348.2C100.C
98.3C97.3C195.3C147.3C700.C147.C49.C450.3C47.3C99.C95.2C150.2C297.C.C
92.C49.C49.C49.C$109.C.C98.C199.C99.C98.C.C97.C.C198.C.C47.C148.C.C
47.C.C47.C.C47.C.C147.C.C96.3C98.3C46.3C48.2C48.3C298.C49.C298.C49.2C
49.C98.2C99.C.C97.C.C147.C49.C49.C48.2C48.2C99.C48.2C49.C349.C149.C
149.C248.2C199.C149.C148.C50.C47.2C300.C149.C149.C349.C149.C149.C97.
2C100.2C98.C50.C48.C197.C149.C202.2C48.2C248.2C197.2C99.C299.2C247.C
49.C100.2C97.C149.C.C296.C51.C42.C49.C49.C49.C$59.3C147.2C198.2C98.2C
98.C99.C200.C198.C149.C248.C100.C48.C52.C47.C299.2C48.2C350.C149.C98.
C99.C99.C200.C49.C149.C397.2C148.2C148.2C248.C.C197.2C148.2C149.C48.
2C49.C47.3C248.2C148.2C148.2C99.C248.2C148.2C148.2C99.C50.2C47.C.C98.
C48.2C49.C197.C149.C200.2C48.2C148.2C98.2C198.C.C97.2C248.3C47.2C198.
3C48.C49.C48.3C48.C.C246.C349.2C42.C49.C49.C49.C$59.C149.C.C197.C.C
97.C.C752.3C242.C100.C48.C100.C248.3C47.C.C47.C.C748.2C47.2C648.2C
148.C.C147.C.C147.C.C247.C199.C.C147.C.C197.C.C96.C201.C48.C.C147.C.C
147.C.C97.2C248.C.C147.C.C147.C.C148.2C198.C.C599.C49.C147.C.C99.C48.
C248.C.C47.3C47.3C48.2C97.C51.C98.2C97.C149.C90.2C258.C189.2C107.C.C$
4.2C3.2C43.2C4.C43.2C48.2C4.C43.2C48.2C4.C43.2C4.C43.2C4.C43.2C48.2C
4.C43.2C48.2C4.C43.2C48.2C4.C43.2C48.2C4.C43.2C4.C43.2C4.C43.2C48.2C
48.2C4.C43.2C4.C43.2C48.2C48.2C48.2C8.C39.2C4.C43.2C4.C43.2C48.2C4.C
43.2C48.2C4.C43.2C48.2C48.2C48.2C48.2C3.2C43.2C3.2C43.2C3.2C43.2C3.2C
43.2C3.C44.2C48.2C48.2C4.C43.2C3.3C42.2C4.C43.2C4.C43.2C4.C45.2C4.2C
42.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C8.2C41.2C48.C.C44.2C48.2C48.
2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C45.2C5.C42.2C3.2C43.2C4.C.C41.2C
8.2C38.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C5.C42.2C3.
2C4.2C37.2C9.2C37.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C48.
2C48.2C48.2C4.C43.2C48.2C48.2C48.2C4.2C42.2C48.2C48.2C48.2C48.2C48.2C
48.2C48.2C48.2C4.C.C41.2C9.C38.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C
48.2C48.2C48.2C50.2C48.2C5.C42.2C48.2C48.2C48.2C48.2C48.2C48.2C48.2C
48.2C48.2C48.2C48.2C48.2C48.2C3.3C42.2C48.2C48.2C49.2C47.2C48.2C3.C
44.2C48.2C48.2C3.2C43.2C4.2C42.2C4.2C42.2C48.2C4.2C42.2C48.2C3.C44.2C
3.C44.2C4.C.C37.2C3.2C47.2C4.C43.2C48.2C4.2C42.2C3.2C44.2C47.2C4.C43.
2C48.2C48.2C4.C43.2C43.2C4.2C47.2C48.2C48.2C48.2C48.2C3.2C43.2C5.C42.
2C48.2C43.2C4.2C47.2C48.2C$4.C.C2.C.C42.C.C47.C.C47.C.C2.2C43.C.C47.C
.C2.2C43.C.C2.2C43.C.C2.2C43.C.C47.C.C2.2C43.C.C47.C.C2.2C43.C.C47.C.
C2.2C43.C.C47.C.C2.2C43.C.C2.2C43.C.C2.2C43.C.C47.C.C47.C.C2.2C43.C.C
2.2C43.C.C47.C.C47.C.C47.C.C8.C38.C.C2.2C43.C.C2.2C43.C.C47.C.C2.2C
43.C.C47.C.C2.2C43.C.C47.C.C47.C.C5.C41.C.C47.C.C2.C.C42.C.C2.C.C42.C
.C2.C.C42.C.C2.C.C42.C.C3.C43.C.C47.C.C47.C.C2.2C43.C.C2.C44.C.C2.2C
43.C.C2.2C43.C.C2.2C45.C.C3.C.C41.C.C47.C.C47.C.C47.C.C47.C.C47.C.C
47.C.C47.C.C6.2C44.C94.C.C47.C.C47.C.C47.C.C47.C.C47.C.C47.C.C47.C.C
47.C.C47.C.C44.C.C3.2C42.C.C2.C.C42.C.C3.C43.C.C7.C.C37.C.C8.2C37.C.C
47.C.C4.C42.C.C47.C.C47.C.C4.C42.C.C47.C.C47.C.C4.C42.C.C47.C.C3.2C
42.C.C2.C.C2.2C38.C.C7.2C38.C.C8.2C37.C.C4.C42.C.C47.C.C47.C.C4.C42.C
.C47.C.C47.C.C4.C42.C.C47.C.C4.C42.C.C47.C.C47.C.C47.C.C7.3C37.C.C4.C
42.C.C47.C.C3.C.C41.C.C47.C.C4.C42.C.C47.C.C47.C.C4.C42.C.C47.C.C47.C
.C4.C42.C.C47.C.C7.2C38.C.C4.C42.C.C9.C37.C.C2.3C42.C.C47.C.C4.C42.C.
C47.C.C47.C.C4.C42.C.C47.C.C47.C.C4.C44.C.C47.C.C47.C.C47.C.C3.2C42.C
.C47.C.C47.C.C47.C.C3.C43.C.C2.3C42.C.C3.2C42.C.C47.C.C3.2C42.C.C3.2C
42.C.C47.C.C3.2C42.C.C2.C44.C.C2.3C42.C.C47.C.C42.3C3.C.C46.C.C3.C43.
C.C47.C.C3.2C42.C.C47.C.C2.C.C42.C.C3.C.C41.C.C3.C.C41.C.C47.C.C3.C.C
41.C.C47.C.C3.C43.C.C3.C43.C.C3.C38.2C4.C.C46.C.C47.C.C47.C.C3.C.C41.
C.C4.C37.3C3.C.C46.C.C47.C.C47.C.C47.C.C47.C.C44.C3.C.C46.C.C47.C.C3.
2C42.C.C3.2C42.C.C4.C42.C.C2.C.C42.C.C3.2C42.C.C3.2C42.C.C3.C40.C3.C.
C46.C.C47.C.C$4.C4.C44.C49.C49.C4.C.C42.C49.C4.C.C42.C4.C.C42.C4.C.C
42.C49.C4.C.C42.C49.C4.C.C42.C49.C4.C.C42.C9.2C38.C4.C.C42.C4.C.C42.C
4.C.C42.C49.C49.C4.C.C42.C4.C.C42.C49.C49.C49.C49.C4.C.C42.C4.C.C42.C
49.C4.C.C42.C49.C4.C.C42.C49.C49.C6.2C41.C8.C40.C4.C44.C4.C44.C4.C44.
C4.C44.C49.C49.C49.C4.C.C42.C5.C43.C4.C.C42.C4.C.C42.C4.C.C44.C5.C43.
C49.C49.C49.C49.C49.C49.C49.C10.C138.C49.C49.C49.C49.C49.C49.C49.C49.
C49.C46.C5.C.C41.C4.C44.C49.C4.2C3.C39.C4.2C4.C.C36.C49.C5.2C42.C4.2C
5.2C36.C49.C5.2C42.C4.2C43.C49.C5.2C42.C4.2C43.C5.C.C41.C4.C6.C37.C
11.C37.C4.2C3.2C38.C5.2C42.C4.2C5.2C36.C49.C5.2C42.C4.2C43.C49.C5.2C
42.C4.2C43.C5.2C42.C49.C49.C49.C4.2C3.C39.C5.2C42.C4.2C4.3C36.C10.3C
36.C49.C5.2C42.C4.2C43.C49.C5.2C42.C4.2C43.C49.C5.2C42.C49.C4.2C3.C.C
37.C5.2C42.C4.2C4.2C37.C4.C44.C49.C5.2C42.C4.2C6.C36.C49.C5.2C42.C4.
2C43.C49.C5.2C44.C49.C49.C49.C5.C.C41.C49.C49.C49.C4.2C43.C4.C44.C4.
2C43.C49.C4.2C43.C4.2C43.C49.C4.2C43.C5.C43.C4.C44.C49.C44.C5.C48.C4.
2C43.C49.C4.2C43.C49.C49.C5.C43.C5.C43.C49.C5.C43.C49.C49.C49.C46.C3.
C48.C49.C49.C5.C43.C44.C5.C48.C49.C49.C49.C49.C50.C48.C49.C4.2C43.C4.
2C43.C5.2C42.C49.C5.C.C41.C5.C.C41.C4.2C44.C48.C49.C$713.2C397.3C596.
C.C48.2C1844.C.C47.C.C3.C94.C.C46.C.C4.C.C91.C.C46.C.C5.2C91.C.C46.C.
C197.C.C4.C43.C.C46.C.C3.2C93.C.C46.C.C5.2C91.C.C46.C.C48.C.C196.C.C
3.C44.C.C46.C.C3.C49.C94.C.C46.C.C4.3C91.C.C46.C.C98.C.C96.C.C48.C.C
46.C.C3.C.C42.C5.C93.C.C46.C.C4.2C92.C.C46.C.C6.C91.C.C199.C198.C.C
48.C50.C99.C49.C99.C98.C139.C58.C.C99.C788.C410.C49.C48.C.C147.C48.C.
C$367.2C346.C203.2C191.C649.C.C250.C152.C945.3C491.C49.C149.C6.C142.C
7.C.C139.C8.2C189.C99.C7.C141.C6.2C141.C8.2C139.3C47.3C47.C99.C6.C49.
C142.C6.C142.C7.3C142.C46.C99.C55.2C142.C6.C.C140.C7.2C$318.2C47.C.C
448.2C98.2C193.C203.3C694.2C151.2C100.C844.C339.2C46.2C48.2C412.C150.
C.C447.C148.2C88.3C49.C49.C357.C149.C143.2C202.C.C299.C.C135.2C48.2C
359.2C1294.3C1097.2C49.C48.2C49.C$318.C.C46.C101.2C150.2C194.2C50.2C
49.C396.C50.3C643.C.C150.C.C98.2C50.C136.2C300.2C243.3C54.3C51.C192.C
46.C98.C.C45.C.C47.C.C562.C42.2C556.C87.C52.C49.C507.C142.C.C98.C542.
C.C47.C.C358.C.C254.2C133.2C47.2C52.2C48.2C645.3C101.C453.3C642.2C49.
2C47.2C49.2C$115.2C149.2C50.C150.C.C98.2C49.C.C140.2C53.C48.2C150.2C
142.3C48.3C100.C49.C100.3C746.C49.C.C48.2C50.C85.C.C57.2C239.2C207.2C
35.C56.C92.3C150.2C45.2C98.C47.C49.C158.2C48.2C396.2C200.2C444.C202.
3C647.2C150.C49.C341.C49.C50.2C308.C256.C.C131.2C47.2C52.2C48.2C646.C
49.3C52.C47.3C402.C288.C53.C154.C148.C48.C.C48.C48.C.C$10.2C103.C.C
148.C.C200.C100.C.C48.C49.2C90.2C105.C148.2C50.2C91.C50.C153.C48.3C
48.C100.3C238.C405.2C100.C.C48.2C85.C59.C.C240.C205.2C37.C56.C91.C52.
3C97.C.C44.C.C354.C.C47.C.C98.2C48.2C247.C198.2C100.2C48.2C496.C150.
3C47.3C446.C.C148.2C48.2C100.C49.C291.C.C154.2C202.2C52.2C150.C135.C
48.C53.C49.C48.2C596.C48.C102.C49.3C353.C286.2C52.2C51.C48.C52.2C$10.
C.C102.C150.C303.C100.C.C91.C255.C48.2C93.C50.C201.C51.C99.C239.2C46.
C50.C46.C260.C.C150.C.C144.C198.2C250.C186.C51.C503.C49.C100.C.C47.C.
C98.2C48.2C297.C98.2C48.2C100.2C48.2C346.C149.C49.C100.3C47.3C446.C.C
47.C.C98.2C48.2C100.C49.C140.C51.2C103.C.C47.2C48.2C102.C.C51.C.C486.
2C45.2C600.C102.C48.C48.3C591.C.C51.C.C49.2C47.2C52.C.C$10.C44.2C105.
2C507.C400.C346.C151.C238.C.C44.2C49.2C45.2C759.C.C489.C653.C49.C100.
C.C47.C.C397.C49.C98.2C48.2C498.C49.C99.C49.C100.3C47.3C446.C.C47.C.C
98.2C48.2C192.C.C45.2C55.C49.C.C47.C.C101.C53.C490.C43.2C54.2C49.2C
50.2C101.2C492.C47.C44.3C46.3C105.3C138.3C354.C.C46.C.C$55.C.C104.C.C
249.2C1441.C.C48.C.C44.C.C106.C550.2C48.2C49.C698.C597.C49.C550.C49.C
648.C49.C99.C49.C599.C.C47.C.C191.C47.C.C104.C49.C259.2C433.C52.2C49.
2C50.2C101.2C51.2C49.2C438.C43.C48.C55.3C49.C140.C118.3C395.C$55.C
106.C45.2C204.C.C548.2C699.3C394.2C499.2C49.C.C47.C.C594.3C149.2C
2048.C49.C890.C363.2C51.C.C98.2C387.C50.C51.C48.2C52.C49.2C49.2C484.C
48.C54.C52.C140.C117.C50.3C343.2C$208.C.C203.C549.2C700.C396.C.C42.C
455.C.C48.C49.C596.C151.C.C3352.C.C50.C100.C.C537.2C105.C50.C588.C95.
3C213.C49.C345.C.C$208.C298.2C457.C547.3C150.C439.2C455.C698.C3505.C
153.C541.C840.C266.C397.C$507.C.C1004.C592.C.C6197.C154.3C505.2C$507.
C1007.C98.3C6053.2C790.C507.C.C$1614.C6054.2C792.C$1615.C6055.C$6960.
2C$6960.C.C$6960.C!
Again, this is only for a very limited subset of 3-glider salvos: -tc 20 50 for the second glider and -tc 20 23 for the third. -tc 24 29 should run maybe two to four hours and produce a much larger set of candidates, and higher ranges would probably add a few more.

Here's the Python script that produced the above output from the last attachment. It should be easy to adjust the script to sort by the PUSH or PULL distance, or do whatever other kind of reporting you want:

Code: Select all

import golly as g

inputfname="C:/youshouldtype/yourpath/here/3glider-block-output.txt"

g.new("")

with open(inputfname) as f: data=f.readlines()

offset=0
for item in data:
  pat=item.split(" ")[0].replace(".","b").replace("*","o").replace("!","$")
  clist=g.parse(pat)
  newclist = g.evolve(clist,1024)
  minx=min(newclist[0::2])
  maxx=max(newclist[0::2])
  miny=min(newclist[1::2])
  maxy=max(newclist[1::2])
  if maxx==minx+1 and maxy==miny+1: # must have stabilized into a block, not a tub...
    if minx==miny:                  # and it's on the key diagonal
      g.putcells(clist,offset,0)
      offset+=50
There are obviously lots of things that need fixing. Apparently the original search should have been done with a little more clearance -- say -tc 40 40 -- to make sure that the gliders always end up below and to the right of the starting block. There are quite a few bad results in the above pattern, where the starting pattern is mysteriously something other than a block, no doubt caused by my not setting up the problem quite right.

The task of finding and fixing my various mistakes is left as an exercise for the reader...!

M. I. Wright
Posts: 372
Joined: June 13th, 2015, 12:04 pm

Re: "Fast Salvos"

Post by M. I. Wright » August 16th, 2015, 12:10 am

Again, thank you so much! I think I'll figure out Python later (I tried installing Python 2.7, then found out that I'd forgotten to uninstall Python 3 beforehand - which made Golly refuse to even find Python) but those RLEs will be (already have been, actually!) incredibly useful.

Code: Select all

x = 212, y = 232, rule = LifeHistory
40.2A$40.2A7$48.2A$48.2A6$31.2C$31.2C23.2D$56.2D17$15.2C$15.2C19$2C$
2C$6.2C$6.C.C$6.C6$15.2C$14.2C$16.C$100.C$99.2C$91.C7.C.C$58.C31.2C$
57.2C31.C.C$57.C.C4$107.2C$55.2C34.3C12.2C$54.2C35.C16.C$56.C35.C6$
70.3C$70.C$71.C9$65.2C$64.2C$66.C2$60.2C$60.C.C$60.C11$65.D$64.2D$64.
D.D6$72.2D69.2D$72.D.D68.D.D$72.D70.D4$71.2D$71.D.D$71.D2$143.2D$143.
D.D7.2D$143.D9.D.D$153.D5$86.2D67.D$86.D.D65.2D$86.D67.D.D17.D$173.2D
$165.D7.D.D$164.2D$86.3D75.D.D$86.D$87.D3$181.2D$165.3D12.2D$165.D16.
D$166.D69$208.2D$208.D.D$208.D5$210.D$209.2D$209.D.D!
On a different note - can anyone tidy up my mess here? It works as of now, but there isn't enough clearance for the red-marked block to escape unharmed, and it messes up the 180-degree reflection if it's present. The gliders also aren't on the most convenient paths...

The only 'necessary' fix here is finding a better three-glider salvo that reflects a glider 180 degrees off the block without affecting the one marked in red. Beyond that, though, there's more than one way that I can see to clean the whole thing up - finding a faster version of simsim's 2G+B->2G+2B on page 1 of this thread (one that left behind a one-time reflector instead of the second block would be even better!), using a better 180-degree reflector that leaves the block unaffected (instead of pulling it one unit) and/or doesn't leave a loaf behind.
No matter what, though, the two return gliders are crucial to the design.

The gliders in red are to be sent after the two return gliders are received by whatever device is controlling them; they're just there to fix up the scene (namely to delete the loaf and return the 'elbow' blocks to their original positions. The block in the top right also needs to be pushed forward one unit, but I decided to hold off on that until I manage to optimize the rest of the salvo). I'm working on it, but I wanted to get others' input as well.

(apologies if the wording here is confusing; even though it's only 9:00 where I am, I'm really tired. I was just heading to sleep - I'll fix it in the morning if necessary)

User avatar
dvgrn
Moderator
Posts: 10669
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: "Fast Salvos"

Post by dvgrn » August 17th, 2015, 1:21 pm

M. I. Wright wrote:On a different note - can anyone tidy up my mess here? It works as of now, but there isn't enough clearance for the red-marked block to escape unharmed, and it messes up the 180-degree reflection if it's present. The gliders also aren't on the most convenient paths...
Convenient for what, exactly? That is to say, this looks like an ambitious and interesting project, but I don't have a clear sense yet of what the final goal is. Sometimes the best optimization involves coming up with a completely new mechanism to accomplish the same task.

M. I. Wright
Posts: 372
Joined: June 13th, 2015, 12:04 pm

Re: "Fast Salvos"

Post by M. I. Wright » August 17th, 2015, 6:39 pm

dvgrn wrote:
M. I. Wright wrote:On a different note - can anyone tidy up my mess here? It works as of now, but there isn't enough clearance for the red-marked block to escape unharmed, and it messes up the 180-degree reflection if it's present. The gliders also aren't on the most convenient paths...
Convenient for what, exactly? That is to say, this looks like an ambitious and interesting project, but I don't have a clear sense yet of what the final goal is. Sometimes the best optimization involves coming up with a completely new mechanism to accomplish the same task.
Whoops, I completely forgot about fixing that post! You're correct, this is going to be part of a larger project - the idea is to build an infinite sliding-block memory tape (which will in turn be part of an even larger project). Here's a basic outline:

Code: Select all

#C [[ VIEWONLY ]]
x = 162, y = 152, rule = LifeHistory
32.3D.D3.D.3D3.2D.3D3.D2.2D2.3D2.D2.D.3D$31.D2.D.D3.D.D2.D.D.D.D2.D2.
D.D2.D.D2.D.D2.D2.D$32.3D.D3.D.D2.D.2D2.3D3.D.D2.D.3D2.D2.D2.D$34.D.
3D.D.3D3.2D.D2.D2.D.D2.D.D5.2D3.D$32.2D2$33.2F7.F5.F.3F.2F6.F2.2F.2F
4.2F2.2F.2F.3F$29.2F.F.F2.2F2.2F5.F.F.F.F6.2F.F.F.F6.F.F.F.F2.F.F$29.
F2.2F2.F.F.F.F5.F.F.F.F5.F.F.2F2.F5.F2.2F2.F2.F.F$29.F3.2F.3F.3F5.F.F
.F.2F4.3F2.2F.2F4.2F2.2F.F2.3F2$35.D14.D13.D14.D$34.D14.D13.D14.D$31.
D.D12.D.D11.D.D12.D.D$31.2D13.2D12.2D13.2D$20.F10.3D12.3D11.3D12.3D$F
3.F.3F.F.F2.2F3.2F$2F.2F.F.F.F.F.F.F.5F7.52D$F.F.F.F.F.F.F.2F4.2F2.D
5.D50.D$F3.F.3F2.F3.2F3.F4.D4.D.D3.D2.2D2.D2.2D3.D3.D2.2D.D3.D2.2D2.
3D2.D.D.D$26.D.D.D.2D.2D.D2.D.D.D2.D2.2D.2D.D3.2D.2D.D2.D.D2.D.D.D.D$
27.2D.D.D.D.D.4D.D.D2.D2.D.D.D.2D2.D.D.D.D2.D.D2.D2.D2.D22.D$26.3D.D.
D3.D.D2.D.D.D2.D2.D3.D.D3.D3.D.D2.D.3D3.D2.D22.2D$20.F9.D.D3.D.D2.D.D
.D2.D2.D3.D2.2D.D3.D2.2D2.D2.D2.D2.26D$F3.F.3F.F.F2.2F2.2F3.D5.D50.D
22.2D$2F.2F.F.F.F.F.F.F.5F2.D4.D14.D2.D2.2D2.D.3D21.D22.D$F.F.F.F.F.F
.F.2F3.2F5.D.D.D14.D2.D.D2.D.D2.D22.D$F3.F.3F2.F3.2F3.F6.2D.D14.D2.D.
D2.D.D2.D22.D.3D.D.D.3D.3D.D.D.3D$26.3D.D14.D2.D.D2.D.D2.D22.D.D.D.D.
D2.D2.D.D.D.D2.D$30.D15.2D2.D2.D.D2.D22.D.D.D.D.D2.D2.3D.D.D2.D$30.D
50.D.3D.3D2.D2.D3.3D2.D$30.52D$32.D11.D11.D$33.D11.D11.D$34.D11.D11.D
$35.D11.D11.D$36.D11.D11.D$37.D11.D11.D$38.D11.D11.D.D$39.D11.D11.2D$
40.D11.D9.3D$41.D11.D$42.D11.D11.2D$43.D11.D10.2D$44.D11.D.D$45.D11.
2D$46.D9.3D14.D25.D$47.D20.2D3.D2.2D.D3.3D3.2D2.D3.D.D4.3D2.D4.2D3.2D
2.D2.D2.3D$48.D11.2D5.D2.D4.D3.D3.D2.D.D2.D.D3.D6.D2.D.D3.D2.D.D2.D.D
.D2.D$29.2D18.D10.2D7.D5.2D2.D3.3D2.D2.D.D.D.D6.3D2.D3.D2.D.D4.2D4.2D
$27.2D21.D.D14.D2.D4.D3.D3.D2.D.D2.D.D.D.D6.D2.D.D3.D2.D.D2.D.D.D5.D$
26.D24.2D15.2D6.2D2.2D.3D3.2D3.D.D7.3D3.2D2.2D3.2D2.D2.D.3D$24.2D24.
3D$23.D6.2A$23.D6.2A22.2D17.D.D3.D2.2D.D3.D2.D2.2D2.D.D2.2D3.D2.D2.D
2.3D2.2D.2D4.D3.2D3.2D2.D2.2D2.3D2.2D.D$22.D31.2D16.D2.2D.2D.D3.2D.2D
.D.D.D.D.D.D2.D.D.D.D.D.D.D2.D2.D3.D.D2.D.D.D4.D3.D.D.D.D2.D2.D4.D$
22.D49.D2.D.D.D.2D2.D.D.D.D.D.D.D.D.D2.D.D.D.D.D.D.D2.D2.2D2.D.D2.D.D
.2D4.D2.D.D.D.D2.D3.D3.D$21.D50.D2.D3.D.D3.D3.D.D.D.2D3.D3.2D2.D.D.D.
D.D2.D2.D3.2D3.D.D.D6.D.D.D.2D3.D4.D2.D$21.D51.D.D3.D2.2D.D3.D2.D2.D.
D2.D3.D4.D2.D.D.D2.D3.2D.D.D3.D2.D4.2D3.D2.D.D2.D2.2D2.D$21.D$20.D$
20.D17.2A$21.D16.2A$21.D$22.D$23.D$24.2D$26.D$27.2D$29.D16.2A$30.2D
14.2A$32.D$33.2D$35.D$36.D$37.2D$39.D$40.D13.2A$41.2D11.2A$43.D$44.D$
45.2D66.2A$47.D65.2A$48.D$49.D$50.2D10.2A$27.3D2.2D2.3D3.2D8.D9.2A$
28.D2.D2.D.D2.D.D.D9.D$28.D2.4D.3D2.2D11.2D$28.D2.D2.D.D5.2D12.D64.2A
$56.2D63.2A$58.D$58.2D5.D$59.D5.D4.2A$60.D4.D4.2A$60.D4.D$61.D3.D$62.
D2.D$63.D.D30.A$64.2D30.A$57.9D30.A$101.2A$101.2A7.2A12.A$109.2A13.A$
109.3A11.A$117.A6.2A.A$111.A.2A.A.A5.2A.2A$111.A2.A2.A7.A.A$97.A13.A.
A$96.A.A$95.A$94.A2.A$87.5A2.A2.A$87.A6.A2.A.3A$88.4A3.2A8$110.D$104.
2D4.D.D.3D5.D$103.D2.D2.D2.D4.D2.3D$102.D6.D2.D2.2D2.D2.D$102.D2.D2.D
3.D.D4.D2.D$103.2D3.D3.D.4D2.3D5$103.D4.D12.D$103.3D2.D4.2D3.2D.D.D$
103.D2.D.D3.D2.D.D3.2D$103.D2.D.D3.D2.D.D3.D.D$103.3D3.2D2.2D3.2D.D.D
4$103.3D$103.D2.D.D2.D2.2D2.2D2.2D2.2D$103.D2.D.D2.D.D3.D3.D.D.D$103.
3D2.D2.D.2D2.2D2.2D2.D$103.D5.2D2.D3.D4.2D.D3$104.D.2D.D.3D.2D.D.3D.
2D.D.D.D.D$103.D2.D2.D.3D.D2.D.3D2.D.D.D.D2.D$103.D3.D.D.D.D2.D.D.D.D
.2D.D.3D2.D$104.D.2D.D.D.D.2D.D.D.D2.D.D3.D.D$124.2D.D3.D!
By "not convenient", I meant that the gliders' paths are really close to each other - which would probably require the contraption to have an unnecessarily complex system of GIGs, edgeshooters and highway robbers to send and receive signals.

The set of salvos in my previous post is what's supposed to be the READ instruction - the number in the memory cell should be equal to about half the distance between the two return gliders (well, not counting the constant delay between them; that would presumably be taken care of by the memory reader).
I'm planning to use something like knightlife's toggleable gun to turn that distance into a number (first glider turns the gun on, second turns it off. The resulting HWSS output is halved, then subtracted from or added to to get rid of the constant offset).

I'll also need to be able to increment and decrement a cell (obviously), which was why I was asking about the highest distance a block could be pushed/pulled with three gliders. For the 'even larger' project I mentioned, I'll also need some way to zero out a cell - here's something to start with, found by adding a fourth glider to one of the reactions you posted (interestingly enough, moving the fourth glider to a different location can sometimes result in stuff like an LWSS or an aircraft carrier):

Code: Select all

x = 49, y = 77, rule = Life
30b2o$30b2o7$38b2o$38b2o7$46b2o$46b2o7$2o$2o7$5b2o4b2o$5bobo3bobo$5bo
5bo8$17b2o$16b2o$18bo8$26b2o$25b2o$27bo10$46b2o$46bobo$46bo8$46b2o$46b
obo$46bo!
The extra block can then be pushed up to wherever the zero position is using the other two 'elbows'.

Last up are the 'move ->' and 'move <-' instructions on the right side of the diagram, which don't do anything to the tape; they just move the memory pointer back or forward.

M. I. Wright
Posts: 372
Joined: June 13th, 2015, 12:04 pm

Re: "Fast Salvos"

Post by M. I. Wright » March 8th, 2016, 11:49 pm

Are there seriously no 3G 'fire' salvos that leave the elbow object (preferably a block) in place??

User avatar
biggiemac
Posts: 515
Joined: September 17th, 2014, 12:21 am
Location: California, USA

Re: "Fast Salvos"

Post by biggiemac » March 9th, 2016, 12:39 am

M. I. Wright wrote:Are there seriously no 3G 'fire' salvos that leave the elbow object (preferably a block) in place??
There certainly are, here is one I have and I recall getting this from a post where there were a handful of other options. I couldn't seem to track the original post down.

Code: Select all

x = 26, y = 20, rule = B3/S23
24b2o$24b2o6$13b3o$15bo$14bo3$b2o$obo$2bo3$4bo$4b2o$3bobo!
Physics: sophistication from simplicity.

chris_c
Posts: 966
Joined: June 28th, 2014, 7:15 am

Re: "Fast Salvos"

Post by chris_c » March 9th, 2016, 6:24 am

biggiemac wrote:I recall getting this from a post where there were a handful of other options. I couldn't seem to track the original post down.
Probably from here here

Code: Select all

x = 380, y = 27, rule = B3/S23
264bo49bo49bo$263bobo47bobo47bobo$221b2o40bobo9b3o35bobo9b3o35bobo$2o
48b2o48b2o48b2o68bo2bo40bo10bo38bo10bo38bo$2o48b2o48b2o48b2o69b2o46b3o
4bo42b3o4bo41b3o$269bo49bo48bo$270bo49bo48bo$158b2o217b2o$158bobo216bo
bo$111b2o45bo71b3o43b2o51bo47bo$110b2o112b3o3bo44b2o51b2o$21b2o33bo55b
o111bo6bo45bo50bobo$20b2o33b2o63b2o103bo$15b2o5bo32bobo62bobo$14b2o
104bo255b2o$16bo359bobo$170b3o203bo$170bo$171bo$117b2o46b3o58b3o$116b
2o47bo60bo$22b3o41b2o50bo47bo60bo$22bo43bobo$23bo42bo$61b2o$60b2o$62bo
!

AlbertArmStain
Posts: 1253
Joined: January 28th, 2022, 7:18 pm
Location: Planet Z

Re: "Fast Salvos"

Post by AlbertArmStain » March 18th, 2022, 3:56 pm

M. I. Wright wrote:
August 17th, 2015, 6:39 pm
dvgrn wrote:
M. I. Wright wrote:On a different note - can anyone tidy up my mess here? It works as of now, but there isn't enough clearance for the red-marked block to escape unharmed, and it messes up the 180-degree reflection if it's present. The gliders also aren't on the most convenient paths...
Convenient for what, exactly? That is to say, this looks like an ambitious and interesting project, but I don't have a clear sense yet of what the final goal is. Sometimes the best optimization involves coming up with a completely new mechanism to accomplish the same task.
Whoops, I completely forgot about fixing that post! You're correct, this is going to be part of a larger project - the idea is to build an infinite sliding-block memory tape (which will in turn be part of an even larger project). Here's a basic outline:

Code: Select all

#C [[ VIEWONLY ]]
x = 162, y = 152, rule = LifeHistory
32.3D.D3.D.3D3.2D.3D3.D2.2D2.3D2.D2.D.3D$31.D2.D.D3.D.D2.D.D.D.D2.D2.
D.D2.D.D2.D.D2.D2.D$32.3D.D3.D.D2.D.2D2.3D3.D.D2.D.3D2.D2.D2.D$34.D.
3D.D.3D3.2D.D2.D2.D.D2.D.D5.2D3.D$32.2D2$33.2F7.F5.F.3F.2F6.F2.2F.2F
4.2F2.2F.2F.3F$29.2F.F.F2.2F2.2F5.F.F.F.F6.2F.F.F.F6.F.F.F.F2.F.F$29.
F2.2F2.F.F.F.F5.F.F.F.F5.F.F.2F2.F5.F2.2F2.F2.F.F$29.F3.2F.3F.3F5.F.F
.F.2F4.3F2.2F.2F4.2F2.2F.F2.3F2$35.D14.D13.D14.D$34.D14.D13.D14.D$31.
D.D12.D.D11.D.D12.D.D$31.2D13.2D12.2D13.2D$20.F10.3D12.3D11.3D12.3D$F
3.F.3F.F.F2.2F3.2F$2F.2F.F.F.F.F.F.F.5F7.52D$F.F.F.F.F.F.F.2F4.2F2.D
5.D50.D$F3.F.3F2.F3.2F3.F4.D4.D.D3.D2.2D2.D2.2D3.D3.D2.2D.D3.D2.2D2.
3D2.D.D.D$26.D.D.D.2D.2D.D2.D.D.D2.D2.2D.2D.D3.2D.2D.D2.D.D2.D.D.D.D$
27.2D.D.D.D.D.4D.D.D2.D2.D.D.D.2D2.D.D.D.D2.D.D2.D2.D2.D22.D$26.3D.D.
D3.D.D2.D.D.D2.D2.D3.D.D3.D3.D.D2.D.3D3.D2.D22.2D$20.F9.D.D3.D.D2.D.D
.D2.D2.D3.D2.2D.D3.D2.2D2.D2.D2.D2.26D$F3.F.3F.F.F2.2F2.2F3.D5.D50.D
22.2D$2F.2F.F.F.F.F.F.F.5F2.D4.D14.D2.D2.2D2.D.3D21.D22.D$F.F.F.F.F.F
.F.2F3.2F5.D.D.D14.D2.D.D2.D.D2.D22.D$F3.F.3F2.F3.2F3.F6.2D.D14.D2.D.
D2.D.D2.D22.D.3D.D.D.3D.3D.D.D.3D$26.3D.D14.D2.D.D2.D.D2.D22.D.D.D.D.
D2.D2.D.D.D.D2.D$30.D15.2D2.D2.D.D2.D22.D.D.D.D.D2.D2.3D.D.D2.D$30.D
50.D.3D.3D2.D2.D3.3D2.D$30.52D$32.D11.D11.D$33.D11.D11.D$34.D11.D11.D
$35.D11.D11.D$36.D11.D11.D$37.D11.D11.D$38.D11.D11.D.D$39.D11.D11.2D$
40.D11.D9.3D$41.D11.D$42.D11.D11.2D$43.D11.D10.2D$44.D11.D.D$45.D11.
2D$46.D9.3D14.D25.D$47.D20.2D3.D2.2D.D3.3D3.2D2.D3.D.D4.3D2.D4.2D3.2D
2.D2.D2.3D$48.D11.2D5.D2.D4.D3.D3.D2.D.D2.D.D3.D6.D2.D.D3.D2.D.D2.D.D
.D2.D$29.2D18.D10.2D7.D5.2D2.D3.3D2.D2.D.D.D.D6.3D2.D3.D2.D.D4.2D4.2D
$27.2D21.D.D14.D2.D4.D3.D3.D2.D.D2.D.D.D.D6.D2.D.D3.D2.D.D2.D.D.D5.D$
26.D24.2D15.2D6.2D2.2D.3D3.2D3.D.D7.3D3.2D2.2D3.2D2.D2.D.3D$24.2D24.
3D$23.D6.2A$23.D6.2A22.2D17.D.D3.D2.2D.D3.D2.D2.2D2.D.D2.2D3.D2.D2.D
2.3D2.2D.2D4.D3.2D3.2D2.D2.2D2.3D2.2D.D$22.D31.2D16.D2.2D.2D.D3.2D.2D
.D.D.D.D.D.D2.D.D.D.D.D.D.D2.D2.D3.D.D2.D.D.D4.D3.D.D.D.D2.D2.D4.D$
22.D49.D2.D.D.D.2D2.D.D.D.D.D.D.D.D.D2.D.D.D.D.D.D.D2.D2.2D2.D.D2.D.D
.2D4.D2.D.D.D.D2.D3.D3.D$21.D50.D2.D3.D.D3.D3.D.D.D.2D3.D3.2D2.D.D.D.
D.D2.D2.D3.2D3.D.D.D6.D.D.D.2D3.D4.D2.D$21.D51.D.D3.D2.2D.D3.D2.D2.D.
D2.D3.D4.D2.D.D.D2.D3.2D.D.D3.D2.D4.2D3.D2.D.D2.D2.2D2.D$21.D$20.D$
20.D17.2A$21.D16.2A$21.D$22.D$23.D$24.2D$26.D$27.2D$29.D16.2A$30.2D
14.2A$32.D$33.2D$35.D$36.D$37.2D$39.D$40.D13.2A$41.2D11.2A$43.D$44.D$
45.2D66.2A$47.D65.2A$48.D$49.D$50.2D10.2A$27.3D2.2D2.3D3.2D8.D9.2A$
28.D2.D2.D.D2.D.D.D9.D$28.D2.4D.3D2.2D11.2D$28.D2.D2.D.D5.2D12.D64.2A
$56.2D63.2A$58.D$58.2D5.D$59.D5.D4.2A$60.D4.D4.2A$60.D4.D$61.D3.D$62.
D2.D$63.D.D30.A$64.2D30.A$57.9D30.A$101.2A$101.2A7.2A12.A$109.2A13.A$
109.3A11.A$117.A6.2A.A$111.A.2A.A.A5.2A.2A$111.A2.A2.A7.A.A$97.A13.A.
A$96.A.A$95.A$94.A2.A$87.5A2.A2.A$87.A6.A2.A.3A$88.4A3.2A8$110.D$104.
2D4.D.D.3D5.D$103.D2.D2.D2.D4.D2.3D$102.D6.D2.D2.2D2.D2.D$102.D2.D2.D
3.D.D4.D2.D$103.2D3.D3.D.4D2.3D5$103.D4.D12.D$103.3D2.D4.2D3.2D.D.D$
103.D2.D.D3.D2.D.D3.2D$103.D2.D.D3.D2.D.D3.D.D$103.3D3.2D2.2D3.2D.D.D
4$103.3D$103.D2.D.D2.D2.2D2.2D2.2D2.2D$103.D2.D.D2.D.D3.D3.D.D.D$103.
3D2.D2.D.2D2.2D2.2D2.D$103.D5.2D2.D3.D4.2D.D3$104.D.2D.D.3D.2D.D.3D.
2D.D.D.D.D$103.D2.D2.D.3D.D2.D.3D2.D.D.D.D2.D$103.D3.D.D.D.D2.D.D.D.D
.2D.D.3D2.D$104.D.2D.D.D.D.2D.D.D.D2.D.D3.D.D$124.2D.D3.D!
By "not convenient", I meant that the gliders' paths are really close to each other - which would probably require the contraption to have an unnecessarily complex system of GIGs, edgeshooters and highway robbers to send and receive signals.

The set of salvos in my previous post is what's supposed to be the READ instruction - the number in the memory cell should be equal to about half the distance between the two return gliders (well, not counting the constant delay between them; that would presumably be taken care of by the memory reader).
I'm planning to use something like knightlife's toggleable gun to turn that distance into a number (first glider turns the gun on, second turns it off. The resulting HWSS output is halved, then subtracted from or added to to get rid of the constant offset).

I'll also need to be able to increment and decrement a cell (obviously), which was why I was asking about the highest distance a block could be pushed/pulled with three gliders. For the 'even larger' project I mentioned, I'll also need some way to zero out a cell - here's something to start with, found by adding a fourth glider to one of the reactions you posted (interestingly enough, moving the fourth glider to a different location can sometimes result in stuff like an LWSS or an aircraft carrier):

Code: Select all

x = 49, y = 77, rule = Life
30b2o$30b2o7$38b2o$38b2o7$46b2o$46b2o7$2o$2o7$5b2o4b2o$5bobo3bobo$5bo
5bo8$17b2o$16b2o$18bo8$26b2o$25b2o$27bo10$46b2o$46bobo$46bo8$46b2o$46b
obo$46bo!
The extra block can then be pushed up to wherever the zero position is using the other two 'elbows'.

Last up are the 'move ->' and 'move <-' instructions on the right side of the diagram, which don't do anything to the tape; they just move the memory pointer back or forward.
This would be easier, I think:

Code: Select all

x = 81, y = 45, rule = DoubleB3S23
60.A3.A.2A2.3A.3A.3A$60.A.A.A.A.A2.A3.A2.A$60.A.A.A.2A3.A3.A2.3A$60.A
.A.A.A.A2.A3.A2.A$61.A.A2.A.A.3A2.A2.3A2$60.3A.3A.2A3.A$62.A.A3.A.A.A
.A$16.2A2.3A2.A2.2A31.A2.3A.2A2.A.A$16.A.A.A3.A.A.A.A29.A3.A3.A.A.A.A
$16.2A2.3A.3A.A.A29.3A.3A.A.A2.A$16.A.A.A3.A.A.A.A$16.A.A.3A.A.A.2A9$
23.C43.C$21.3C41.3C$20.C43.C$20.2C42.2C9$18.2B42.2B$19.B43.B$19.B.B41.
B.B$20.2B42.2B2$24.2C$24.C.C41.2C$24.C43.C.C$68.C$.C43.2C$.2C43.2C$C.
C42.C!
Im still working on the "write: 1" function.
I don't know how far the block should be, so I'm not placing a block until the "write: 1" function has a minimal recipe.

Post Reply