Puzzles and "Project von Neumann"

For scripts to aid with computation or simulation in cellular automata.
User avatar
dvgrn
Moderator
Posts: 10610
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Puzzles and "Project von Neumann"

Post by dvgrn » April 8th, 2019, 1:45 pm

Here's something that has been getting discussed for several weeks now outside of the forums, in a small weekend discussion group made up (so far) of simsim314, pcallahan, Extrementhusiast, and me. The general topic has been how we might bring CA topics to the attention of a wider audience.

What has gotten the most traction so far is the idea of an online resource along the lines of Project Euler, but for cellular automata. A provisional nickname could be "Project von Neumann" ... at least until we get official permission to call it "Project Conway"!

The initial problem set would probably focus on Conway's Life in particular, since that's the CA rule that the most research has gone into. It probably also has the steepest initial learning curve to figure out what the current state of the art is. And the Game of Life has a 50th anniversary coming up next year, or later this year, depending on how you count it -- seems like a good excuse to advertise.

How would Project von Neumann work?
What should this online resource look like, exactly? At a minimum it will need a signup mechanism and a way of tracking progress through the puzzle hierarchy, probably with some kind of leaderboard.

Should the puzzles be served up as a set of instructions and associated pattern files to be loaded in Golly, with solutions uploaded back to the server for verification -- maybe with the help of a handy Lua script or two? Or is there some hope that an online Puzzle Editor application can be created to display the puzzles and collect the solutions directly?

Here's my idea for what a Puzzle Editor could look like. Open the image in a new tab, it's a lot wider than what's shown below. No doubt there are lots of other ideas out there, so feel free to post alternatives!
mock-up screenshot from Project von Neumann Puzzle Editor
mock-up screenshot from Project von Neumann Puzzle Editor
PvN-Puzzle-Display.png (146.59 KiB) Viewed 15825 times
- A puzzle consists of a set of pieces to be used to reach a specific goal. The pieces would either be provided directly (especially for the initial set of easy puzzles) or could be copied in from a library.

- The goal of the puzzle is visually marked in some standard way. Objects to be destroyed might be marked with red X's, objects to be created or lanes where output signals are supposed to appear might be outlined in green, etc.

- When a candidate solution is ready to be tested, the Life pattern is simulated on-screen. If the output matches the goal, a successful outcome is recorded.

- An Important Feature That We Don't Have Now In Any Editor: the Puzzle Editor should have a way of visually indicating valid interactions between pieces. For example, a connecting line with a directional arrow might appear when two Snarks are oriented and lined up correctly.

- Something Else We Haven't Had Since Xlife: For some classes of problems it's useful to be able to work with several components grouped together -- grab one piece and move it, and the other pieces grouped with it come along too.

- Another Handy Editing Feature: If there's a flexible connection, e.g., a splitter and a Snark lined up along a glider lane, then only adjustments that maintain the connection should be allowed -- unless the two components are specifically disconnected first.

- Instructions, and maybe optional hints, for each puzzle would be displayed in a text box somewhere. Maybe also a link to easier puzzles that teach key ideas needed to solve the current puzzle.

- There should be a way to create and upload new candidate puzzles via a creation/contribution mode. Once a good-sized initial problem set is available, it would be great to be able to add on new puzzle modules about other rules, or other sub-specialties that haven't been covered yet.

----------------------------

Do you think something like this might be interesting to a wider audience? What else would be needed to help flatten out the learning curve a bit?

User avatar
pcallahan
Posts: 845
Joined: April 26th, 2013, 1:04 pm

Re: Puzzles and "Project von Neumann"

Post by pcallahan » April 8th, 2019, 4:56 pm

dvgrn wrote: - Something Else We Haven't Had Since Xlife: For some classes of problems it's useful to be able to work with several components grouped together -- grab one piece and move it, and the other pieces grouped with it come along too.
It's been over 25 years since I added the #I feature to Xlife, and I managed to convince myself in the meantime that it wasn't something anyone else wanted. Maybe I was just ahead of my time. (*)

I wrote it at a time when I was more naive about what small interactions were left to be discovered, so I interpreted Life patterns as large, engineered patterns that should be modular and reusable like good software.

However, more experience seeing the work of experts like Dean Hickerson and Dieter Leithner convinced me that the real value was in packing together small and subtle interactions (like a skilled hacker), making it very hard to reuse things in their exact form. For instance, the choice of a block or an eater as a queen bee stabilization depends on whether you want the simplest (block) or need to keep a diagonal clear.

None of this is an insurmountable challenge. It should be possible to place the active parts and have software tools determine which stabilizers fit the other constraints. But this goes well beyond the idea of just supporting pattern inclusion. You (meaning dvgrn, and maybe not many others here) may recall that there is a way to create a script for building a pattern by clicking over a raw bitmap pattern and saving the include actions. I used this to reverse engineer a modular form of the original giant breeder, but it would be harder to do it with patterns that use a lot of custom spacing.

I think we're finally back to huge patterns simply because we have the UI and CPU speed to handle them, and much bigger ambitions than we had before (universal constructors are no longer vaporware). So it might be a good time to revisit the idea of representing a pattern in modular form. We would probably want a smarter way to reverse engineer it automatically.

(*) Another cautionary tale: When desktop icons were starting to become 3D and sometimes photorealistic (mid-90s), I used to go off on a rant that this was crazy and backwards. Icons, I insisted, are supposed to be simple, flat, and symbolic (and actually we have a wonderfully robust set of symbols called the alphabet that can be combined endlessly in lieu of pictures, but I digress). Just because computers can display something complicated, doesn't mean they should. E.g., the elaborate Mayan writing system has a kind of beauty to it, but there's a reason writing systems have tended to get simpler over time.

Phase 2: After watching icons get more detailed with shading and highlights and everything else, I said to myself "OK, Paul, you're just wrong about this one. People really have a deep-seated psychological need for 3D icons and you shouldn't berate them for it. Complicated icons are the way of the future. People always wanted to write like Mayans; they only took shortcuts because the stone carving was so slow."

Phase 3: Bang. For some reason (graphics limitations on early feature phones I'm going to bet) icons suddenly became more stylized again with flat colors and simple line boundaries. And now that's what everyone expects and apparently they're happy with them. Am I satisfied? No, just exasperated.

(Good to get that rant down in writing, but what is my point? Mostly that I have no idea what other people want, but sometimes they change their mind, and by then I don't even feel vindicated, just hoodwinked into going along with the trends that I first complained about.)

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

Re: Puzzles and "Project von Neumann"

Post by dvgrn » April 8th, 2019, 5:42 pm

pcallahan wrote:
dvgrn wrote: - Something Else We Haven't Had Since Xlife: For some classes of problems it's useful to be able to work with several components grouped together -- grab one piece and move it, and the other pieces grouped with it come along too.
It's been over 25 years since I added the #I feature to Xlife, and I managed to convince myself in the meantime that it wasn't something anyone else wanted. Maybe I was just ahead of my time...

So it might be a good time to revisit the idea of representing a pattern in modular form. We would probably want a smarter way to reverse engineer it automatically.
You might still be ahead of your time. Some years ago I wrote a Python "recognizer" script that's pretty good at reverse engineering patterns automatically -- once a human goes through and picks out and names one copy of each structure, anyway.

That was good enough to create a simple modular representation of a glider-to-weekender converter, in the form of a Python or Lua script. It would be fairly simple at this point to take the Lua-script representation of a pattern as input to an Lua overlay-based pattern editor in Golly, that retains the named chunks instead of reducing everything to cells, and saves everything out again as a Lua script after changes are made.

It's fairly easy, but not quite trivial, to extend the current script to allow larger patterns to be defined recursively in terms of smaller patterns, and also to allow welds and alternate stabilizations to be defined as XOR modifications of a canonical version of an object. By now I've started writing that upgrade several times, but never found the time or motivation to finish it. There just doesn't seem to be all that much market for this kind of modular editing.

I don't think more than a single-digit number of people have ever even tried out the recognizer script... though I might be wrong about that, looking at it again, since it's on its way to being downloaded a four-digit number of times. (The one advantage of posting code snippets like that on the forums instead of on GitHub where they belong, is that this way I get a download count.)

Anyway, I don't remember any actual recognizer script outputs getting posted on the forums in lieu of RLE, even though the Lua-script version is usually much smaller than even compressed RLE or compressed macrocell formats, and it should be well-supported in Golly by this time -- no additional Python installs needed, just Golly 3.x. I suppose one potential issue is that support in LifeViewer would be a bit tricker, though it's certainly not impossible.

User avatar
pcallahan
Posts: 845
Joined: April 26th, 2013, 1:04 pm

Re: Puzzles and "Project von Neumann"

Post by pcallahan » April 8th, 2019, 5:58 pm

dvgrn wrote: Anyway, I don't remember any actual recognizer script outputs getting posted on the forums in lieu of RLE, even though the Lua-script version is usually much smaller than even compressed RLE or compressed macrocell formats, and it should be well-supported in Golly by this time -- no additional Python installs needed, just Golly 3.x. I suppose one potential issue is that support in LifeViewer would be a bit tricker, though it's certainly not impossible.
I think the gold standard is whether it is supported by LifeViewer. People will look at something if they just need to click on it, but are a lot less likely to copy-paste it into another application unless they're very interested.

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

Re: Puzzles and "Project von Neumann"

Post by dvgrn » April 9th, 2019, 6:07 am

An email from last night:
calcyman wrote:[Feel free to quote this, in whole or in part, on the forums.]

In much the same way that Project Euler only checks for an input string
as a final answer, your brilliant idea of 'Project von Neumann' could
accept an RLE upload.

It could be validated server-side by a Python script (e.g. hosted on
pythonanywhere.com, which I've checked supports lifelib) to make sure
that all of the constraints are met. For instance, if the task is to
build a true period-61 gun, then checking is relatively simple (code
untested):

Code: Select all

pat = lt.load("path/to/solution.rle")
bbox = pat.bounding_box

pat = pat[4 * (bbox[2] + bbox[3])] # advance by safe amount
bbox = pat.bounding_box # recompute bounding box

pat61 = pat[61]
assert(pat61[bbox[0]:bbox[0] + bbox[2], bbox[1]:bbox[1] + bbox[3]] == pat)
g = pat61 - pat

assert(g.population == 5)
assert(g.apgcode == 'xq4_153')
which checks that the pattern returns to its original state in 61
generations, plus a glider outside the original bounding box. It could
then try extra checks, just to be on the safe side -- like adding an
eater straight after the glider and checking that the result is a p61
oscillator.

Probably every script should be preceded by a check that the upload
is a valid RLE of a sensible size, just to prevent hackery.

I like this approach because it doesn't force the user to use any
particular choice of software (Golly / LifeViewer / Life32 / whatever)
in the same way that Project Euler doesn't mandate a particular
choice of programming language.

A basic HTML form could accept an RLE in a textarea, which would
allow easy copy-and-pasting out of Golly / LifeViewer / Life32 /
whatever, with a nice juicy 'submit' button to beam the RLE over
to the server to be validated. (Someone who knows JS can probably
do something much better, which returns the response after the
split second it takes the lifelib script to validate the pattern.)

I've cc'd Tim Hutton because he's made a similarly open-ended puzzle
game, Organic Builder, which also had short assertion-based scripts
to check the validity of a solution.

Opinions?
An HTML form accepting RLE seems like a very reasonable plan -- maybe along with a simple REST API implementation that would allow a hypothetical Golly Lua script to send in solutions directly as well.

That would allow a Lua-overlay puzzle-browser script to serve up Project von Neumann content and handle submission of solutions without any copy/pasting. So the useful editing features in a Puzzle Browser would end up in Golly (where they probably belong) rather than in an online Javascript application.

By "useful editing features" I mean things like automatically locking a Snark onto the output lane of a splitter, or connecting two turners for a "chain reaction" destruction puzzle and having a handle to allow the two pieces to be moved as a group.

The advanced editing stuff is all vaporware at the moment, though. Meanwhile, a simple Project von Neumann interface that accepts RLE, with server-side validation scripts calling lifelib, has one huge advantage: it makes it possible to start inventing and arranging the puzzles almost immediately. A helpful puzzle-browser Lua script in Golly can be just a nice-to-have, instead of a prerequisite for getting the Project started.

User avatar
simsim314
Posts: 1823
Joined: February 10th, 2014, 1:27 pm

Re: Puzzles and "Project von Neumann"

Post by simsim314 » April 9th, 2019, 7:48 am

I like the idea of using lifelib in backend. I've several more issues which in my opinion critical:

1. Ratings of problems. We can think some problem is simple but the players could think otherwise. Other ratings could include interest in the problem and it esthetic value.

2. People could commit problems into wrong categories or just non-problems. We need either admins which only they can add new problems or reviewers that will make sure the problems commited by users are valid.

3. A lot of the learning curve regards learning tools and scripts. Very little discoveries are done without any search tool and scipting. We can integrate them into the puzzle ui, yet we need to figure this out.

4. We might drop the concept of visual puzzles all together and switch to scripting puzzles. Very similiar to openscad - where you move components with code. We will only provide API and check results. The snark attachment will be just part of the API. I'm trying to make such coding layer for a while now.

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

Re: Puzzles and "Project von Neumann"

Post by dvgrn » April 9th, 2019, 8:52 am

simsim314 wrote:2. People could commit problems into wrong categories or just non-problems. We need either admins which only they can add new problems or reviewers that will make sure the problems commited by users are valid.
And/or possibly a community area, maybe implemented as a wiki, where anyone can create new problems and help organize puzzle modules. Then an admin group could do any required cleanup, improve validation scripts if the supplied ones aren't strict enough, etc., when problems get moved over into the official hierarchy. That might allow some preliminary voting and rating to get done at the PvN wiki stage.
simsim314 wrote:3. A lot of the learning curve regards learning tools and scripts. Very little discoveries are done without any search tool and scipting. We can integrate them into the puzzle ui, yet we need to figure this out.
Calcyman's suggestion of a tool-agnostic presentation of the puzzles seems like a good one. If we add a requirement to Project vN that any kind of search functionality will be integrated into the UI, then suddenly we have to wait for vaporware to condense into non-vaporware before any puzzle-making can get started.

If, on the other hand, we go right ahead and create a pile of puzzles that can only reasonably be solved by scripts, then that opens up the field for people to write helper code -- Golly Lua scripts or Javascript or whatever -- and contribute it to a Project vN toolset for other people to try out.

User avatar
simsim314
Posts: 1823
Joined: February 10th, 2014, 1:27 pm

Re: Puzzles and "Project von Neumann"

Post by simsim314 » April 9th, 2019, 9:41 am

I think we need to distinguish between "minimal viable produce" this might also not include all the features for glider/snark interactions as well. We need just simplest way to define puzzles, ratings, users, library of components and simple interaction.

In the second stage we might want to improve the user experience with G+Snark, add bulk search, allow to solve by scripts, add more searching tools or maybe train using existing tools etc.

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

Re: Puzzles and "Project von Neumann"

Post by dvgrn » April 15th, 2019, 6:36 pm

simsim314 wrote:I think we need to distinguish between "minimal viable produce" this might also not include all the features for glider/snark interactions as well. We need just simplest way to define puzzles, ratings, users, library of components and simple interaction.

In the second stage we might want to improve the user experience with G+Snark, add bulk search, allow to solve by scripts, add more searching tools or maybe train using existing tools etc.
This sounds like a good approach.

The simplest possible definition of a puzzle that I can think of is a single RLE pattern containing all the pieces needed to complete the puzzle. For the screenshot I posted above, it could be something like this:

Code: Select all

x = 130, y = 217, rule = LifeHistory
130D$D22.D31.D33.D39.D$D22.D31.D33.D39.D$D22.D2.BD27.D3.BD28.D3.BD34.
D$D22.D2.2BD23.B2.D3.2BD23.B3.D3.2BD23.B9.D$D22.D2.3DB21.2B2.D3.3DB
21.2B3.D3.3DB21.2B9.D$D22.D3.4B19.3D2.D4.4B19.3D3.D4.4B19.3D9.D$D22.D
4.4B10.A6.3BD2.D5.4B10.A6.3BD3.D5.4B10.A6.3BD9.D$D22.D5.4B7.3A5.3BD3.
D6.4B7.3A5.3BD4.D6.4B7.3A5.3BD10.D$D22.D6.4B5.A7.4B4.D7.4B5.A7.4B5.D
7.4B5.A7.4B11.D$D2.D19.D7.4B4.2A5.4B5.D8.4B4.2A5.4B6.D8.4B4.2A5.4B12.
D$D.2BD18.D8.9B4.4B6.D9.9B4.4B7.D9.9B4.4B13.D$D.3DB17.D9.6B5.4B7.D10.
6B5.4B8.D10.6B5.4B14.D$D2.4B10.DBD3.D9.8B2.4B8.D10.8B2.4B9.D10.8B2.4B
15.D$D3.4B8.B2DB3.D7.15B9.D8.15B10.D8.15B16.D$D4.4B6.3BD4.D7.14B10.D
8.14B11.D8.14B17.D$D5.5B3.4B5.D7.13B11.D8.13B12.D8.13B18.D$D6.5B.4B6.
D5.2AB.10B12.D6.2AB.10B13.D6.2AB.10B19.D$D7.8B7.D4.A.AB3.B2A3B14.D5.A
.AB3.B2A3B15.D5.A.AB3.B2A3B21.D$D7.2B2D3B8.D4.A6.B2A3B14.D5.A6.B2A3B
15.D5.A6.B2A3B21.D$D8.BDBD2B8.D3.2A6.4B16.D4.2A6.4B17.D4.2A6.4B23.D$D
10.BDB9.D12.3B16.D13.3B17.D13.3B23.D$D11.2D9.D13.2B.BA13.D14.2B.BA14.
D14.2B.BA20.D$D22.D12.B2ABA.A12.D13.B2ABA.A13.D13.B2ABA.A19.D$D22.D
11.BABABA.A12.D12.BABABA.A13.D12.BABABA.A19.D$D22.D9.A2.A.A.A.A.2A9.D
10.A2.A.A.A.A.2A10.D10.A2.A.A.A.A.2A16.D$D22.D9.4A.2A2.A2.A9.D10.4A.
2A2.A2.A10.D10.4A.2A2.A2.A16.D$D22.D13.A4.2A11.D14.A4.2A12.D14.A4.2A
18.D$D22.D11.A.A17.D12.A.A18.D12.A.A24.D$D22.D11.2A18.D12.2A19.D12.2A
25.D$D22.D31.D33.D39.D$D22.D31.D33.D39.D$130D$D88.D39.D$D88.D39.D$D
38.2B2D46.D3.BD25.B8.D$D39.2D2B45.D3.2BD23.2B8.D$D40.BD2B44.D3.3DB21.
3B8.D$D41.4B43.D4.4B19.3DB8.D$D42.4B42.D5.4B10.A6.3BD9.D$D43.4B41.D6.
4B7.3A5.3BD10.D$D44.4B40.D7.4B5.A7.4B11.D$D45.4B39.D8.4B4.2A5.4B12.D$
D46.4B38.D9.9B4.4B13.D$D47.4B37.D10.6B5.4B14.D$D48.4B36.D10.8B2.4B15.
D$D49.4B35.D8.15B16.D$D6.D43.4B15.2A17.D8.14B17.D$D7.D23.A19.4B13.B2A
2B15.D8.13B18.D$D5.3DB22.3A12.B.3B.4B12.5B15.D6.2AB.10B19.D$D6.4B24.A
10.18B5.5B15.D5.A.AB3.B2A3B21.D$D7.4B10.A11.2A3.B5.2B2A16B3.6B15.D5.A
6.B2A3B21.D$D8.4B7.3A11.8B3.2B2A16B.8B15.D4.2A6.4B23.D$D9.4B5.A16.8B.
29B7.2A6.D13.3B23.D$D10.4B4.2A15.39B6.A7.D14.2B.BA20.D$D3.2A6.9B14.
15B.2B2.21B2.BA.A7.D13.B2ABA.A19.D$D4.A7.6B14.17B8.19B.B2A8.D12.BABAB
A.A19.D$D4.A.2A5.6B3.B2.2B2.19B11.19B10.D10.A2.A.A.A.A.2A16.D$D5.A2.A
4.19B.15B12.18B10.D10.4A.2A2.A2.A16.D$D6.2AB3.20B.B.4B.7B12.19B10.D
14.A4.2A18.D$D7.14B2A9B3.13B11.19B10.D12.A.A24.D$D8.13B2A11B.14B8.2AB
.3B2.12B10.D12.2A25.D$D9.29B2.8B8.A.AB6.10B.B2A8.D39.D$D9.17B.4B11.6B
8.A8.10B2.BA.A7.D39.D$D10.15B3.2B12.5B8.2A7.9B7.A7.D39.D$D10.15B3.B
14.4B16.10B7.2A6.D39.D$D11.13B5.A3.2A8.3B16.4B.6B15.D39.D$D13.13B2.A.
A3.A9.4B13.4B3.B.B17.D39.D$D12.8B4.2A.A.A3.A12.2A12.D3B5.3B16.D39.D$D
12.6B6.2ABA4.A13.A12.BDBD5.B2AB16.D39.D$D12.5B8.B2.5A.A12.3A8.2B2D7.
2A17.D39.D$D12.B.B5.2A.A.2A.A4.A.A13.A7.4B27.D39.D$D13.3B4.A.2A.A2.A.
2A2.A21.4B28.D39.D$D12.B2AB11.2A.A.2A21.4B29.D39.D$D13.2A39.4B30.D39.
D$D53.4B31.D39.D$D52.4B32.D39.D$D51.4B33.D39.D$D50.4B34.D39.D$D49.4B
35.D39.D$D88.D39.D$130D6$130F$F128.F$F128.F$F128.F$F128.F$F128.F$F
128.F$F128.F$F128.F$F128.F$F128.F$F128.F$F128.F$F128.F$F128.F$F128.F$
F128.F$F128.F$F128.F$F128.F$F128.F$F128.F$F128.F$F128.F$F128.F$F128.F
$F128.F$F128.F$F128.F$F128.F$F2.BC124.F$F2.2BC123.F$F2.3CB122.F$F3.4B
121.F$F4.4B120.F$F5.4B119.F$F6.4B118.F$F7.4B117.F$F8.4B116.F$F9.4B
115.F$F10.4B114.F$F11.4B113.F$F12.4B112.F$F13.4B111.F$F128.F$F128.F$F
128.F$F128.F$F128.F$F128.F$F128.F$F128.F$F128.F$F128.F$F128.F$F128.F$
F128.F$F128.F$F128.F$F128.F$F106.4B18.F$F107.4B17.F$F108.4B16.F$F109.
4B15.F$F110.4B14.F$F111.4B13.F$F112.5B11.F$F113.5BD9.F$F114.2B3D9.F$F
113.2BD2B10.F$F112.3B2D11.F$F112.5B11.F$F111.5B12.F$F110.4B14.F$F109.
4B15.F$F108.4B16.F$F107.4B17.F$F107.3B18.F$F107.2B19.F$F107.B20.F$F
128.F$F128.F$F128.F$F128.F$F128.F$F128.F$F128.F$F128.F$F128.F$F128.F$
F128.F$F128.F$F128.F$F128.F$F128.F$F128.F$F128.F$F128.F$F128.F$F128.F
$F128.F$F128.F$F128.F$F128.F$F128.F$F128.F$F128.F$F128.F$F128.F$F128.
F$F128.F$F128.F$F128.F$F128.F$F128.F$F128.F$F128.F$F128.F$F128.F$F
128.F$F128.F$F128.F$F128.F$F128.F$F128.F$F128.F$F128.F$F128.F$F128.F$
130F!
-- with some accompanying text:
Construct a working glider-to-eater converter, or "eater factory". Construction of the eater should be complete in less than 750 ticks.

Bonus: complete eater construction in less than 665 ticks.

Hint 1: connect the input eater to the splitter.

Hint 2: connect the splitter's outputs to four copies of the Snark reflector.

Hint 3: two Snark reflectors can be connected to make an adjustable 180-degree turn called a "trombone slide". Moving the two-Snark slide by one cell diagonally changes the timing of the output glider by 8 ticks (two cells diagonally).

Hint 4: align the splitter and Snarks so that the two gliders come in on the correct lanes -- use the template eater construction recipe provided in the components list.

Hint 5: advance your pattern until one glider matches one of the red gliders in the eater recipe template. How far ahead or behind is the second glider from where it needs to be? Decide how to adjust the location of the splitter or the Snark trombone slides to slow down or speed up the second glider by the correct amount.
The reason for the red and gray boxes in this design is that it's easy to write a converter script for a pattern like this, to find the "component" area and the "puzzle" area, separate all the components from each other, and display them in a more advanced Puzzle Editor that can do auto-linking, grouping and ungrouping, instant preview, etc.

Simsim314 Says, Keep It Simple
It seems like a much better idea not to wait around for this vaporware Puzzle Editor to be completed, before we start writing and testing a lot of PvN puzzles! In fact, if we can collect a few hundred or a few thousand interesting puzzles, that will probably do more than anything else could to encourage the creation of a really good Puzzle Editor.

As written, the above puzzle doesn't need any welding or other adjustments to the pieces, just straight copy/paste. Welding problems are probably a separate category.

For some puzzles it will be an interesting challenge to figure out how to write a verification script to prevent cheating -- especially advanced puzzles where you're allowed to use anything you can find to solve a difficult problem, or at least anything in a large library of options. But for something as simple as this we could just check that the cell count is right (green cells only), all the given components are present somewhere in the solution, the pattern _doesn't_ produce an output eater before T=750 if no input glider is sent in, and so on.

Suggestion Time!
Okay, let the fun begin: how should this "minimal" sample puzzle be set up differently? What types of puzzles can't be handled yet with a template like this, and how can we extend the template without making things unnecessarily complicated?

Let's say for the time being that it's important that every puzzle can be solved by just pasting the RLE into Golly, working with it there, and then pasting some solution RLE into an online form and clicking Submit.

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

Re: Puzzles and "Project von Neumann"

Post by dvgrn » April 16th, 2019, 7:32 am

Quick straw poll: how many people out there still can't stand LifeHistory? Now that Golly has Alt+H and Alt+J integrated, I'm hoping that everyone is finding it a little easier to work with right out of the box.

The missing piece that I can see is a tool to remove the history cells from a selected area or the entire pattern, without damaging marked cells. I use ToChangeColors.py for that, but it should really be a Lua script, and it might make sense to include something like an Alt+K shortcut to a version of it that's specific to LifeHistory history-cell cleanup. (?)

It's definitely true that there's a big LifeHistory learning curve involved with editing puzzle patterns like the above sample. Can someone see how to reasonably serve up these kinds of puzzles in plain two-state Life? I really can't quite imagine expecting people to understand the components and get the alignments right without LifeHistory -- or without a script in Golly or an online Puzzle Editor that provides the equivalent functionality.

But I've been using LifeHistory-like editing tricks since before Golly existed, so I'm bound to be biased. Are there other likely options?

User avatar
calcyman
Moderator
Posts: 2932
Joined: June 1st, 2009, 4:32 pm

Re: Puzzles and "Project von Neumann"

Post by calcyman » April 16th, 2019, 11:18 am

dvgrn wrote:The missing piece that I can see is a tool to remove the history cells from a selected area or the entire pattern, without damaging marked cells. I use ToChangeColors.py for that, but it should really be a Lua script
If anything, it should be a rule. Any script that iterates through cells is bound to be unbearably slower than something that operates on the quadtree directly.

As a quick-and-dirty approach that deals with states {0, 1, 2, 4} (but not with 3 or 5), I generally do the following sequence of operations to convert a LifeHistory pattern to plain Life:

-- set rule to //3 (Generations);
-- run by one generation;
-- set rule to B3/S23;

taking advantage of Golly's approach of collapsing all states >= n into state n-1 when you change to an n-state rule.

For the purpose of these puzzles, though, it wouldn't be necessary for the user to remove the history cells; as it stands, you can use lt = sess.lifetree(n_layers=1) in lifelib to create a one-layer (i.e. 2-state) lifetree, and any LifeHistory patterns will be 'downcast' into 2-state patterns.

-------- horizontal line --------

A separate line of thought is that it might be fun to create puzzles in the NoTimeAtAll rule: they'd be appropriate for educational purposes (similar to Turing tumble), as the rule has a universal set of logic gates without requiring the user to worry about synchronisation.
What do you do with ill crystallographers? Take them to the mono-clinic!

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

Re: Puzzles and "Project von Neumann"

Post by dvgrn » April 16th, 2019, 12:11 pm

calcyman wrote:
dvgrn wrote:The missing piece that I can see is a tool to remove the history cells from a selected area or the entire pattern, without damaging marked cells. I use ToChangeColors.py for that, but it should really be a Lua script
If anything, it should be a rule. Any script that iterates through cells is bound to be unbearably slower than something that operates on the quadtree directly.
Well, "unbearably slower" is unlikely for any of the first thousand Project von Neumann puzzle patterns. ToChangeColors.py cleans up the history cells in the current Elementary Conduits Collection in less than a second, and that's almost a 5000x3000 pattern. To me that seems very bearably slower than doing the same operation by applying a cleanup rule.

More important, ToChangeColors.py can operate on a selection, which makes it a much more versatile cleanup tool. I think lifelib has a reasonably decent way of chopping a piece out of a larger pattern, doing a rule-based operation on it, and then fitting it back in (?). But if you try to do that with a huge pattern in Golly, you tend to lose a lot more time in the cut-out and paste-back-in phases than you gain in the all-at-once rule application.
calcyman wrote:As a quick-and-dirty approach that deals with states {0, 1, 2, 4} (but not with 3 or 5), I generally do the following sequence of operations to convert a LifeHistory pattern to plain Life:

-- set rule to //3 (Generations);
-- run by one generation;
-- set rule to B3/S23;

taking advantage of Golly's approach of collapsing all states >= n into state n-1 when you change to an n-state rule.
This is basically what Alt+J does in Golly these days, calling ToLife.lua -- except that ToLife.lua's custom rule reduces states 3 and 5 to state 1 correctly, and the script fixes the generation count automatically.

But the only way to apply Alt+J to a selection is a multi-step trick: make selection / Alt+J / Ctrl+C / Ctrl+Z / Del (to clear selection) / Ctrl+V, and carefully paste the two-state selection back to the same location.
calcyman wrote:For the purpose of these puzzles, though, it wouldn't be necessary for the user to remove the history cells; as it stands, you can use lt = sess.lifetree(n_layers=1) in lifelib to create a one-layer (i.e. 2-state) lifetree, and any LifeHistory patterns will be 'downcast' into 2-state patterns.
Yeah, there's no problem once you get to the solution validation stage. Cleanup of the state-2 cells is entirely a requirement for editing purposes. Once you've experimentally moved stuff around for long enough in a difficult puzzle, very often there are all kinds of leftover history cells in the wrong places, serving no useful purpose, but getting in your way when you're trying to see if a solution is going to work.

A Lua script or online Puzzle Editor that displays a Seeds-of-Destruction-like instant preview would avoid this problem very nicely. So would an editor that automatically moves components around while retaining their associated history cells.

But for now I'm just looking for a nice minimal way to present puzzles that flattens the total learning curve as much as possible. Ideally, total newcomers to Conway's Life should be able to jump in and start submitting solutions, with just a short intro -- a how-to-use-Golly cheat sheet and a FAQ page, let's say.

AforAmpere
Posts: 1334
Joined: July 1st, 2016, 3:58 pm

Re: Puzzles and "Project von Neumann"

Post by AforAmpere » April 16th, 2019, 12:17 pm

dvgrn wrote: But for now I'm just looking for a nice minimal way to present puzzles that flattens the total learning curve as much as possible. Ideally, total newcomers to Conway's Life should be able to jump in and start submitting solutions, with just a short intro -- a how-to-use-Golly cheat sheet and a FAQ page, let's say.
I really like your demonstration above with the different pieces that need to be fit together. Maybe to make it user friendly, a user could type in the number corresponding to a piece (they would need to be labeled), and have it hover around like in SOD. Rotating and flipping pieces could be done with the normal commands.
I manage the 5S project, which collects all known spaceship speeds in Isotropic Non-totalistic rules. I also wrote EPE, a tool for searching in the INT rulespace.

Things to work on:
- Find (7,1)c/8 and 9c/10 ships in non-B0 INT.
- EPE improvements.

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

Re: Puzzles and "Project von Neumann"

Post by dvgrn » April 16th, 2019, 1:06 pm

AforAmpere wrote:Maybe to make it user friendly, a user could type in the number corresponding to a piece (they would need to be labeled), and have it hover around like in SOD. Rotating and flipping pieces could be done with the normal commands.
Any kind of proper Puzzle Editor right now is pure vaporware, unfortunately -- though I definitely hope that a big enough collection of good puzzles will encourage someone to write a user-friendly editor, either an online Javascript one along the lines of LifeViewer, or a Lua-script one using Golly's overlay. For example, I'd love to see a hovering Snark or syringe or whatever "lock on" automatically to an already-placed glider source or sink, and snap to the diagonal where that connection is maintained.

Meanwhile, it seems important to be able to solve and submit puzzles using just Golly's standard editing functionality -- so that we can start making puzzles right now, and have hundreds or thousands of them available by the time the official Conway's LIfe Quinquagenary rolls around -- Puzzle Editor or no Puzzle Editor.

I'm don't see offhand that there's a reasonable way to present puzzles without introducing solvers to LifeHistory or some similar helper rule... so I'm very curious to find out how many people are still avoiding LifeHistory as an editing aid, and doing everything in two-state Life. Anyone in that category, please respond to the straw poll!

No Adjustments Allowed
Something I didn't mention in the last message: I'm thinking that the input signal (in white) and output target (in red) should be considered to be invariant. A submitted solution can be failed immediately if it has the input signal or output target moved to a different location in the gray puzzle-field rectangle.

Any other ON cells that are pre-placed on the puzzle field should also be there in the submitted solution. There might be barrier objects (which the input glider has to be routed around), targets (which have to be destroyed -- maybe there aren't any pre-placed input gliders in that case, but there are gliders or spaceships in the components list), or pieces of circuitry that are locked in place and have to be worked into a solution without adjusting them.

If Wishes Were Knightships
-- While I'm wishing for vaporware Puzzle Editor features, I'd like to see at least three options for puzzles:

1) Beginner: The puzzle contains all the pieces needed to solve it -- no outside imports, welding, or customizations allowed.
2) Intermediate: The puzzle contains only some of the pieces needed to solve it, or none at all. Missing pieces have to be looked up in and imported from an appropriate library -- Elementary Conduits Collection, splitter or turner collection, oscillator collection, spaceship collection, etc. Presumably the puzzle will specify which libraries are allowed, and imports from other libraries will be disabled.
3) Advanced: The puzzle is open-ended, and anything goes -- custom welds, weird oscillators, the works. A "good enough" level should be specified, and maybe a "very good" level, and possibly a "record-breaker" level with attribution collected and displayed for whoever has found the best solution so far.

User avatar
simsim314
Posts: 1823
Joined: February 10th, 2014, 1:27 pm

Re: Puzzles and "Project von Neumann"

Post by simsim314 » April 17th, 2019, 1:33 pm

I definitely agree that collecting challenging tasks and formulate them as problems in some standard format for puzzles could be the first step. We don't need anything external to the tools we currently have. We need a good problem set. Just like chess positions collection which even don't use a board only a memory and pictures. Obviously an additional puzzle app would be in order, but we don't need to wait for any tools at all - just a form we fill to commit puzzles and a big golly file with this collection. We could even commit it as part of golly collections (if Andrew would agree). I really much like the distinction between a puzzle collection, and a technical tool to present and solve the puzzles. We can use golly for starters and the forum as the platform to collect interesting puzzles and solve them - we can also rate puzzle by category or commit into repository the time took each one of us to solve the puzzle and leave a comment on each of the puzzles.

I think I like the idea for another reason: for me most of the puzzles are golly coding puzzles. Or any other tool puzzles like bellman. We can release and teach tools usage through puzzles as well. For example rediscovering snark is a nice feeling. Obviously not like writing bellman and discovering snark the first time, but still sharing that same moment. The exercises could be even in textual format, at least some of them.

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

Re: Puzzles and "Project von Neumann"

Post by dvgrn » April 17th, 2019, 3:02 pm

simsim314 wrote:Obviously an additional puzzle app would be in order, but we don't need to wait for any tools at all - just a form we fill to commit puzzles and a big golly file with this collection. We could even commit it as part of golly collections (if Andrew would agree).
That probably wouldn't be a problem, once we've collected enough puzzles to make an interesting collection. Maybe it could go in the Online Archives. -- Probably I check in more patterns to Golly's pattern collection than anyone else does, anyway, so I'll most likely be allowed to use my judgment as to whether the PVN Puzzle Collection is ready for prime time.
simsim314 wrote:We can use golly for starters and the forum as the platform to collect interesting puzzles and solve them - we can also rate puzzle by category or commit into repository the time took each one of us to solve the puzzle and leave a comment on each of the puzzles.
Seems like a forum thread is a good starting point, but eventually with dozens or hundreds of puzzles it may get a bit unwieldy to do the voting and discussing for each puzzle separately without getting confused.

Of course, having too many puzzles to keep track of would be a very good problem to have! But how about starting with a puzzle-collecting wiki? Separate article for each wiki, votes and discussion on talk page, LifeViewer to display the puzzle pattern, etc.

Nathaniel recently added a new "OCA" namespace to the LifeWiki. I wonder if another new "PVN" namespace would work as a collection point, or if the extra traffic would make it too annoying to sort out recent changes on the regular LifeWiki?

... Looks like we ought to be able to add links on the sidebar like "Recent changes (CGoL)", "Recent changes (OCA)", "Recent changes (PVN)" -- there's a search option to limit the change list to a specific namespace.

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

Re: Puzzles and "Project von Neumann"

Post by dvgrn » April 17th, 2019, 6:16 pm

Here's a sample series of puzzles in a different category -- "Chain Reactions", or maybe "Seeds" would be more accurate. There are answers to all of these puzzles hiding on a forum thread near you, but if you just go look up the solutions, it won't be a good test case...

Questions for the Audience If Any
Again, I'm particularly interested to hear reactions from people who aren't familiar with LifeHistory, or who don't really know how to use LifeHistory format in Golly to solve problems like these. Please could some of you try out a puzzle or three, and let me know if the format seems to work, or what you hate about the puzzles, or if they seem too easy, or if they seem impossible to figure out where to even get started, or whatever?

Is it easy to discover shortcut keys in Golly, like > and < and X and Y (when you're pasting), and Shift+S (when you have a selection), and particularly Ctrl+Z and Ctrl+Shift+Z (for all kinds of purposes, not just when you make a mistake)? Or will we need these on a cheat-sheat page? What else should go on the cheat sheet, what should go on a general Puzzle Instructions page, and what should be in a FAQ?

One-Glider Seed Puzzles
All of the following puzzles have the same outcome, which is a working 1-glider Cordership seed. The components are basically smaller or larger pre-built pieces of a complete seed pattern, which therefore give you smaller or larger hints. Here's a somewhat tougher version:

Code: Select all

x = 90, y = 255, rule = LifeHistory
90D$D28.D29.D29.D$D28.D29.D29.D$D28.D29.D29.D$D28.D29.D29.D$D28.D29.D
29.D$D21.2D5.D22.2D5.D22.2D5.D$D7.D12.DBD5.D8.D12.DBD5.D8.D12.DBD5.D$
D6.2BD10.3BD5.D7.2BD10.3BD5.D7.2BD10.3BD5.D$D6.3DB8.4B6.D7.3DB8.4B6.D
7.3DB8.4B6.D$D7.4B6.4B7.D8.4B6.4B7.D8.4B6.4B7.D$D8.4B4.4B8.D9.4B4.4B
8.D9.4B4.4B8.D$D9.4B2.4B9.D10.4B2.4B9.D10.4B2.4B9.D$D10.8B10.D11.8B
10.D11.8B10.D$D11.6B11.D12.6B11.D12.6B11.D$D12.4B12.D13.4B12.D13.4B
12.D$D11.5B12.D12.5B12.D12.5B12.D$D10.6B12.D11.6B12.D11.6B12.D$D9.2B
2AB14.D10.2B2AB14.D10.2B2AB14.D$D9.BABAB14.D10.BABAB14.D10.BABAB14.D$
D9.BA3B14.D10.BA3B14.D10.BA3B14.D$D9.2A2B15.D10.2A2B15.D10.2A2B15.D$D
28.D29.D29.D$D28.D29.D29.D$D28.D29.D29.D$D28.D29.D29.D$D28.D29.D29.D$
D28.D29.D29.D$D28.D29.D29.D$D28.D29.D29.D$D28.D29.D29.D$D28.D29.D29.D
$90D$D28.D38.D20.D$D28.D38.D20.D$D28.D38.D20.D$D28.D38.D20.D$D28.D20.
D17.D20.D$D21.2D5.D19.2DB16.D20.D$D7.D12.DBD5.D19.DBDB15.D20.D$D6.2BD
10.3BD5.D20.4B14.D20.D$D6.3DB8.4B6.D21.4B13.D20.D$D7.4B6.4B7.D20.6B
12.D20.D$D8.4B4.4B8.D17.BA8B11.D20.D$D9.4B2.4B9.D15.2BABA7B11.D20.D$D
10.8B10.D15.2B2A8B11.D20.D$D11.6B11.D14.13B11.D20.D$D12.4B12.D15.12B
11.D9.3C8.D$D11.5B12.D15.10BA3B9.D9.C10.D$D10.6B12.D14.10BABA2B9.D10.
C9.D$D9.2B2AB14.D13.12BA3B9.D20.D$D9.BABAB14.D12.4B.12B9.D20.D$D9.BA
3B14.D11.4B2.13B8.D20.D$D9.2A2B15.D10.4B4.13B7.D20.D$D28.D9.4B6.5B4.
4B6.D20.D$D28.D8.4B8.3B6.4B5.D20.D$D28.D7.4B19.BDBD4.D20.D$D28.D6.4B
21.B2D4.D20.D$D28.D5.2D2B23.D5.D20.D$D28.D4.DBDB30.D20.D$D28.D5.BD31.
D20.D$D28.D38.D20.D$D28.D38.D20.D$D28.D38.D20.D$90D$D88.D$D88.D$D88.D
$D88.D$D88.D$D23.D64.D$D22.D.D63.D$D88.D$D22.D2.D62.D$D24.2D62.D$D25.
D62.D$D39.2D47.D$D39.2D47.D$D88.D$D88.D$D22.2D64.D$D24.D63.D$D23.2D
63.D$D22.3D63.D$D22.2D23.2D39.D$D21.3D.D21.2D39.D$D22.D3.D61.D$D24.D
2.D60.D$D24.3D61.D$D11.D13.2D13.D47.D$D8.4D28.2D46.D$D40.2D46.D$D42.D
45.D$D41.D46.D$D11.D.D24.2D.D46.D$D12.D24.2D49.D$D10.2D25.D.3D46.D$D
10.D2.D25.D3.2D43.D$D9.2D.2D25.D5.D42.D$D45.D42.D$D36.2D3.D.D44.D$D
36.2D50.D$D37.D50.D$D35.2D29.D21.D$D35.2D28.D22.D$D35.D29.3D20.D$D33.
2D53.D$D33.3D20.A31.D$D55.A.A13.2A15.D$D14.2D15.D24.2A13.2A15.D$D14.
2D15.2D55.D$D32.2D54.D$D32.D23.A31.D$D27.3D.D23.A.A30.D$D27.3D26.2A
30.D$D88.D$D79.2A7.D$D22.2D55.2A7.D$D22.2D64.D$D88.D$D88.D$D88.D$D61.
2A25.D$D61.2A25.D$D88.D$D46.A4.A36.D$D45.A.A2.A.A35.D$D46.2A3.2A35.D$
D88.D$D88.D$D47.3D38.D$D49.D38.D$D48.D39.D$D57.2A29.D$D56.A2.A28.D$D
57.2A29.D$D88.D$D88.D$D88.D$D88.D$D88.D$D46.2A40.D$D46.2A40.D$D88.D$D
88.D$D88.D$D88.D$D88.D$D88.D$D88.D$D88.D$90D4$90F$F88.F$F88.F$F88.F$F
88.F$F88.F$F88.F$F88.F$F88.F$F88.F$F88.F$F23.D64.F$F22.D.D63.F$F88.F$
F22.D2.D62.F$F24.2D62.F$F25.D62.F$F39.2D47.F$F39.2D47.F$F88.F$F88.F$F
22.2D64.F$F24.D63.F$F23.2D63.F$F22.3D63.F$F22.2D23.2D39.F$F21.3D.D21.
2D39.F$F22.D3.D61.F$F24.D2.D60.F$F24.3D61.F$F11.D13.2D13.D47.F$F8.4D
28.2D46.F$F40.2D46.F$F42.D45.F$F41.D46.F$F11.D.D24.2D.D46.F$F12.D24.
2D49.F$F10.2D25.D.3D46.F$F10.D2.D25.D3.2D43.F$F9.2D.2D25.D5.D42.F$F
45.D42.F$F36.2D3.D.D44.F$F36.2D50.F$F37.D50.F$F35.2D51.F$F35.2D51.F$F
35.D52.F$F33.2D53.F$F33.3D52.F$F88.F$F14.2D15.D56.F$F14.2D15.2D55.F$F
32.2D54.F$F32.D55.F$F27.3D.D56.F$F27.3D58.F$F88.F$F88.F$F22.2D64.F$F
22.2D64.F$F88.F$F88.F$F88.F$F88.F$F88.F$F88.F$F88.F$F88.F$F88.F$F88.F
$F88.F$F88.F$F88.F$F88.F$F88.F$F88.F$F88.F$F88.F$F88.F$F88.F$F88.F$F
88.F$F88.F$F88.F$F88.F$F88.F$F88.F$F88.F$F88.F$F88.F$F88.F$F88.F$F88.
F$F88.F$F88.F$F88.F$F88.F$F88.F$F88.F$90F!
I don't really like having both inputs and outputs marked in the same color. But on the other hand, I don't really want to use blue state 2 to mark anything, because it's hard to see. And I don't want to use ON states 3 or 5, because it seems like it should be possible to paste all the components together to solve the puzzle without going through afterward and deleting a lot of extra signals that shouldn't be there.

... When inventing LifeHistory I clearly should have put in two marked OFF states to go with the two different marked ON states. Well, live and learn!

Here are three somewhat easier versions of the Cordership Seed puzzle:

Code: Select all

x = 320, y = 255, rule = LifeHistory
90D25.90D25.90D$D28.D29.D29.D25.D28.D29.D29.D25.D28.D29.D29.D$D28.D
29.D29.D25.D28.D29.D29.D25.D28.D29.D29.D$D28.D29.D29.D25.D28.D29.D29.
D25.D28.D29.D29.D$D28.D29.D29.D25.D28.D29.D29.D25.D28.D29.D29.D$D28.D
29.D29.D25.D28.D29.D29.D25.D28.D29.D29.D$D21.2D5.D22.2D5.D22.2D5.D25.
D28.D22.2D5.D22.2D5.D25.D28.D29.D29.D$D7.D12.DBD5.D8.D12.DBD5.D8.D12.
DBD5.D25.D7.D20.D8.D12.DBD5.D8.D12.DBD5.D25.D7.D20.D7.D21.D7.D21.D$D
6.2BD10.3BD5.D7.2BD10.3BD5.D7.2BD10.3BD5.D25.D6.2BD10.3D6.D7.2BD10.3B
D5.D7.2BD10.3BD5.D25.D6.2BD10.3D6.D6.2BD10.3D7.D6.2BD10.3D7.D$D6.3DB
8.4B6.D7.3DB8.4B6.D7.3DB8.4B6.D25.D6.3DB8.3BD6.D7.3DB8.4B6.D7.3DB8.4B
6.D25.D6.3DB8.3BD6.D6.3DB8.3BD7.D6.3DB8.3BD7.D$D7.4B6.4B7.D8.4B6.4B7.
D8.4B6.4B7.D25.D7.4B6.3BD7.D8.4B6.4B7.D8.4B6.4B7.D25.D7.4B6.3BD7.D7.
4B6.3BD8.D7.4B6.3BD8.D$D8.4B4.4B8.D9.4B4.4B8.D9.4B4.4B8.D25.D8.4B4.4B
8.D9.4B4.4B8.D9.4B4.4B8.D25.D8.4B4.4B8.D8.4B4.4B9.D8.4B4.4B9.D$D9.4B
2.4B9.D10.4B2.4B9.D10.4B2.4B9.D25.D9.4B2.4B9.D10.4B2.4B9.D10.4B2.4B9.
D25.D9.4B2.4B9.D9.4B2.4B10.D9.4B2.4B10.D$D10.8B10.D11.8B10.D11.8B10.D
25.D10.8B10.D11.8B10.D11.8B10.D25.D10.8B10.D10.8B11.D10.8B11.D$D11.6B
11.D12.6B11.D12.6B11.D25.D11.6B11.D12.6B11.D12.6B11.D25.D11.6B11.D11.
6B12.D11.6B12.D$D12.4B12.D13.4B12.D13.4B12.D25.D12.4B12.D13.4B12.D13.
4B12.D25.D12.4B12.D12.4B13.D12.4B13.D$D11.5B12.D12.5B12.D12.5B12.D25.
D11.6B11.D12.5B12.D12.5B12.D25.D11.6B11.D11.6B12.D11.6B12.D$D10.6B12.
D11.6B12.D11.6B12.D25.D10.8B10.D11.6B12.D11.6B12.D25.D10.8B10.D10.8B
11.D10.8B11.D$D9.2B2AB14.D10.2B2AB14.D10.2B2AB14.D25.D10.10B8.D10.2B
2AB14.D10.2B2AB14.D25.D10.10B8.D10.10B9.D10.10B9.D$D9.BABAB14.D10.BAB
AB14.D10.BABAB14.D25.D10.7B2A2B7.D10.BABAB14.D10.BABAB14.D25.D10.7B2A
2B7.D10.7B2A2B8.D10.7B2A2B8.D$D9.BA3B14.D10.BA3B14.D10.BA3B14.D25.D
10.6BABA2B7.D10.BA3B14.D10.BA3B14.D25.D10.6BABA2B7.D10.6BABA2B8.D10.
6BABA2B8.D$D9.2A2B15.D10.2A2B15.D10.2A2B15.D25.D11.6BA3B7.D10.2A2B15.
D10.2A2B15.D25.D11.6BA3B7.D11.6BA3B8.D11.6BA3B8.D$D28.D29.D29.D25.D
16.3B9.D29.D29.D25.D16.3B9.D16.3B10.D16.3B10.D$D28.D29.D29.D25.D28.D
29.D29.D25.D28.D29.D29.D$D28.D29.D29.D25.D28.D29.D29.D25.D28.D29.D29.
D$D28.D29.D29.D25.D28.D29.D29.D25.D28.D29.D29.D$D28.D29.D29.D25.D28.D
29.D29.D25.D28.D29.D29.D$D28.D29.D29.D25.D28.D29.D29.D25.D28.D29.D29.
D$D28.D29.D29.D25.D28.D29.D29.D25.D28.D29.D29.D$D28.D29.D29.D25.D28.D
29.D29.D25.D28.D29.D29.D$D28.D29.D29.D25.D28.D29.D29.D25.D28.D29.D29.
D$D28.D29.D29.D25.D28.D29.D29.D25.D28.D29.D29.D$90D25.90D25.90D$D28.D
59.D25.D28.D59.D25.D28.D59.D$D28.D59.D25.D28.D59.D25.D28.D59.D$D28.D
59.D25.D28.D59.D25.D28.D59.D$D28.D59.D25.D28.D59.D25.D28.D59.D$D28.D
30.D28.D25.D28.D30.D28.D25.D28.D30.D28.D$D21.2D5.D29.2DB27.D25.D28.D
29.2DB27.D25.D28.D29.2DB27.D$D7.D12.DBD5.D29.DBDB26.D25.D7.D20.D29.DB
DB26.D25.D7.D20.D29.DBDB26.D$D6.2BD10.3BD5.D30.4B25.D25.D6.2BD10.3D6.
D30.4B25.D25.D6.2BD10.3D6.D30.4B25.D$D6.3DB8.4B6.D31.4B24.D25.D6.3DB
8.3BD6.D31.4B24.D25.D6.3DB8.3BD6.D31.4B24.D$D7.4B6.4B7.D30.6B23.D25.D
7.4B6.3BD7.D30.6B23.D25.D7.4B6.3BD7.D30.6B23.D$D8.4B4.4B8.D27.BA8B22.
D25.D8.4B4.4B8.D27.BA8B22.D25.D8.4B4.4B8.D27.BA8B22.D$D9.4B2.4B9.D25.
2BABA7B22.D25.D9.4B2.4B9.D25.2BABA7B22.D25.D9.4B2.4B9.D25.2BABA7B22.D
$D10.8B10.D25.2B2A8B22.D25.D10.8B10.D25.2B2A8B22.D25.D10.8B10.D25.2B
2A8B22.D$D11.6B11.D24.13B22.D25.D11.6B11.D24.13B22.D25.D11.6B11.D24.
13B22.D$D12.4B12.D25.12B22.D25.D12.4B12.D25.12B22.D25.D12.4B12.D25.
12B22.D$D11.5B12.D25.10BA3B20.D25.D11.6B11.D25.10BA3B20.D25.D11.6B11.
D25.10BA3B20.D$D10.6B12.D24.10BABA2B20.D25.D10.8B10.D24.10BABA2B20.D
25.D10.8B10.D24.10BABA2B20.D$D9.2B2AB14.D23.12BA3B20.D25.D10.10B8.D
23.12BA3B20.D25.D10.10B8.D23.12BA3B20.D$D9.BABAB14.D22.4B.12B20.D25.D
10.7B2A2B7.D22.4B.12B20.D25.D10.7B2A2B7.D22.4B.12B20.D$D9.BA3B14.D21.
4B2.13B19.D25.D10.6BABA2B7.D21.4B2.13B19.D25.D10.6BABA2B7.D21.4B2.13B
19.D$D9.2A2B15.D20.4B4.13B18.D25.D11.6BA3B7.D20.4B4.13B18.D25.D11.6BA
3B7.D20.4B4.13B18.D$D28.D19.4B6.5B4.4B17.D25.D16.3B9.D19.4B6.5B4.4B
17.D25.D16.3B9.D19.4B6.5B4.4B17.D$D28.D18.4B8.3B6.4B16.D25.D28.D18.4B
8.3B6.4B16.D25.D28.D18.4B8.3B6.4B16.D$D28.D17.4B19.BDBD15.D25.D28.D
17.4B19.BDBD15.D25.D28.D17.4B19.BDBD15.D$D28.D16.4B21.B2D15.D25.D28.D
16.4B21.B2D15.D25.D28.D16.4B21.B2D15.D$D28.D15.2D2B23.D16.D25.D28.D
15.2D2B23.D16.D25.D28.D15.2D2B23.D16.D$D28.D14.DBDB41.D25.D28.D14.DBD
B41.D25.D28.D14.DBDB41.D$D28.D15.BD42.D25.D28.D15.BD42.D25.D28.D15.BD
42.D$D28.D59.D25.D28.D59.D25.D28.D59.D$D28.D59.D25.D28.D59.D25.D28.D
59.D$D28.D59.D25.D28.D59.D25.D28.D59.D$90D25.90D25.90D$D88.D25.D88.D
25.D88.D$D88.D25.D88.D25.D88.D$D88.D25.D88.D25.D88.D$D88.D25.D88.D25.
D88.D$D88.D25.D88.D25.D88.D$D23.D64.D25.D23.D64.D25.D23.D64.D$D22.D.D
63.D25.D22.D.D63.D25.D22.D.D63.D$D88.D25.D88.D25.D88.D$D22.D2.D62.D
25.D22.D2.D62.D25.D22.D2.D62.D$D24.2D62.D25.D24.2D62.D25.D24.2D62.D$D
25.D62.D25.D25.D62.D25.D25.D62.D$D39.2D47.D25.D39.2D47.D25.D39.2D47.D
$D39.2D47.D25.D39.2D47.D25.D39.2D47.D$D88.D25.D88.D25.D88.D$D88.D25.D
88.D25.D88.D$D22.2D64.D25.D22.2D64.D25.D22.2D64.D$D24.D63.D25.D24.D
63.D25.D24.D63.D$D23.2D63.D25.D23.2D63.D25.D23.2D63.D$D22.3D63.D25.D
22.3D63.D25.D22.3D63.D$D22.2D23.2D39.D25.D22.2D23.2D39.D25.D22.2D23.
2D39.D$D21.3D.D21.2D39.D25.D21.3D.D21.2D39.D25.D21.3D.D21.2D39.D$D22.
D3.D61.D25.D22.D3.D61.D25.D22.D3.D61.D$D24.D2.D60.D25.D24.D2.D60.D25.
D24.D2.D60.D$D24.3D61.D25.D24.3D61.D25.D24.3D61.D$D11.D13.2D13.D47.D
25.D11.D13.2D13.D47.D25.D11.D13.2D13.D47.D$D8.4D28.2D46.D25.D8.4D28.
2D46.D25.D8.4D28.2D46.D$D40.2D46.D25.D40.2D46.D25.D40.2D46.D$D42.D45.
D25.D42.D45.D25.D42.D45.D$D41.D46.D25.D41.D46.D25.D41.D46.D$D11.D.D
24.2D.D46.D25.D11.D.D24.2D.D46.D25.D11.D.D24.2D.D46.D$D12.D24.2D49.D
25.D12.D24.2D49.D25.D12.D24.2D19.D29.D$D10.2D25.D.3D46.D25.D10.2D25.D
.3D46.D25.D10.2D25.D.3D15.D30.D$D10.D2.D25.D3.2D43.D25.D10.D2.D25.D3.
2D43.D25.D10.D2.D25.D3.2D12.3D28.D$D9.2D.2D25.D5.D42.D25.D9.2D.2D25.D
5.D42.D25.D9.2D.2D25.D5.D42.D$D45.D42.D25.D45.D42.D25.D45.D2.A39.D$D
36.2D3.D.D44.D25.D36.2D3.D.D44.D25.D36.2D3.D.D3.A.A13.2A23.D$D36.2D
50.D25.D36.2D50.D25.D36.2D10.2A13.2A23.D$D37.D50.D25.D37.D50.D25.D37.
D50.D$D35.2D29.D21.D25.D35.2D29.D21.D25.D35.2D51.D$D35.2D28.D22.D25.D
35.2D28.D22.D25.D35.2D11.A39.D$D35.D29.3D20.D25.D35.D29.3D20.D25.D35.
D11.A.A38.D$D33.2D53.D25.D33.2D53.D25.D33.2D13.2A38.D$D33.3D20.A31.D
25.D33.3D20.A31.D25.D33.3D52.D$D55.A.A13.2A15.D25.D55.A.A13.2A15.D25.
D71.2A15.D$D14.2D15.D24.2A13.2A15.D25.D14.2D15.D24.2A13.2A15.D25.D14.
2D15.D39.2A15.D$D14.2D15.2D55.D25.D14.2D15.2D55.D25.D14.2D15.2D55.D$D
32.2D54.D25.D32.2D54.D25.D32.2D54.D$D32.D23.A31.D25.D32.D23.A31.D25.D
32.D55.D$D27.3D.D23.A.A30.D25.D27.3D.D23.A.A30.D25.D27.3D.D56.D$D27.
3D26.2A30.D25.D27.3D26.2A30.D25.D27.3D23.2A33.D$D88.D25.D88.D25.D53.
2A33.D$D79.2A7.D25.D79.2A7.D25.D88.D$D22.2D55.2A7.D25.D22.2D55.2A7.D
25.D22.2D14.A4.A44.D$D22.2D64.D25.D22.2D64.D25.D22.2D13.A.A2.A.A43.D$
D88.D25.D88.D25.D38.2A3.2A43.D$D88.D25.D88.D25.D88.D$D88.D25.D88.D25.
D88.D$D61.2A25.D25.D61.2A25.D25.D39.3D46.D$D61.2A25.D25.D61.2A25.D25.
D41.D46.D$D88.D25.D88.D25.D40.D47.D$D46.A4.A36.D25.D46.A4.A36.D25.D
49.2A37.D$D45.A.A2.A.A35.D25.D45.A.A2.A.A35.D25.D48.A2.A36.D$D46.2A3.
2A35.D25.D46.2A3.2A35.D25.D49.2A37.D$D88.D25.D88.D25.D88.D$D88.D25.D
88.D25.D88.D$D47.3D38.D25.D47.3D38.D25.D88.D$D49.D38.D25.D49.D38.D25.
D88.D$D48.D39.D25.D48.D39.D25.D88.D$D57.2A29.D25.D57.2A29.D25.D38.2A
48.D$D56.A2.A28.D25.D56.A2.A28.D25.D38.2A48.D$D57.2A29.D25.D57.2A29.D
25.D88.D$D88.D25.D88.D25.D88.D$D88.D25.D88.D25.D88.D$D88.D25.D88.D25.
D88.D$D88.D25.D88.D25.D88.D$D88.D25.D88.D25.D88.D$D46.2A40.D25.D46.2A
40.D25.D88.D$D46.2A40.D25.D46.2A40.D25.D88.D$D88.D25.D88.D25.D88.D$D
88.D25.D88.D25.D88.D$D88.D25.D88.D25.D88.D$D88.D25.D88.D25.D88.D$D88.
D25.D88.D25.D88.D$D88.D25.D88.D25.D88.D$D88.D25.D88.D25.D88.D$D88.D
25.D88.D25.D88.D$90D25.90D25.90D3$230.90F$90F25.90F25.F88.F$F88.F25.F
88.F25.F88.F$F88.F25.F88.F25.F88.F$F88.F25.F88.F25.F88.F$F88.F25.F88.
F25.F88.F$F88.F25.F88.F25.F18.D69.F$F18.D69.F25.F18.D69.F25.F17.D.D
68.F$F17.D.D68.F25.F17.D.D68.F25.F88.F$F88.F25.F88.F25.F17.D2.D67.F$F
17.D2.D67.F25.F17.D2.D67.F25.F19.2D67.F$F19.2D67.F25.F19.2D67.F25.F
20.D67.F$F20.D67.F25.F20.D67.F25.F34.2D52.F$F34.2D52.F25.F34.2D52.F
25.F34.2D52.F$F34.2D52.F25.F34.2D52.F25.F88.F$F88.F25.F88.F25.F88.F$F
88.F25.F88.F25.F17.2D69.F$F17.2D69.F25.F17.2D69.F25.F19.D68.F$F19.D
68.F25.F19.D68.F25.F18.2D68.F$F18.2D68.F25.F18.2D68.F25.F17.3D68.F$F
17.3D68.F25.F17.3D68.F25.F17.2D23.2D44.F$F17.2D23.2D44.F25.F17.2D23.
2D44.F25.F16.3D.D21.2D44.F$F16.3D.D21.2D44.F25.F16.3D.D21.2D44.F25.F
17.D3.D66.F$F17.D3.D66.F25.F17.D3.D66.F25.F19.D2.D65.F$F19.D2.D65.F
25.F19.D2.D65.F25.F19.3D66.F$F19.3D66.F25.F19.3D66.F25.F6.D13.2D13.D
52.F$F6.D13.2D13.D52.F25.F6.D13.2D13.D52.F25.F3.4D28.2D51.F$F3.4D28.
2D51.F25.F3.4D28.2D51.F25.F35.2D51.F$F35.2D51.F25.F35.2D51.F25.F37.D
50.F$F37.D50.F25.F37.D50.F25.F36.D51.F$F36.D51.F25.F36.D51.F25.F6.D.D
24.2D.D51.F$F6.D.D24.2D.D51.F25.F6.D.D24.2D.D51.F25.F7.D24.2D54.F$F7.
D24.2D54.F25.F7.D24.2D54.F25.F5.2D25.D.3D51.F$F5.2D25.D.3D51.F25.F5.
2D25.D.3D51.F25.F5.D2.D25.D3.2D48.F$F5.D2.D25.D3.2D48.F25.F5.D2.D25.D
3.2D48.F25.F4.2D.2D25.D5.D47.F$F4.2D.2D25.D5.D47.F25.F4.2D.2D25.D5.D
47.F25.F40.D47.F$F40.D47.F25.F40.D47.F25.F31.2D3.D.D49.F$F31.2D3.D.D
49.F25.F31.2D3.D.D49.F25.F31.2D55.F$F31.2D55.F25.F31.2D55.F25.F32.D
55.F$F32.D55.F25.F32.D55.F25.F30.2D56.F$F30.2D56.F25.F30.2D56.F25.F
30.2D56.F$F30.2D56.F25.F30.2D56.F25.F30.D57.F$F30.D57.F25.F30.D57.F
25.F28.2D58.F$F28.2D58.F25.F28.2D58.F25.F28.3D57.F$F28.3D57.F25.F28.
3D57.F25.F88.F$F88.F25.F88.F25.F9.2D15.D61.F$F9.2D15.D61.F25.F9.2D15.
D61.F25.F9.2D15.2D60.F$F9.2D15.2D60.F25.F9.2D15.2D60.F25.F27.2D59.F$F
27.2D59.F25.F27.2D59.F25.F27.D60.F$F27.D60.F25.F27.D60.F25.F22.3D.D
61.F$F22.3D.D61.F25.F22.3D.D61.F25.F22.3D63.F$F22.3D63.F25.F22.3D63.F
25.F88.F$F88.F25.F88.F25.F88.F$F88.F25.F88.F25.F17.2D69.F$F17.2D69.F
25.F17.2D69.F25.F17.2D69.F$F17.2D69.F25.F17.2D69.F25.F88.F$F88.F25.F
88.F25.F88.F$F88.F25.F88.F25.F88.F$F88.F25.F88.F25.F88.F$F88.F25.F88.
F25.F88.F$F88.F25.F88.F25.F88.F$F88.F25.F88.F25.F88.F$F88.F25.F88.F
25.F88.F$F88.F25.F88.F25.F88.F$F88.F25.F88.F25.F88.F$F88.F25.F88.F25.
F64.B23.F$F55.4B29.F25.F55.4B29.F25.F64.2B22.F$F56.4B28.F25.F56.4B28.
F25.F64.3B21.F$F57.4B27.F25.F57.4B27.F25.F64.4B20.F$F58.4B26.F25.F58.
4B26.F25.F65.4B19.F$F59.4B25.F25.F59.4B25.F25.F66.4B18.F$F60.4B24.F
25.F60.4B24.F25.F67.4B17.F$F61.4B23.F25.F61.4B23.F25.F68.4B16.F$F62.
4B22.F25.F62.4B22.F25.F69.4B15.F$F63.4B21.F25.F63.4B21.F25.F70.4B14.F
$F64.4B20.F25.F64.4B20.F25.F71.4B13.F$F65.4B19.F25.F65.4B19.F25.F72.
4B12.F$F66.B3C18.F25.F66.B3C18.F25.F73.B3C11.F$F67.C2B18.F25.F67.C2B
18.F25.F74.C13.F$F68.CB18.F25.F68.CB18.F25.F75.C12.F$F88.F25.F88.F25.
F88.F$F88.F25.F88.F25.F88.F$F88.F25.F88.F25.F88.F$F88.F25.F88.F25.F
88.F$F88.F25.F88.F25.F88.F$F88.F25.F88.F25.F88.F$F88.F25.F88.F25.F88.
F$F88.F25.F88.F25.F88.F$F88.F25.F88.F25.F88.F$F88.F25.F88.F25.F88.F$F
88.F25.F88.F25.F88.F$F88.F25.F88.F25.F88.F$F88.F25.F88.F25.F88.F$F88.
F25.F88.F25.F88.F$F88.F25.F88.F25.F88.F$F88.F25.F88.F25.F88.F$F88.F
25.F88.F25.F88.F$F88.F25.F88.F25.F88.F$F88.F25.F88.F25.F88.F$F88.F25.
F88.F25.90F$90F25.90F!
I don't know, though -- even these might be kind of tricky depending on familiarity with this kind of thing. Or maybe they're all easier than I think, and I should disassemble more of the seed and make a much harder puzzle.
Feedback much appreciated!

Calling All Puzzle Designers
Anyone want to try putting together a similar sample puzzle for another category? A glider construction of a loafer, let's say, or a multi-stage synthesis of some moderately tricky still life, or your favorite piece of logic circuitry (a Toffoli gate, maybe?) partially disassembled and the puzzle is to put it back together.

On the puzzle design side, it's not too early to start thinking about how server-side code can be set up to automatically verify submitted answers to puzzles, and supply feedback if there's a failure. I guess there will be some boilerplate code for things that get tested for every submission, and then custom tests specific to each puzzle:
Hypothetical PVNServerBot wrote:Your candidate Toffoli gate is not quite a Toffoli gate:
A=0, B=0, C=0 produces A=0, B=0, C=0: Correct!
A=0, B=0 C=1 produces A=0, B=0, C=1: Correct!
A=0, B=1 C=0 produces A=0, B=1, C=1: Incorrect -- should be A=0, B=1, C=0
A=0, B=1, C=1 produces A=0, B=1, C=0: Correct!
A=1, B=0, C=0 produces A=1, B=0, C=0: Correct!
A=1, B=0 C=1 produces A=1, B=0, C=1: Correct!
A=1, B=1 C=0 produces A=1, B=1, C=0: Incorrect -- should be A=1, B=1, C=1
A=1, B=1, C=1 produces A=1, B=1, C=0: Correct!

Gray frame is correct size: TRUE
Pre-placed components present in frame: TRUE
All components used: TRUE
No additional components added: FALSE -- please use only supplied components

Please resolve and resubmit...
Seems like even difficult constructions could be turned into easy puzzles. It all depends on how much of the solution is hidden in the components that are provided.

User avatar
Goldtiger997
Posts: 762
Joined: June 21st, 2016, 8:00 am

Re: Puzzles and "Project von Neumann"

Post by Goldtiger997 » April 17th, 2019, 9:13 pm

This is a very interesting topic!
dvgrn wrote:Calling All Puzzle Designers
Anyone want to try putting together a similar sample puzzle for another category? A glider construction of a loafer, let's say, or a multi-stage synthesis of some moderately tricky still life, or your favorite piece of logic circuitry (a Toffoli gate, maybe?) partially disassembled and the puzzle is to put it back together.
Is this a valid potential glider synthesis puzzle? It would probably be in the low intermediate category:

Code: Select all

x = 60, y = 182, rule = LifeHistory
60D$D29.D28.D$D29.D28.D$D29.D28.D$D29.D28.D$D29.D28.D$D29.D28.D$D29.D
28.D$D9.A19.D8.A19.D$D10.A18.D9.2A17.D$D8.3A18.D8.2A18.D$D16.A12.D28.
D$D15.A13.D13.D14.D$D15.3A11.D12.D.D13.D$D29.D13.2D13.D$D13.2D14.D18.
2A8.D$D13.2D14.D18.A.A7.D$D29.D18.A9.D$D29.D28.D$D29.D28.D$D29.D28.D$
D29.D28.D$D29.D28.D$D29.D28.D$D29.D28.D$D29.D28.D$D29.D28.D$D29.D28.D
$D29.D28.D$60D$D29.D28.D$D29.D28.D$D29.D28.D$D29.D28.D$D29.D28.D$D29.
D28.D$D29.D28.D$D29.D28.D$D29.D28.D$D29.D28.D$D29.D28.D$D29.D14.D13.D
$D29.D13.D.D12.D$D13.3D13.D12.2D.2D11.D$D29.D28.D$D29.D11.2A15.D$D10.
A.A16.D10.A.A15.D$D11.2A2.2A12.D12.A15.D$D11.A2.2A13.D28.D$D16.A12.D
15.2A11.D$D29.D15.A.A10.D$D29.D15.A12.D$D29.D28.D$D29.D28.D$D29.D28.D
$D29.D28.D$D29.D28.D$D29.D28.D$D29.D28.D$60D$D58.D$D58.D$D58.D$D58.D$
D58.D$D58.D$D58.D$D58.D$D58.D$D58.D$D58.D$D58.D$D58.D$D58.D$D58.D$D
58.D$D58.D$D58.D$D58.D$D58.D$D58.D$D33.A24.D$D32.A.A23.D$D33.2A23.D$D
58.D$D30.A27.D$D24.2A3.A.A26.D$D24.2A2.2A.2A25.D$D58.D$D58.D$D58.D$D
58.D$D58.D$D58.D$D58.D$D29.2A27.D$D26.3A.A27.D$D26.2A30.D$D26.2A.A28.
D$D27.A.A28.D$D58.D$D58.D$D58.D$D58.D$D58.D$D58.D$D58.D$D58.D$D58.D$D
58.D$D58.D$D58.D$D58.D$D58.D$D58.D$D58.D$D58.D$D58.D$D58.D$60D2$60F$F
58.F$F58.F$F58.F$F58.F$F58.F$F58.F$F58.F$F58.F$F58.F$F58.F$F58.F$F58.
F$F58.F$F58.F$F58.F$F58.F$F58.F$F58.F$F58.F$F58.F$F58.F$F58.F$F31.D
26.F$F27.2D.D.2D.D22.F$F27.2D.D3.D.D21.F$F30.D4.D22.F$F30.2D26.F$F58.
F$F58.F$F58.F$F58.F$F58.F$F58.F$F58.F$F58.F$F58.F$F58.F$F58.F$F58.F$F
58.F$F58.F$F58.F$F58.F$F58.F$F58.F$F58.F$F58.F$F58.F$F58.F$F58.F$F58.
F$F58.F$F58.F$F58.F$F58.F$F58.F$F58.F$F58.F$F58.F$60F!

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

Re: Puzzles and "Project von Neumann"

Post by dvgrn » April 17th, 2019, 10:57 pm

Goldtiger997 wrote:Is this a valid potential glider synthesis puzzle? It would probably be in the low intermediate category...
Sure, I like that one! Makes me think we'll want to provide some kind of synchronized glider rewinder / fast-forwarder tool in the recommended toolbox.

EDIT: I was able to solve the puzzle fairly quickly with just shift.py. But it would be incredibly nice to have a way to keep the different components together, and to adjust their relative timings with a series of slider bars, or something like that. My ability move gliders around quickly and keep the components synchronized with shift.py is something I've been practicing for years, so I can imagine that it wouldn't be at all intuitive to someone who is picking up these kinds of puzzles for the first time.

I'm curious as to whether I found the intended solution, and how many other equally good solutions there are. Should the verification code for this puzzle just check that the number of gliders is correct, and that the gliders can be rewound to infinity, and that the result of colliding the gliders is the correct still life in the correct location in the frame? Or should we also find some way to check that all the given components have been used? It would probably be easy to use a different block recipe, for example; should that count, or should it be disqualified somehow?

Code: Select all

x = 60, y = 61, rule = LifeHistory
60F$F58.F$F58.F$F58.F$F58.F$F58.F$F58.F$F58.F$F58.F$F58.F$F21.A36.F$F
22.A35.F$F10.A9.3A35.F$F8.A.A47.F$F9.2A47.F$F58.F$F58.F$F58.F$F58.F$F
58.F$F58.F$F12.A45.F$F10.A.A45.F$F11.2A18.D26.F$F27.2D.D.2D.D22.F$F
27.2D.D3.D.D21.F$F30.D4.D22.F$F30.2D26.F$F58.F$F58.F$F58.F$F58.F$F58.
F$F46.2A10.F$F45.2A11.F$F47.A10.F$F58.F$F58.F$F58.F$F58.F$F42.2A14.F$
F42.A.A13.F$F42.A15.F$F6.2A50.F$F5.A.A10.2A38.F$F7.A9.A.A38.F$F19.A
38.F$F58.F$F58.F$F58.F$F42.3A13.F$F42.A15.F$F43.A14.F$F58.F$F58.F$F
58.F$F58.F$F58.F$F58.F$F58.F$60F!
At some point Catagolue might well start serving up a cheaper glider synthesis for this object, and it seems like we wouldn't want to give a "solved" rating to a copy-paste of let's say a 5-glider collision, plus two more gliders colliding uselessly off in a corner. Or should we just not worry about that kind of thing?

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

Re: Puzzles and "Project von Neumann"

Post by dvgrn » April 25th, 2019, 6:20 pm

Another possible type of puzzle, starting out easy:

Code: Select all

x = 46, y = 69, rule = LifeHistory
46D$D23.D20.D$D23.D20.D$D18.2D3.D20.D$D4.D12.DBD3.D20.D$D3.2BD10.3BD
3.D5.D14.D$D3.3DB8.4B4.D3.D.DB13.D$D4.4B6.4B5.D4.2D2B12.D$D5.4B4.4B6.
D5.4B11.D$D6.4B2.4B7.D6.4B10.D$D7.8B8.D7.2B11.D$D8.6B9.D7.4B9.D$D9.4B
10.D8.B2AB8.D$D8.5B10.D7.A2BA2B7.D$D7.6B10.D7.2A5B6.D$D6.2B2AB12.D11.
4B5.D$D6.BABAB12.D12.3BD4.D$D6.BA3B12.D13.3BD3.D$D6.2A2B13.D14.3D3.D$
D23.D20.D$D23.D20.D$D23.D20.D$46D3$46F$F44.F$F44.F$F44.F$F20.2A4.3D
15.F$F21.A3.3BD15.F$F20.A4.2BD16.F$F19.A5.2B17.F$F18.A25.F$F17.A26.F$
F16.A27.F$F15.A10.2A16.F$F14.A10.A.A16.F$F13.A10.A19.F$F12.A10.A20.F$
F11.A10.A21.F$F10.A10.A22.F$F9.A10.A23.F$F6.A.A10.A24.F$F6.2A10.A25.F
$F17.A26.F$F16.A27.F$F15.A28.F$F14.A29.F$F14.2A28.F$F44.F$F44.F$F44.F
$F44.F$F44.F$F44.F$F44.F$F44.F$F16.3A25.F$F16.A27.F$F17.A26.F$F44.F$F
44.F$F44.F$F44.F$F44.F$F44.F$F44.F$46F!
Anything in the gray box is a fixed part of the puzzle, so you don't get to move the glider or the long^N canoe obstacles. The green glider has to reach the red location.

Maybe these could be made into cleanup/deletion puzzles: instead of a glider having to appear in the right place, a marked set of objects have to be deleted cleanly, leaving as little junk as possible. Maybe a "good enough" solution would reduce the population below some threshold level, but it might be possible to do better by finding additional optimizations.

The objects to be deleted wouldn't have to be stationary; maybe sometimes the object is to successfully eat or absorb spaceships or gliders. Here's a puzzle where the idea is to rescue three eaters from incoming gliders, by dropping in a fourth eater. The dropped-in eater should be destroyed but the others should all remain unharmed:

Code: Select all

x = 65, y = 98, rule = LifeHistory
31D$D29.D$D29.D$D29.D$D29.D$D29.D$D29.D$D8.BD19.D$D7.DBDB18.D$D8.2D2B
17.D$D9.4B5.3BA7.D$D10.4B3.2B3A7.D$D11.4B.2BA3B7.D$D12.6B2A2B7.D$D13.
8B8.D$D13.5B11.D$D12.6B11.D$D11.4B14.D$D10.4B15.D$D9.4B16.D$D8.4B17.D
$D7.D3B18.D$D6.D3B19.D$D6.3D20.D$D29.D$D29.D$D29.D$D29.D$D29.D$D29.D$
D29.D$31D4$65F$F63.F$F63.F$F63.F$F63.F$F63.F$F63.F$F63.F$F43.E19.F$F
43.3E17.F$F46.E16.F$F45.2E16.F$F63.F$F63.F$F63.F$F29.A23.2E8.F$F30.A
23.E8.F$F28.3A20.3E9.F$F51.E11.F$F63.F$F63.F$F63.F$F63.F$F63.F$F63.F$
F63.F$F63.F$F63.F$F63.F$F63.F$F63.F$F63.F$F63.F$F63.F$F63.F$F63.F$F
63.F$F52.2E9.F$F53.E9.F$F50.3E10.F$F50.E12.F$F22.3A38.F$F24.A38.F$F
23.A39.F$F63.F$F63.F$F63.F$F63.F$F63.F$F63.F$F63.F$F63.F$F6.3A54.F$F
8.A54.F$F7.A55.F$F63.F$F63.F$F63.F$F63.F$F63.F$F63.F$F63.F$65F!
Valid solutions should use the mechanism shown (a glider uses the dropped-in eater as a one-time turner, to turn a glider 90 degrees). All three yellow eaters must remain unharmed, and there should be as little extra junk or escaping gliders left over as possible.

The above puzzle can be solved with a leftover junk population of 10 or 5 or 0, without rotating or reflecting the drop-in eater component.

Either that version or the version below also have "cheat" solutions where you use the component as a simple obstacle and not as a one-time turner -- also leaving no leftover junk. But there's also an answer to both puzzles where the turner does not send its output glider to collide with another glider.

Code: Select all

x = 65, y = 98, rule = LifeHistory
31D$D29.D$D29.D$D29.D$D29.D$D29.D$D29.D$D29.D$D29.D$D29.D$D29.D$D12.B
D3.4B8.D$D11.DBDB.6B7.D$D12.2D8B7.D$D13.9B7.D$D13.9B7.D$D12.D9B7.D$D
11.D3B.4BA2B6.D$D11.3D3.2BABAB6.D$D18.B2A2B6.D$D18.4B7.D$D19.3B7.D$D
29.D$D29.D$D29.D$D29.D$D29.D$D29.D$D29.D$D29.D$D29.D$31D4$65F$F63.F$F
63.F$F63.F$F63.F$F63.F$F63.F$F63.F$F43.A19.F$F43.3A17.F$F46.A16.F$F
45.2A16.F$F63.F$F63.F$F63.F$F53.2A8.F$F54.A8.F$F51.3A9.F$F51.A11.F$F
33.A29.F$F34.A28.F$F32.3A28.F$F63.F$F63.F$F63.F$F63.F$F63.F$F63.F$F
63.F$F63.F$F63.F$F63.F$F63.F$F63.F$F63.F$F63.F$F63.F$F52.2A9.F$F53.A
9.F$F50.3A10.F$F23.A26.A12.F$F23.2A38.F$F22.A.A38.F$F63.F$F63.F$F63.F
$F63.F$F63.F$F63.F$F63.F$F63.F$F63.F$F6.3A54.F$F8.A54.F$F7.A55.F$F63.
F$F63.F$F63.F$F63.F$F63.F$F63.F$F63.F$65F!
So I guess the metapuzzle is: how can this puzzle be set up so that the gliders-don't-crash-into-each-other solution becomes the only solution? Maybe don't have a turner at all, and have one of the gliders be a component instead -- and forbid re-orienting it?

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

Re: Puzzles and "Project von Neumann"

Post by dvgrn » April 26th, 2019, 11:59 am

dvgrn wrote:Maybe these could be made into cleanup/deletion puzzles: instead of a glider having to appear in the right place, a marked set of objects have to be deleted cleanly, leaving as little junk as possible. Maybe a "good enough" solution would reduce the population below some threshold level, but it might be possible to do better by finding additional optimizations.
Let's see, maybe something like this? Get to a target population of zero by adding the two given components:

Code: Select all

x = 49, y = 67, rule = LifeHistory
31D$D14.D14.D$D14.D14.D$D14.D14.D$D14.D14.D$D14.D14.D$D5.3C6.D14.D$D
5.C8.D6.2A6.D$D6.C7.D6.2A6.D$D14.D14.D$D14.D14.D$D14.D14.D$D14.D14.D$
D14.D14.D$31D4$49F$F47.F$F47.F$F47.F$F47.F$F47.F$F47.F$F47.F$F47.F$F
47.F$F47.F$F47.F$F47.F$F47.F$F47.F$F47.F$F47.F$F47.F$F47.F$F18.2A27.F
$F18.2A27.F$F47.F$F47.F$F47.F$F47.F$F47.F$F47.F$F47.F$F47.F$F47.F$F
34.2A11.F$F34.2A11.F$F47.F$F47.F$F47.F$F47.F$F29.2A16.F$F29.2A16.F$F
47.F$F47.F$F47.F$F47.F$F47.F$F47.F$F47.F$F47.F$F47.F$F47.F$49F!
And along the same lines,

Code: Select all

x = 49, y = 67, rule = LifeHistory
31D$D14.D14.D$D14.D14.D$D14.D14.D$D14.D14.D$D14.D14.D$D5.3C6.D14.D$D
5.C8.D6.2A6.D$D6.C7.D6.2A6.D$D14.D14.D$D14.D14.D$D14.D14.D$D14.D14.D$
D14.D14.D$31D4$49F$F47.F$F47.F$F47.F$F47.F$F47.F$F47.F$F47.F$F47.F$F
47.F$F47.F$F47.F$F47.F$F47.F$F18.2A27.F$F18.2A27.F$F47.F$F47.F$F47.F$
F47.F$F47.F$F47.F$F47.F$F47.F$F47.F$F47.F$F47.F$F47.F$F47.F$F47.F$F
47.F$F28.2A17.F$F28.2A17.F$F47.F$F47.F$F47.F$F47.F$F47.F$F47.F$F47.F$
F47.F$F47.F$F47.F$F47.F$F47.F$F47.F$F47.F$F47.F$49F!
Some kind of library reference is probably needed for this one. The stamp collection in turner is a good source.

These kinds of puzzles are easy to make very quickly. Here again, add the components to make a final population of zero:

Code: Select all

x = 90, y = 124, rule = LifeHistory
61D$D29.D29.D$D29.D29.D$D29.D29.D$D29.D29.D$D29.D29.D$D29.D29.D$D29.D
29.D$D29.D29.D$D29.D29.D$D29.D29.D$D12.2D4.D10.D29.D$D12.DBD2.D2B9.D
29.D$D12.D4B3D9.D29.D$D13.6B10.D13.C15.D$D14.4B11.D14.C14.D$D13.6B10.
D12.3C14.D$D12.8B9.D29.D$D10.10B9.D29.D$D9.2B2A7B9.D29.D$D9.2BABA6B9.
D29.D$D9.3BA6B10.D29.D$D11.3B15.D29.D$D29.D29.D$D29.D29.D$D29.D29.D$D
29.D29.D$D29.D29.D$D29.D29.D$D29.D29.D$D29.D29.D$61D3$90F$F88.F$F88.F
$F88.F$F88.F$F88.F$F88.F$F88.F$F88.F$F88.F$F88.F$F88.F$F88.F$F88.F$F
88.F$F88.F$F88.F$F88.F$F88.F$F88.F$F88.F$F88.F$F88.F$F88.F$F88.F$F88.
F$F88.F$F88.F$F88.F$F88.F$F88.F$F88.F$F88.F$F88.F$F88.F$F88.F$F88.F$F
88.F$F88.F$F88.F$F88.F$F54.2A.2A29.F$F54.2A.2A29.F$F88.F$F54.2A.2A29.
F$F54.2A.2A29.F$F88.F$F54.2A.2A29.F$F54.2A.2A29.F$F88.F$F88.F$F88.F$F
88.F$F88.F$F88.F$F88.F$F88.F$F88.F$F88.F$F88.F$F25.2A.2A.2A55.F$F25.
2A.2A.2A55.F$F88.F$F25.2A.2A.2A55.F$F25.2A.2A.2A55.F$F88.F$F88.F$F88.
F$F88.F$F88.F$F88.F$F88.F$F88.F$F88.F$F88.F$F88.F$F88.F$F88.F$F88.F$F
88.F$F88.F$F88.F$F88.F$F88.F$F88.F$F88.F$F88.F$F88.F$F88.F$90F!
But I don't know if they're any fun to solve. Can someone try a few of them and give an opinion? It doesn't have to be a positive opinion. Maybe this last one would be better with just one added component, like this (additional hint at end of RLE):

Code: Select all

x = 90, y = 124, rule = LifeHistory
31D$D29.D$D29.D$D29.D$D29.D$D29.D$D29.D$D29.D$D29.D$D29.D$D29.D$D10.C
4.2D12.D$D9.2BC2.DBD12.D$D9.3C4BD12.D$D10.6B13.D$D11.4B14.D$D10.6B13.
D$D9.8B12.D$D9.10B10.D$D9.7B2A2B9.D$D9.6BABA2B9.D$D10.6BA3B9.D$D15.3B
11.D$D29.D$D29.D$D29.D$D29.D$D29.D$D29.D$D29.D$D29.D$31D3$90F$F88.F$F
88.F$F88.F$F88.F$F88.F$F88.F$F88.F$F88.F$F88.F$F88.F$F88.F$F88.F$F88.
F$F88.F$F88.F$F88.F$F88.F$F88.F$F88.F$F88.F$F88.F$F88.F$F88.F$F88.F$F
88.F$F88.F$F88.F$F88.F$F88.F$F88.F$F88.F$F88.F$F88.F$F88.F$F88.F$F88.
F$F88.F$F88.F$F88.F$F88.F$F54.2A.2A29.F$F54.2A.2A29.F$F88.F$F54.2A.2A
29.F$F54.2A.2A29.F$F88.F$F54.2A.2A29.F$F54.2A.2A29.F$F88.F$F88.F$F88.
F$F88.F$F88.F$F88.F$F88.F$F88.F$F88.F$F88.F$F88.F$F25.2A.2A.2A55.F$F
25.2A.2A.2A55.F$F88.F$F25.2A.2A.2A55.F$F25.2A.2A.2A55.F$F88.F$F88.F$F
88.F$F88.F$F88.F$F88.F$F88.F$F88.F$F88.F$F88.F$F88.F$F88.F$F88.F$F88.
F$F88.F$F88.F$F88.F$F88.F$F88.F$F88.F$F88.F$F88.F$F88.F$F88.F$90F!
#C There's a solution with no reorientation of the component.

hkoenig
Posts: 258
Joined: June 20th, 2009, 11:40 am

Re: Puzzles and "Project von Neumann"

Post by hkoenig » April 26th, 2019, 1:50 pm

If you are serious about this, you need to consider doing it in a dedicated application. One where the interface constrains the player's actions and only allows valid, legal operations and moves, and does not clutter up the view with controls and widgets that dont pertain to the puzzle you are trying to present.

In these cases, for example, the user should only be able to move and manipulate objects, and only those objects, not have to cut and paste and manipulate individual bit patterns.

Also, there should be immediate feedback. Place a Glider aimed at an object, and the display will immediately show the results. Shift or transform the Glider, and the new results will be immediately displayed. Do not require any sort of "Run It" button or gesture. (Or course, a "scrubber" control which allows the animation of the evolution of the pattern would be required so the user can see and get a feel for what happens from beginning to end.)

In otherwords, if you are going to "gamify" this, then do it right and make the game mechanics a primary consideration, not an afterthought.

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

Re: Puzzles and "Project von Neumann"

Post by dvgrn » April 26th, 2019, 2:29 pm

hkoenig wrote:If you are serious about this, you need to consider doing it in a dedicated application.
...
In otherwords, if you are going to "gamify" this, then do it right and make the game mechanics a primary consideration, not an afterthought.
Oh, it's definitely under consideration. See the first post for a screenshot of the vaporware dedicated Project von Neumann app. Or if the Puzzle Editor is implemented as a Lua script inside Golly, it could double as a "component editor" to make it easier to snap signal circuits together: only allow diagonal motion on components connected by gliders, adjust the timing on bumper and bouncer oscillators when the reflector is moved, auto-weld all the common Snark+Snark and Snark+syringe combinations, etc.

The problem is that it's not worth building a dedicated application if it's going to turn out that puzzles like this aren't really very interesting to anyone anyway. So it's worth going ahead and building some sample puzzles. If nothing else, this should help make it clear what game mechanics are going to be needed. Different types of puzzles turn up different possible features.

Meanwhile, LifeHistory offers a reasonably convenient way of encoding puzzles so that all the required information is available. The sample puzzles above could be imported into a dedicated application fairly easily.

Until that application exists, I'm looking for some feedback on the puzzles themselves. They're solvable in Golly easily enough, even if you have to imagine features like the Seeds-of-Destruction-Game-like instant feedback.

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

Re: Puzzles and "Project von Neumann"

Post by dvgrn » June 4th, 2019, 4:08 pm

Spoiler alert: I'm posting answers here to the various puzzles posted so far.

First puzzle: the six pieces can be combined as follows.

Code: Select all

x = 270, y = 217, rule = LifeHistory
130D$D22.D31.D33.D39.D$D22.D31.D33.D39.D$D22.D2.BD27.D3.BD28.D3.BD34.
D$D22.D2.2BD23.B2.D3.2BD23.B3.D3.2BD23.B9.D$D22.D2.3DB21.2B2.D3.3DB
21.2B3.D3.3DB21.2B9.D$D22.D3.4B19.3D2.D4.4B19.3D3.D4.4B19.3D9.D$D22.D
4.4B10.A6.3BD2.D5.4B10.A6.3BD3.D5.4B10.A6.3BD9.D$D22.D5.4B7.3A5.3BD3.
D6.4B7.3A5.3BD4.D6.4B7.3A5.3BD10.D$D22.D6.4B5.A7.4B4.D7.4B5.A7.4B5.D
7.4B5.A7.4B11.D$D2.D19.D7.4B4.2A5.4B5.D8.4B4.2A5.4B6.D8.4B4.2A5.4B12.
D$D.2BD18.D8.9B4.4B6.D9.9B4.4B7.D9.9B4.4B13.D$D.3DB17.D9.6B5.4B7.D10.
6B5.4B8.D10.6B5.4B14.D$D2.4B10.DBD3.D9.8B2.4B8.D10.8B2.4B9.D10.8B2.4B
15.D$D3.4B8.B2DB3.D7.15B9.D8.15B10.D8.15B16.D$D4.4B6.3BD4.D7.14B10.D
8.14B11.D8.14B17.D$D5.5B3.4B5.D7.13B11.D8.13B12.D8.13B18.D$D6.5B.4B6.
D5.2AB.10B12.D6.2AB.10B13.D6.2AB.10B19.D$D7.8B7.D4.A.AB3.B2A3B14.D5.A
.AB3.B2A3B15.D5.A.AB3.B2A3B21.D$D7.2B2D3B8.D4.A6.B2A3B14.D5.A6.B2A3B
15.D5.A6.B2A3B21.D$D8.BDBD2B8.D3.2A6.4B16.D4.2A6.4B17.D4.2A6.4B23.D$D
10.BDB9.D12.3B16.D13.3B17.D13.3B23.D$D11.2D9.D13.2B.BA13.D14.2B.BA14.
D14.2B.BA20.D$D22.D12.B2ABA.A12.D13.B2ABA.A13.D13.B2ABA.A19.D$D22.D
11.BABABA.A12.D12.BABABA.A13.D12.BABABA.A19.D$D22.D9.A2.A.A.A.A.2A9.D
10.A2.A.A.A.A.2A10.D10.A2.A.A.A.A.2A16.D$D22.D9.4A.2A2.A2.A9.D10.4A.
2A2.A2.A10.D10.4A.2A2.A2.A16.D$D22.D13.A4.2A11.D14.A4.2A12.D14.A4.2A
18.D$D22.D11.A.A17.D12.A.A18.D12.A.A24.D$D22.D11.2A18.D12.2A19.D12.2A
25.D$D22.D31.D33.D39.D$D22.D31.D33.D39.D$130D$D88.D39.D$D88.D39.D$D
38.2B2D46.D3.BD25.B8.D$D39.2D2B45.D3.2BD23.2B8.D$D40.BD2B44.D3.3DB21.
3B8.D$D41.4B43.D4.4B19.3DB8.D$D42.4B42.D5.4B10.A6.3BD9.D$D43.4B41.D6.
4B7.3A5.3BD10.D$D44.4B40.D7.4B5.A7.4B11.D$D45.4B39.D8.4B4.2A5.4B12.D$
D46.4B38.D9.9B4.4B13.D$D47.4B37.D10.6B5.4B14.D$D48.4B36.D10.8B2.4B15.
D$D49.4B35.D8.15B16.D$D6.D43.4B15.2A17.D8.14B17.D$D7.D23.A19.4B13.B2A
2B15.D8.13B18.D$D5.3DB22.3A12.B.3B.4B12.5B15.D6.2AB.10B19.D$D6.4B24.A
10.18B5.5B15.D5.A.AB3.B2A3B21.D$D7.4B10.A11.2A3.B5.2B2A16B3.6B15.D5.A
6.B2A3B21.D$D8.4B7.3A11.8B3.2B2A16B.8B15.D4.2A6.4B23.D$D9.4B5.A16.8B.
29B7.2A6.D13.3B23.D$D10.4B4.2A15.39B6.A7.D14.2B.BA20.D$D3.2A6.9B14.
15B.2B2.21B2.BA.A7.D13.B2ABA.A19.D$D4.A7.6B14.17B8.19B.B2A8.D12.BABAB
A.A19.D$D4.A.2A5.6B3.B2.2B2.19B11.19B10.D10.A2.A.A.A.A.2A16.D$D5.A2.A
4.19B.15B12.18B10.D10.4A.2A2.A2.A16.D$D6.2AB3.20B.B.4B.7B12.19B10.D
14.A4.2A18.D$D7.14B2A9B3.13B11.19B10.D12.A.A24.D$D8.13B2A11B.14B8.2AB
.3B2.12B10.D12.2A25.D$D9.29B2.8B8.A.AB6.10B.B2A8.D39.D$D9.17B.4B11.6B
8.A8.10B2.BA.A7.D39.D$D10.15B3.2B12.5B8.2A7.9B7.A7.D39.D$D10.15B3.B
14.4B16.10B7.2A6.D39.D$D11.13B5.A3.2A8.3B16.4B.6B15.D39.D$D13.13B2.A.
A3.A9.4B13.4B3.B.B17.D39.D$D12.8B4.2A.A.A3.A12.2A12.D3B5.3B16.D39.D$D
12.6B6.2ABA4.A13.A12.BDBD5.B2AB16.D39.D$D12.5B8.B2.5A.A12.3A8.2B2D7.
2A17.D39.D$D12.B.B5.2A.A.2A.A4.A.A13.A7.4B27.D39.D$D13.3B4.A.2A.A2.A.
2A2.A21.4B28.D39.D$D12.B2AB11.2A.A.2A21.4B29.D39.D$D13.2A39.4B30.D39.
D$D53.4B31.D39.D$D52.4B32.D39.D$D51.4B33.D39.D$D50.4B34.D39.D$D49.4B
35.D39.D$D88.D39.D$130D6$130F10.130F$F128.F10.F128.F$F128.F10.F128.F$
F128.F10.F128.F$F128.F10.F128.F$F128.F10.F128.F$F128.F10.F128.F$F128.
F10.F128.F$F128.F10.F128.F$F128.F10.F128.F$F128.F10.F128.F$F128.F10.F
128.F$F128.F10.F128.F$F128.F10.F67.2A59.F$F128.F10.F67.A.A58.F$F128.F
10.F69.A4.2A52.F$F128.F10.F65.4A.2A2.A2.A50.F$F128.F10.F65.A2.A.A.A.A
.2A50.F$F128.F10.F67.BABABA.A53.F$F128.F10.F68.B2ABA.A53.F$F128.F10.F
69.2B.BA54.F$F128.F10.F68.3B57.F$F128.F10.F59.2A6.4B57.F$F128.F10.F
60.A6.B2A3B55.F$F128.F10.F60.A.AB3.B2A3B55.F$F128.F10.F61.2AB.10B53.F
$F128.F10.F63.13B52.F$F128.F10.F63.14B51.F$F128.F10.F63.15B50.F$F128.
F10.F65.8B2.4B49.F$F2.BC124.F10.F3.C61.6B5.4B48.F$F2.2BC123.F10.F4.C
59.9B4.4B47.F$F2.3CB122.F10.F2.3C58.4B4.2A5.4B46.F$F3.4B121.F10.F62.
4B5.A7.4B45.F$F4.4B120.F10.F49.2A10.4B7.3A5.4B44.F$F5.4B119.F10.F50.A
9.4B10.A6.4B43.F$F6.4B118.F10.F48.A10.4B19.4B42.F$F7.4B117.F10.F48.5A
5.4B5.2A59.F$F8.4B116.F10.F53.A4.4B5.A60.F$F9.4B115.F10.F50.3AB2.7B.B
A.A60.F$F10.4B114.F10.F49.A.2B3.7B.B2A61.F$F11.4B113.F10.F49.4A12B63.
F$F12.4B112.F10.F47.2A2.BA3B2A7B63.F$F13.4B111.F10.F46.A2.3AB.2B2A7B
63.F$F128.F10.F46.2A.A.B3.10B63.F$F128.F10.F49.A8.8B62.F$F128.F10.F
49.2A7.9B61.F$F128.F10.F59.3B2.4B60.F$F128.F10.F57.5B3.4B59.F$F128.F
10.F57.2A7.4B58.F$F128.F10.F58.A8.4B57.F$F128.F10.F55.3A10.4B56.F$F
128.F10.F55.A13.4B55.F$F128.F10.F70.4B54.F$F128.F10.F71.4B15.2A36.F$F
128.F10.F52.A19.4B13.B2A2B34.F$F128.F10.F29.B22.3A12.B.3B.4B12.5B34.F
$F128.F10.F27.4B24.A10.18B5.5B34.F$F128.F10.F28.4B10.A11.2A3.B5.2B2A
16B3.6B34.F$F128.F10.F29.4B7.3A11.8B3.2B2A16B.8B34.F$F106.4B18.F10.F
30.4B5.A16.8B.29B7.2A25.F$F107.4B17.F10.F31.4B4.2A15.39B6.A26.F$F108.
4B16.F10.F24.2A6.9B14.15B.2B2.21B2.BA.A26.F$F109.4B15.F10.F25.A7.6B
14.17B8.19B.B2A11.B15.F$F110.4B14.F10.F25.A.2A5.6B3.B2.2B2.19B11.19B
13.2B14.F$F111.4B13.F10.F26.A2.A4.19B.15B12.18B13.3B13.F$F112.5B11.F
10.F27.2AB3.20B.B.4B.7B12.19B13.5B11.F$F113.5BD9.F10.F28.14B2A9B3.13B
11.19B14.5BD9.F$F114.2B3D9.F10.F29.13B2A11B.14B8.2AB.3B2.12B15.2B3D9.
F$F113.2BD2B10.F10.F30.29B2.8B8.A.AB6.10B.B2A12.2BD2B10.F$F112.3B2D
11.F10.F30.17B.4B11.6B8.A8.10B2.BA.A10.3B2D11.F$F112.5B11.F10.F31.15B
3.2B12.5B8.2A7.9B7.A10.5B11.F$F111.5B12.F10.F31.15B3.B14.4B16.10B7.2A
9.4B12.F$F110.4B14.F10.F32.13B5.A3.2A8.3B16.4B.6B18.2B14.F$F109.4B15.
F10.F34.13B2.A.A3.A9.4B13.4B3.B.B20.B15.F$F108.4B16.F10.F33.8B4.2A.A.
A3.A12.2A12.4B5.3B35.F$F107.4B17.F10.F33.6B6.2ABA4.A13.A12.4B5.B2AB
35.F$F107.3B18.F10.F33.5B8.B2.5A.A12.3A8.4B7.2A36.F$F107.2B19.F10.F
33.B.B5.2A.A.2A.A4.A.A7.A5.A7.4B46.F$F107.B20.F10.F34.3B4.A.2A.A2.A.
2A2.A8.3A10.4B47.F$F128.F10.F33.B2AB11.2A.A.2A12.A8.4B48.F$F128.F10.F
34.2A30.2A7.4B49.F$F128.F10.F66.5B3.4B50.F$F128.F10.F68.3B2.4B51.F$F
128.F10.F58.2A7.9B52.F$F128.F10.F58.A8.8B53.F$F128.F10.F55.2A.A.B3.
10B54.F$F128.F10.F55.A2.3AB.2B2A7B54.F$F128.F10.F56.2A2.BA3B2A7B54.F$
F128.F10.F58.4A12B54.F$F128.F10.F58.A.2B3.7B.B2A52.F$F128.F10.F59.3AB
2.7B.BA.A51.F$F128.F10.F62.A4.4B5.A51.F$F128.F10.F57.5A5.4B5.2A12.4B
34.F$F128.F10.F57.A10.4B10.A6.4B35.F$F128.F10.F59.A9.4B7.3A5.4B36.F$F
128.F10.F58.2A10.4B5.A7.4B37.F$F128.F10.F71.4B4.2A5.4B38.F$F128.F10.F
72.9B4.4B39.F$F128.F10.F73.6B5.4B40.F$F128.F10.F73.8B2.4B41.F$F128.F
10.F71.15B42.F$F128.F10.F71.14B43.F$F128.F10.F71.13B44.F$F128.F10.F
69.2AB.10B45.F$F128.F10.F68.A.AB3.B2A3B47.F$F128.F10.F68.A6.B2A3B47.F
$F128.F10.F67.2A6.4B49.F$F128.F10.F76.3B49.F$F128.F10.F77.2B.BA46.F$F
128.F10.F76.B2ABA.A45.F$F128.F10.F75.BABABA.A45.F$F128.F10.F73.A2.A.A
.A.A.2A42.F$F128.F10.F73.4A.2A2.A2.A42.F$F128.F10.F77.A4.2A44.F$F128.
F10.F75.A.A50.F$F128.F10.F75.2A51.F$F128.F10.F128.F$F128.F10.F128.F$F
128.F10.F128.F$F128.F10.F128.F$F128.F10.F128.F$F128.F10.F128.F$F128.F
10.F128.F$F128.F10.F128.F$F128.F10.F128.F$F128.F10.F128.F$F128.F10.F
128.F$F128.F10.F128.F$130F10.130F!
"Somewhat tougher" Cordership puzzle:

Code: Select all

x = 220, y = 255, rule = LifeHistory
90D$D28.D29.D29.D$D28.D29.D29.D$D28.D29.D29.D$D28.D29.D29.D$D28.D29.D
29.D$D21.2D5.D22.2D5.D22.2D5.D$D7.D12.DBD5.D8.D12.DBD5.D8.D12.DBD5.D$
D6.2BD10.3BD5.D7.2BD10.3BD5.D7.2BD10.3BD5.D$D6.3DB8.4B6.D7.3DB8.4B6.D
7.3DB8.4B6.D$D7.4B6.4B7.D8.4B6.4B7.D8.4B6.4B7.D$D8.4B4.4B8.D9.4B4.4B
8.D9.4B4.4B8.D$D9.4B2.4B9.D10.4B2.4B9.D10.4B2.4B9.D$D10.8B10.D11.8B
10.D11.8B10.D$D11.6B11.D12.6B11.D12.6B11.D$D12.4B12.D13.4B12.D13.4B
12.D$D11.5B12.D12.5B12.D12.5B12.D$D10.6B12.D11.6B12.D11.6B12.D$D9.2B
2AB14.D10.2B2AB14.D10.2B2AB14.D$D9.BABAB14.D10.BABAB14.D10.BABAB14.D$
D9.BA3B14.D10.BA3B14.D10.BA3B14.D$D9.2A2B15.D10.2A2B15.D10.2A2B15.D$D
28.D29.D29.D$D28.D29.D29.D$D28.D29.D29.D$D28.D29.D29.D$D28.D29.D29.D$
D28.D29.D29.D$D28.D29.D29.D$D28.D29.D29.D$D28.D29.D29.D$D28.D29.D29.D
$90D$D28.D38.D20.D$D28.D38.D20.D$D28.D38.D20.D$D28.D38.D20.D$D28.D20.
D17.D20.D$D21.2D5.D19.2DB16.D20.D$D7.D12.DBD5.D19.DBDB15.D20.D$D6.2BD
10.3BD5.D20.4B14.D20.D$D6.3DB8.4B6.D21.4B13.D20.D$D7.4B6.4B7.D20.6B
12.D20.D$D8.4B4.4B8.D17.BA8B11.D20.D$D9.4B2.4B9.D15.2BABA7B11.D20.D$D
10.8B10.D15.2B2A8B11.D20.D$D11.6B11.D14.13B11.D20.D$D12.4B12.D15.12B
11.D9.3C8.D$D11.5B12.D15.10BA3B9.D9.C10.D$D10.6B12.D14.10BABA2B9.D10.
C9.D$D9.2B2AB14.D13.12BA3B9.D20.D$D9.BABAB14.D12.4B.12B9.D20.D$D9.BA
3B14.D11.4B2.13B8.D20.D$D9.2A2B15.D10.4B4.13B7.D20.D$D28.D9.4B6.5B4.
4B6.D20.D$D28.D8.4B8.3B6.4B5.D20.D$D28.D7.4B19.BDBD4.D20.D$D28.D6.4B
21.B2D4.D20.D$D28.D5.2D2B23.D5.D20.D$D28.D4.DBDB30.D20.D$D28.D5.BD31.
D20.D$D28.D38.D20.D$D28.D38.D20.D$D28.D38.D20.D$90D$D88.D$D88.D$D88.D
$D88.D$D88.D$D23.D64.D$D22.D.D63.D$D88.D$D22.D2.D62.D$D24.2D62.D$D25.
D62.D$D39.2D47.D$D39.2D47.D$D88.D$D88.D$D22.2D64.D$D24.D63.D$D23.2D
63.D$D22.3D63.D$D22.2D23.2D39.D$D21.3D.D21.2D39.D$D22.D3.D61.D$D24.D
2.D60.D$D24.3D61.D$D11.D13.2D13.D47.D$D8.4D28.2D46.D$D40.2D46.D$D42.D
45.D$D41.D46.D$D11.D.D24.2D.D46.D$D12.D24.2D49.D$D10.2D25.D.3D46.D$D
10.D2.D25.D3.2D43.D$D9.2D.2D25.D5.D42.D$D45.D42.D$D36.2D3.D.D44.D$D
36.2D50.D$D37.D50.D$D35.2D29.D21.D$D35.2D28.D22.D$D35.D29.3D20.D$D33.
2D53.D$D33.3D20.A31.D$D55.A.A13.2A15.D$D14.2D15.D24.2A13.2A15.D$D14.
2D15.2D55.D$D32.2D54.D$D32.D23.A31.D$D27.3D.D23.A.A30.D$D27.3D26.2A
30.D$D88.D$D79.2A7.D$D22.2D55.2A7.D$D22.2D64.D$D88.D$D88.D$D88.D$D61.
2A25.D$D61.2A25.D$D88.D$D46.A4.A36.D$D45.A.A2.A.A35.D$D46.2A3.2A35.D$
D88.D$D88.D$D47.3D38.D$D49.D38.D$D48.D39.D$D57.2A29.D$D56.A2.A28.D$D
57.2A29.D$D88.D$D88.D$D88.D$D88.D$D88.D$D46.2A40.D$D46.2A40.D$D88.D$D
88.D$D88.D$D88.D$D88.D$D88.D$D88.D$D88.D$90D4$90F40.90F$F88.F40.F88.F
$F88.F40.F88.F$F88.F40.F88.F$F88.F40.F88.F$F88.F40.F88.F$F88.F40.F88.
F$F88.F40.F88.F$F88.F40.F88.F$F88.F40.F88.F$F88.F40.F88.F$F23.D64.F
40.F23.D64.F$F22.D.D63.F40.F22.D.D63.F$F88.F40.F88.F$F22.D2.D62.F40.F
22.D2.D62.F$F24.2D62.F40.F24.2D62.F$F25.D62.F40.F25.D62.F$F39.2D47.F
40.F39.2D47.F$F39.2D47.F40.F39.2D47.F$F88.F40.F88.F$F88.F40.F88.F$F
22.2D64.F40.F22.2D64.F$F24.D63.F40.F24.D63.F$F23.2D63.F40.F23.2D63.F$
F22.3D63.F40.F22.3D63.F$F22.2D23.2D39.F40.F22.2D23.2D39.F$F21.3D.D21.
2D39.F40.F21.3D.D21.2D39.F$F22.D3.D61.F40.F22.D3.D61.F$F24.D2.D60.F
40.F24.D2.D60.F$F24.3D61.F40.F24.3D61.F$F11.D13.2D13.D47.F40.F11.D13.
2D13.D11.2A2B32.F$F8.4D28.2D46.F40.F8.4D28.2D10.BA3B31.F$F40.2D46.F
40.F40.2D10.BABAB31.F$F42.D45.F40.F42.D9.2B2AB31.F$F41.D46.F40.F41.D
11.6B29.F$F11.D.D24.2D.D46.F40.F11.D.D24.2D.D12.5B29.F$F12.D24.2D49.F
40.F12.D24.2D16.4B29.F$F10.2D25.D.3D46.F40.F10.2D25.D.3D12.6B28.F$F
10.D2.D25.D3.2D43.F40.F10.D2.D25.D3.2D8.7BD27.F$F9.2D.2D25.D5.D42.F
40.F9.2D.2D25.D5.D6.4B2.DBDB26.F$F45.D42.F40.F45.D5.4B4.2D2B25.F$F36.
2D3.D.D44.F40.F36.2D3.D.D6.4B6.4B5.3BA15.F$F36.2D50.F40.F36.2D11.3DB
8.4B3.2B3A15.F$F37.D50.F40.F37.D11.2BD10.B6.A3B15.F$F35.2D51.F40.F35.
2D13.D15.D2.2A2B15.F$F35.2D51.F40.F35.2D28.D3.3B16.F$F35.D52.F40.F35.
D9.D19.3D20.F$F33.2D53.F40.F33.2D9.B2D41.F$F33.3D52.F40.F33.3D7.BDBD
9.A31.F$F88.F40.F42.4B9.A.A13.2A15.F$F14.2D15.D56.F40.F14.2D15.D9.4B
11.2A13.2A15.F$F14.2D15.2D55.F40.F14.2D15.2D7.6B42.F$F32.2D54.F40.F
32.2D5.8BAB39.F$F32.D55.F40.F32.D6.7BABA2B5.A31.F$F27.3D.D56.F40.F27.
3D.D7.8B2A2B4.A.A30.F$F27.3D58.F40.F27.3D9.13B4.2A30.F$F88.F40.F39.
12B37.F$F88.F40.F37.3BA10B28.2A7.F$F22.2D64.F40.F22.2D13.2BABA10B27.
2A7.F$F22.2D64.F40.F22.2D13.3BA12B35.F$F88.F40.F37.12B.4B34.F$F88.F
40.F36.D12B2.4B33.F$F88.F40.F35.BDBD9B4.4B32.F$F88.F40.F34.2B2D4.5B6.
4B4.2A25.F$F88.F40.F24.A3B5.4B6.3B8.4B3.2A25.F$F88.F40.F24.3A2B3.4B
19.4B29.F$F88.F40.F24.3BA2B.4B11.A4.A4.4B28.F$F88.F40.F24.2B2A6B11.A.
A2.A.A4.2B29.F$F88.F40.F25.8B13.2A3.2A5.B3C26.F$F88.F40.F28.5B26.CB
27.F$F88.F40.F28.6B26.C27.F$F88.F40.F31.3BD12.3D38.F$F88.F40.F32.3BD
13.D38.F$F88.F40.F33.3DB8.B2.D39.F$F88.F40.F34.4B6.2B11.2A29.F$F88.F
40.F35.4B4.3B10.A2.A28.F$F88.F40.F36.4B2.4B11.2A29.F$F88.F40.F37.8B
43.F$F88.F40.F38.6B44.F$F88.F40.F39.4B45.F$F88.F40.F38.5B45.F$F88.F
40.F37.6B45.F$F88.F40.F36.2B2AB5.2A40.F$F88.F40.F36.BABAB5.2A40.F$F
88.F40.F36.BA3B47.F$F88.F40.F36.2A2B48.F$F88.F40.F88.F$F88.F40.F88.F$
F88.F40.F88.F$F88.F40.F88.F$F88.F40.F88.F$F88.F40.F88.F$F88.F40.F88.F
$F88.F40.F88.F$F88.F40.F88.F$F88.F40.F88.F$F88.F40.F88.F$F88.F40.F88.
F$F88.F40.F88.F$90F40.90F!
Goldtiger997's glider synthesis puzzle -- candidate solution posted here.

Here's the last of the target-population-zero puzzles:

Code: Select all

x = 189, y = 124, rule = LifeHistory
31D$D29.D$D29.D$D29.D$D29.D$D29.D$D29.D$D29.D$D29.D$D29.D$D29.D$D10.C
4.2D12.D$D11.C2.D.D12.D$D9.3C4.D12.D$D29.D$D29.D$D29.D$D29.D$D29.D$D
16.2A11.D$D15.A.A11.D$D16.A12.D$D29.D$D29.D$D29.D$D29.D$D29.D$D29.D$D
29.D$D29.D$D29.D$31D3$90F9.90F$F88.F9.F88.F$F88.F9.F88.F$F88.F9.F88.F
$F88.F9.F88.F$F88.F9.F88.F$F88.F9.F88.F$F88.F9.F88.F$F88.F9.F88.F$F
88.F9.F88.F$F88.F9.F88.F$F88.F9.F88.F$F88.F9.F88.F$F88.F9.F88.F$F88.F
9.F88.F$F88.F9.F88.F$F88.F9.F88.F$F88.F9.F88.F$F88.F9.F88.F$F88.F9.F
88.F$F88.F9.F88.F$F88.F9.F88.F$F88.F9.F88.F$F88.F9.F88.F$F88.F9.F88.F
$F88.F9.F88.F$F88.F9.F88.F$F88.F9.F88.F$F88.F9.F88.F$F88.F9.F88.F$F
88.F9.F88.F$F88.F9.F88.F$F88.F9.F88.F$F88.F9.F88.F$F88.F9.F88.F$F88.F
9.F88.F$F88.F9.F88.F$F88.F9.F88.F$F88.F9.F88.F$F88.F9.F88.F$F88.F9.F
88.F$F54.2A.2A29.F9.F54.2A.2A29.F$F54.2A.2A29.F9.F54.2A.2A29.F$F88.F
9.F88.F$F54.2A.2A29.F9.F54.2A.2A29.F$F54.2A.2A29.F9.F54.2A.2A29.F$F
88.F9.F88.F$F54.2A.2A29.F9.F54.2A.2A29.F$F54.2A.2A29.F9.F54.2A.2A29.F
$F88.F9.F88.F$F88.F9.F35.C4.2D46.F$F88.F9.F36.C2.D.D46.F$F88.F9.F34.
3C4.D46.F$F88.F9.F88.F$F88.F9.F88.F$F88.F9.F88.F$F88.F9.F88.F$F88.F9.
F88.F$F88.F9.F41.2A45.F$F88.F9.F40.A.A45.F$F25.2A.2A.2A55.F9.F25.2A.
2A.2A8.A46.F$F25.2A.2A.2A55.F9.F25.2A.2A.2A55.F$F88.F9.F88.F$F25.2A.
2A.2A55.F9.F25.2A.2A.2A55.F$F25.2A.2A.2A55.F9.F25.2A.2A.2A55.F$F88.F
9.F88.F$F88.F9.F88.F$F88.F9.F88.F$F88.F9.F88.F$F88.F9.F88.F$F88.F9.F
88.F$F88.F9.F88.F$F88.F9.F88.F$F88.F9.F88.F$F88.F9.F88.F$F88.F9.F88.F
$F88.F9.F88.F$F88.F9.F88.F$F88.F9.F88.F$F88.F9.F88.F$F88.F9.F88.F$F
88.F9.F88.F$F88.F9.F88.F$F88.F9.F88.F$F88.F9.F88.F$F88.F9.F88.F$F88.F
9.F88.F$F88.F9.F88.F$F88.F9.F88.F$90F9.90F!

User avatar
pcallahan
Posts: 845
Joined: April 26th, 2013, 1:04 pm

Re: Puzzles and "Project von Neumann"

Post by pcallahan » June 9th, 2019, 11:00 am

dvgrn wrote:Quick straw poll: how many people out there still can't stand LifeHistory
I will go with "not a huge fan." It is a powerful tool, but when I've used it in Golly, I get frustrated when my first attempts to save a pattern do not produce classic RLE.

I am a purist in the sense that I view tools like LifeHistory as scaffolding. When it's done, I want to know how the pattern "really" looks, which means a subset of coordinate cells on the grid. I find that when I don't need LifeHistory (and I forgot now what I needed it for) I prefer to do without. I don't like seeing it as the default. I also can't integrate it with legacy tools (often of my own making).

Extending this to people besides me, it still could be a problem if puzzles are presented in LifeHistory, because the best new puzzle solvers may be writing their own search tools. The RLE format is very legible, while LifeHistory is still a mystery to me (because I would need to learn the format and have not needed to yet). I think we want the puzzle definition itself to be stripped bare of software-specific formats as much as possible.

Post Reply