康威的Hello World


24

人们常说,所有程序员只要瞥一眼任何语言,就应该能够用任何一种编程语言编写一个“ hello world”程序(再看一眼,就可以快速排序)。

由于Conway的《人生游戏》已经完成了图灵(因此符合通用编程语言的要求),这个问题不言而喻:

创建一个“ Hello World!” 仅使用Conway的生命游戏的应用程序!唯一有效的条目是Conway的生命游戏的初始状态,该状态为:

  • 不包含任何类似于文字“ Hello World!”的可识别形状。
  • 将包含类似于文字“ Hello World!”的可识别形状。在合理的周期数内(在一台好的PC上,它不应运行超过几分钟-这可以实现数十亿个周期,应该足够了)
  • “ Hello World!”所在的区域 文本将在初始状态下显示为空!(否则问题将很容易解决)如果没有人设法做到这一点,我们可以将这一要求减少为“大部分为空”

得分:

获胜者将基于第一次有效提交后约一周内的投票数。

投票准则:

  • 更精致,更漂亮的输出值得更多
  • 在许多周期内保持稳定的输出应该比在下一个周期内逐渐消失而无法识别的值要多。
  • 锁定在一个永久循环中或从一个有趣的模式开始的解决方案是最有价值的,因为它证明了状态的智能设计,而不仅仅是逆向模拟的随机试验和错误。

该条目应采用应答者链接到的著名模拟器或在线模拟器中的至少一个可读的格式。也接受(甚至鼓励)链接(指向设置为初始状态的动画或模拟器的链接)。如果输出在几个周期内不可见,则条目应指定在哪个周期后结果可见。


编辑:

要生成的短语可能会有一些容忍度。可以是“ Hello, World!”,“ hello, world”“ HELLO WORLD!”等。


那句话中不应该有逗号吗?
ardnew

@ardnew:哪个短语?
vsz 2012年

生成的短语:Hello, world!
ardnew 2012年

@ardnew:谢谢,我编辑了附录。我故意留下些许含糊,因为最终选民决定了。如果您认为自己没有直接违反其中一项主要规则,而选民会喜欢您对次要细节的解释,请随时以自己希望的方式进行!
vsz 2012年

1
您可以使用我的模拟器(导入RLE和Plaintext)。这对开发不利,但至少它以适当的速度运行任意大模式。如果需要,我还可以上传模式并使它们可链接
复制

Answers:


50

我对此的第一次尝试是一个相对简单的解决方案。它发射了几个滑翔机枪管。每对滑翔机变成一个块,然后形成文本。此过程大约需要16000代(您可以在我的模拟器中设置跳帧或使用超步按钮)。

直接链接。用鼠标右键移动,用鼠标滚轮缩放。

链接到.rle文件(也适用于Golly)

模式32:1的图像:

图案图片32:1


4
如果您使用支持画布的浏览器,但看不到起始图案,请使用滚轮进行缩小。花了我一段时间来解决这个问题。
彼得·泰勒

优秀!在看到codegolf.stackexchange.com/a/5946/3527和您的网站之后,我希望您发布此挑战的解决方案。
克里斯蒂安·卢帕斯库

1
@ w0lf创建模式与模拟是一种截然不同的挑战。但是,是的,我很开心
复制

2
恭喜你!奇怪的是,没有人敢于提出另一种解决方案。实际上,如果没有解决方案发布,我会做一些非常相似的事情(滑翔机会聚成块),尽管体积要小得多,细节也要少得多。请问你是怎么做到的?用程序生成还是手动计算位置?
vsz 2012年

1
@vsz模式是从一​​个小的python脚本生成的。我认为对于某些人来说,一周的截止日期可能是很短的(这就是为什么没有其他人尝试过的原因)
复制
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.