Hello World ของ Conway


24

มันก็มักจะกล่าวว่าที่โปรแกรมเมอร์ทุกคนควรจะสามารถที่จะเขียนโปรแกรม "Hello World" ในภาษาเขียนโปรแกรมใด ๆ หลังจากที่สายตาไม่กี่ภาษานั้น (และquicksortหลังจากสายตาอีกไม่กี่)

ในขณะที่เกมแห่งชีวิตของ Conwayกำลังทัวริงเสร็จสมบูรณ์(ดังนั้นจึงถือว่าเป็นภาษาการเขียนโปรแกรมวัตถุประสงค์ทั่วไป)ปัญหานี้อธิบายได้ด้วยตนเอง:

สร้าง "Hello World!" แอปพลิเคชันที่ใช้เฉพาะเกมแห่งชีวิตของ Conway! รายการที่ถูกต้องเพียงอย่างเดียวคือสถานะเริ่มต้นสำหรับเกมแห่งชีวิตของ Conway ซึ่ง:

  • ไม่มีรูปทรงที่รู้จักคล้ายกับข้อความ "Hello World!"
  • จะมีรูปร่างที่รู้จักคล้ายกับข้อความ "Hello World!" ภายในจำนวนรอบที่เหมาะสม (ไม่ควรใช้เวลานานกว่าสองสามนาทีในพีซีที่ดี - สิ่งนี้จะช่วยให้มีรอบพันล้านและควรจะเพียงพอ)
  • บริเวณที่ "Hello World!" ข้อความจะปรากฏขึ้นควรจะว่างเปล่าในสถานะเริ่มต้น! (มิฉะนั้นปัญหาจะง่ายเกินไป) หากไม่มีใครจัดการได้เราอาจลดความต้องการนี้เป็น "ว่างเปล่าเป็นส่วนใหญ่"

เกณฑ์การให้คะแนน:

ผู้ชนะจะขึ้นอยู่กับจำนวนของการโหวตในเวลาประมาณหนึ่งสัปดาห์หลังจากการส่งครั้งแรกที่ถูกต้อง

แนวทางการลงคะแนน:

  • ผลลัพธ์ที่ประณีตและสวยงามมากขึ้นควรคุ้มค่ามากขึ้น
  • เอาต์พุตที่มีความเสถียรในหลายรอบควรมีค่ามากกว่าหนึ่งซึ่งจางหายไปจนไม่สามารถจดจำได้ในรอบถัดไป
  • วิธีการแก้ปัญหาถูกล็อกเข้าสู่วงจรถาวรหรือเริ่มจากรูปแบบที่น่าสนใจมีค่ามากที่สุดเพราะมันพิสูจน์การออกแบบที่ชาญฉลาดของรัฐไม่ใช่แค่การลองผิดลองถูกและข้อผิดพลาดด้วยการจำลองแบบย้อนกลับ

รายการควรอยู่ในรูปแบบที่สามารถอ่านได้โดยตัวจำลองอย่างน้อยหนึ่งตัวหรือตัวจำลองออนไลน์ที่ผู้ตอบคำถามเชื่อมโยง ลิงค์ (ไปยังภาพเคลื่อนไหวหรือเครื่องมือจำลองที่ตั้งค่าเป็นสถานะเริ่มต้น) ก็เป็นที่ยอมรับเช่นกัน หากมองไม่เห็นผลลัพธ์ภายในไม่กี่รอบรายการควรระบุหลังจากที่รอบผลลัพธ์จะมองเห็นได้


แก้ไข:

อาจมีความอดทนเล็กน้อยในวลีที่จะสร้าง มันอาจเป็น " Hello, World!", " hello, world" " HELLO WORLD!" เป็นต้น


ไม่ควรมีเครื่องหมายจุลภาคที่ไหนสักแห่งในวลีนั้น?
ardnew

@ardnew: วลีใด?
vsz

วลีที่จะสร้าง:Hello, world!
ardnew

@ardnew: ขอบคุณฉันแก้ไขภาคผนวก ฉันจงใจทิ้งความคลุมเครือเล็กน้อยไว้เพราะจงใจตัดสินใจในที่สุด หากคุณคิดว่าคุณไม่ได้ละเมิดกฎหลักข้อใดข้อหนึ่งโดยตรงและผู้ลงคะแนนจะชอบการตีความรายละเอียดเล็ก ๆ น้อย ๆ ของคุณอย่าลังเลที่จะทำตามที่คุณต้องการ!
vsz

1
คุณสามารถใช้โปรแกรมจำลองของฉัน (นำเข้า RLE และข้อความธรรมดา) มันไม่ดีสำหรับการพัฒนา แต่อย่างน้อยมันก็รันรูปแบบขนาดใหญ่ตามอำเภอใจด้วยความเร็วที่เหมาะสม ฉันสามารถอัปโหลดรูปแบบและทำให้สามารถลิงก์ได้หากได้รับการร้องขอ
คัดลอก

คำตอบ:


50

ความพยายามครั้งแรกของฉันในเรื่องนี้เป็นทางออกที่ค่อนข้างง่าย มันยิงถังร่อนสองตัว เครื่องร่อนแต่ละคู่จะเปลี่ยนเป็นบล็อกซึ่งจะประกอบเป็นข้อความ กระบวนการนี้ใช้เวลาประมาณ 16,000 ชั่วอายุคน (คุณสามารถตั้งค่าการข้ามเฟรมหรือใช้ปุ่ม superstep ในเครื่องจำลองของฉัน)

Link โดยตรง เลื่อนไปรอบ ๆ ด้วยเมาส์ขวาซูมด้วยล้อเลื่อนของเมาส์

ลิงก์ไปยังไฟล์. rle (ใช้ได้กับ Golly)

รูปแบบ 32: 1:

รูปแบบ 32: 1


4
หากคุณมีเบราว์เซอร์ที่รองรับ Canvas และไม่เห็นรูปแบบเริ่มต้นให้ซูมออกด้วยล้อเลื่อน เอาฉันไปทำงานสักพัก
Peter Taylor

ยอดเยี่ยม ฉันคาดหวังให้คุณโพสต์คำตอบสำหรับความท้าทายนี้หลังจากที่ฉันเห็นcodegolf.stackexchange.com/a/5946/3527และเว็บไซต์ของคุณ
Cristian Lupascu

1
@ w0lf การสร้างรูปแบบเป็นความท้าทายที่แตกต่างจากการจำลอง แต่ใช่ฉันกำลังสนุกกับเรื่องนี้
คัดลอก

2
ขอแสดงความยินดี! แปลกที่ไม่มีใครกล้าที่จะส่งทางออกอื่น ที่จริงแล้วถ้าไม่มีวิธีแก้ปัญหาโพสต์ฉันจะทำสิ่งที่คล้ายกันมาก (เครื่องร่อนมาบรรจบกันเป็นบล็อก) แม้ว่าจะเล็กกว่าและมีรายละเอียดน้อยกว่ามาก ฉันขอถามได้มั้ย สร้างด้วยโปรแกรมหรือคำนวณตำแหน่งด้วยตนเองหรือไม่
vsz

1
@vsz รูปแบบถูกสร้างขึ้นจากสคริปต์ python ขนาดเล็ก ฉันคิดว่าหนึ่งสัปดาห์อาจเป็นเวลาสั้น ๆ สำหรับบางคน (นั่นเป็นสาเหตุที่ไม่มีใครลอง)
สำเนา
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.