Thế giới xin chào của Conway


24

Người ta thường nói, tất cả các lập trình viên sẽ có thể viết chương trình "hello world" bằng bất kỳ ngôn ngữ lập trình nào sau một vài cái liếc qua ngôn ngữ đó (Và quicksort sau một vài cái liếc mắt nữa).

Khi Trò chơi Cuộc sống của Conway hoàn tất (vì vậy nó đủ điều kiện là ngôn ngữ lập trình đa mục đích) , vấn đề là tự giải thích:

Tạo một "Xin chào thế giới!" ứng dụng chỉ sử dụng Trò chơi cuộc sống của Conway! Mục nhập hợp lệ duy nhất là trạng thái ban đầu cho Trò chơi cuộc sống của Conway, trong đó:

  • không chứa bất kỳ hình dạng dễ nhận biết nào giống với văn bản "Xin chào thế giới!"
  • sẽ chứa một hình dạng dễ nhận biết giống như văn bản "Hello World!" trong một số chu kỳ hợp lý (không nên chạy quá một vài phút trên một PC tốt - điều này cho phép hàng tỷ chu kỳ và là đủ)
  • khu vực nơi "Xin chào thế giới!" văn bản sẽ xuất hiện nên trống ở trạng thái ban đầu! (Nếu không, vấn đề sẽ trở nên quá dễ dàng) Nếu không ai quản lý để thực hiện, chúng tôi có thể giảm yêu cầu này xuống "hầu như trống rỗng"

Ghi điểm:

Người chiến thắng sẽ được dựa trên số lượng upvote trong khoảng một tuần sau lần gửi hợp lệ đầu tiên.

Hướng dẫn bỏ phiếu:

  • đầu ra công phu và đẹp hơn nên có giá trị hơn
  • đầu ra ổn định qua nhiều chu kỳ nên có giá trị lớn hơn một chu kỳ mất dần để không thể nhận ra trong chu kỳ tiếp theo.
  • một giải pháp bị khóa trong một chu kỳ vĩnh viễn hoặc bắt đầu từ một mô hình thú vị là đáng giá nhất, bởi vì nó chứng minh thiết kế thông minh của trạng thái, và không chỉ là thử nghiệm ngẫu nhiên và lỗi với mô phỏng ngược.

Mục nhập phải ở định dạng có thể đọc được bởi ít nhất một trong số các trình giả lập đáng chú ý hoặc trình giả lập trực tuyến mà người trả lời liên kết đến. Liên kết (đến hình động hoặc trình giả lập được đặt ở trạng thái ban đầu) cũng được chấp nhận, thậm chí được khuyến khích. Nếu đầu ra không hiển thị trong một vài chu kỳ, mục nhập sẽ chỉ định sau chu kỳ nào kết quả sẽ hiển thị.


Chỉnh sửa:

Có thể có một số dung sai nhỏ trong cụm từ được tạo ra. Nó có thể là " Hello, World!", " hello, world" " HELLO WORLD!" v.v.


không nên có một dấu phẩy ở đâu đó trong cụm từ đó?
ardew

@ardnew: Cụm từ nào?
vsz

cụm từ được tạo ra:Hello, world!
ardew

@ardnew: cảm ơn, tôi đã chỉnh sửa một phụ lục. Tôi cố tình để lại một chút mơ hồ, vì cuối cùng các cử tri quyết định . Nếu bạn nghĩ rằng bạn không vi phạm trực tiếp một trong những quy tắc chính và cử tri sẽ thích cách giải thích của bạn về các chi tiết nhỏ, hãy thoải mái thực hiện theo bất kỳ cách nào bạn muốn!
vsz

1
Bạn có thể sử dụng trình giả lập của tôi (nhập RLE và Plaintext). Nó không tốt cho việc phát triển, nhưng ít nhất nó chạy các mẫu lớn tùy ý ở tốc độ khá. Tôi cũng có thể tải lên các mẫu và làm cho chúng có thể liên kết nếu được yêu cầu
sao chép

Câu trả lời:


50

Nỗ lực đầu tiên của tôi cho việc này, một giải pháp tương đối đơn giản. Nó bắn một vài thùng tàu lượn. Mỗi cặp tàu lượn biến thành một khối, sau đó tạo thành văn bản. Quá trình này mất khoảng 16000 thế hệ (bạn có thể đặt bỏ qua khung hoặc sử dụng nút superstep trong trình giả lập của tôi).

Liên kết trực tiếp . Di chuyển xung quanh bằng chuột phải, phóng to bằng bánh xe chuột.

Liên kết đến tệp .rle (cũng hoạt động với Golly)

Hình ảnh của mẫu 32: 1:

Hình ảnh của mẫu 32: 1


4
Nếu bạn có trình duyệt hỗ trợ canvas và không nhìn thấy mẫu bắt đầu, hãy thu nhỏ bằng bánh xe cuộn. Mất một lúc để làm việc đó.
Peter Taylor

Xuất sắc! Tôi đã mong đợi bạn đăng một giải pháp cho thử thách này sau khi tôi thấy codegolf.stackexchange.com/a/5946/3527 và trang web của bạn.
Cristian Lupascu

1
@ w0lf tạo ra một mô hình là một loại thách thức rất khác so với mô phỏng. Nhưng vâng, tôi đang vui vẻ với điều này
sao chép

2
Xin chúc mừng! Kỳ lạ thay, không ai lấy hết can đảm để đưa ra giải pháp khác. Trên thực tế, nếu không có giải pháp nào được đăng, tôi đã làm một cái gì đó rất giống nhau (tàu lượn hội tụ để tạo thành các khối), mặc dù nhỏ hơn nhiều và ít chi tiết hơn. Tôi có thể hỏi làm thế nào bạn làm điều đó? Tạo ra với một chương trình, hoặc tính toán các vị trí bằng tay?
vsz

1
@vsz Mẫu được tạo từ một tập lệnh python nhỏ. Tôi nghĩ rằng một tuần có thể là một thời hạn ngắn đối với một số người (đó là lý do tại sao không ai khác cố gắng)
sao chép
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.