Conway's Hello World

24

2

It is often said, that all programmers should be able to write a "hello world" program in any programming language after a few glances on that language (And quicksort after a few more glances).

As the Conway's Game of Life is Turing complete (so it qualifies as a general-purpose programming language), the problem is self-explanatory:

Create a "Hello World!" application using only Conway's Game of Life! The only valid entry is an initial state for the Conway's Game of Life, which:

  • does not contain any recognizable shape resembling the text "Hello World!"
  • will contain a recognizable shape resembling the text "Hello World!" within a reasonable number of cycles (it should not run for more than a couple of minutes on a good PC - this enables billions of cycles and should be enough)
  • the area where the "Hello World!" text will appear should be empty in the initial state! (Otherwise the problem would be way too easy) If no one manages to do it, we might reduce this requirement to "mostly empty"

Scoring:

The winner will be based on the number of upvotes in approximately one week after the first valid submission.

Guidelines for voting:

  • more elaborate and beautiful output should be worth more
  • output which is stable over many cycles should be worth more than one which fades away to be unrecognizable in the next cycle.
  • a solution locked into a perpetual cycle, or starting from an interesting pattern is worth the most, because it proves intelligent design of the state, and not just random trial and error with a reverse simulation.

The entry should be in a format readable by at least one of the notable simulators or an online simulator which the answerer links to. Links (to an animation or a simulator set to the initial state) are also accepted, even encouraged. If the output is not visible within a few cycles, the entry should specify after which cycle will the result be visible.


Edit:

There can be some slight tolerance in the phrase to be generated. It can be "Hello, World!", "hello, world" "HELLO WORLD!" etc.

vsz

Posted 2012-07-03T18:25:07.653

Reputation: 7 963

shouldn't there be a comma somewhere in that phrase? – ardnew – 2012-07-03T18:53:01.693

@ardnew: Which phrase? – vsz – 2012-07-03T18:54:50.207

the phrase to be generated: Hello, world! – ardnew – 2012-07-03T18:56:56.023

@ardnew: thanks, I edited an addendum. I deliberately left some slight vagueness, because ultimately the voters decide. If you think that you did not directly violate one of the main rules, and that the voters will like your interpretation of the minor details, feel free to do it in any way you wish! – vsz – 2012-07-03T19:03:52.707

All programmers should be able to write a "hello world" program in any programming language after a few glances on that language? Really?

– ceased to turn counterclockwis – 2012-07-03T19:04:42.237

@leftaroundabout: Interesting idea for the next contest :) – vsz – 2012-07-03T19:05:18.070

https://github.com/tlrobinson/life-gen/ – Griffin – 2012-07-03T22:47:34.580

1

You can use my simulator (imports RLE and Plaintext). It's not good for developing, but at least it runs arbitrary big patterns at decent speed. I can also upload patterns and make them linkable if requested

– copy – 2012-07-03T23:33:20.140

The one who made this surely can do it.

– ugoren – 2012-07-04T07:12:31.000

Answers

50

My first attempt to this, a relatively simple solution. It fires a couple of glider barrels. Each pair of gliders turns into a block, which then form the text. This process takes about 16000 generations (you can set a frame skip or use the superstep button in my simulator).

Direct Link. Move around with right mouse, zoom with mouse wheel.

Link to .rle file (also works with Golly)

Image of the pattern 32:1:

Image of the pattern 32:1

copy

Posted 2012-07-03T18:25:07.653

Reputation: 6 466

4If you have a canvas-supporting browser and don't see the starting pattern, zoom out with the scroll wheel. Took me a while to work that out. – Peter Taylor – 2012-07-05T06:30:05.283

Excellent! I was expecting you to post a solution to this challenge after I've seen http://codegolf.stackexchange.com/a/5946/3527 and your website.

– Cristian Lupascu – 2012-07-05T13:33:07.283

1@w0lf creating a pattern is a very different kind of challenge than simulation. But yeah, I'm having fun with this – copy – 2012-07-05T19:57:14.370

2Congratulations! Strange, that no one took the courage to submit another solution. Actually, if there was no solution posted, I would have done something very similar (gliders converging to form blocks), although much smaller and less detailed. May I ask how you did it? Generated with a program, or calculated the positions manually? – vsz – 2012-07-11T06:19:46.737

1@vsz The pattern is generated from a small python script. I think one week might have been a short deadline for some people (that's why nobody else tried) – copy – 2012-07-11T13:54:33.560

Wow, that is so cool! – Matthew Roh – 2017-03-25T17:36:33.447

This made my day. thank you. – Mark Lakata – 2014-02-14T17:49:33.337