เมื่อพิจารณาถึงสถานะของตารางเกมแห่งชีวิตตารางตรวจสอบว่ามันอาจมีการพัฒนาจากสถานะก่อนหน้าใด ๆ หรืออาจถูกสร้างขึ้นเท่านั้น นั่นคือระบุว่ารัฐเป็นรัฐ"Garden of Eden"หรือไม่
อินพุต
กริดของรัฐที่มี 1 ระบุว่า "มีชีวิตอยู่" และ 0 หมายถึง "ตาย" คุณสามารถเลือกสองสัญลักษณ์ที่แตกต่างแทน 0 และ 1 หากคุณต้องการ
ความยาวด้านของกริดจะไม่เป็นศูนย์ แต่อาจเป็นจำนวนธรรมชาติใด ๆ 1 <= N <= 20
เซลล์ใด ๆ หรือทั้งหมดที่อยู่นอกกริดอินพุตอาจมีชีวิตในรุ่นนี้และเซลล์ใด ๆ หรือทั้งหมดอาจมีชีวิตอยู่ในรุ่นก่อนหน้า เอกภพที่จะพิจารณานั้นไม่มีที่สิ้นสุดดังนั้นจึงไม่มีเงื่อนไขขอบเขต ขอบของอินพุตไม่ใช่ขอบของจักรวาล โดยเฉพาะอย่างยิ่งกริดไม่ได้ห่อ
อินพุตอาจอยู่ในรูปแบบของสตริงที่คั่นด้วยแถวหรือสตริงเดี่ยว หากคุณต้องการคุณอาจใช้ความยาวด้านหรือพื้นที่ของกริดเป็นอินพุตเพิ่มเติม (ก่อนหรือหลังกริด)
รูปแบบอินพุตที่ยอมรับได้:
010,101,010
010101010
010
101
010
3 010101010
เอาท์พุต
"สร้าง" หากไม่มีสถานะก่อนหน้านี้ที่เป็นไปได้ (รวมถึงสถานะที่ใหญ่กว่ากริดอินพุต) ที่จะนำไปสู่สถานะอินพุตในรุ่นถัดไป
"Evolved" ถ้ามีอยู่อย่างน้อยหนึ่งสถานะก่อนหน้านี้ที่เป็นไปได้ (รวมถึงสถานะที่ใหญ่กว่ากริดอินพุต) ที่จะนำไปสู่สถานะอินพุตในรุ่นถัดไป
คุณสามารถใช้สตริงหรือตัวเลขสองตัวที่แยกได้แทน "สร้าง" และ "วิวัฒนาการ" หากคุณต้องการ
โปรดทราบว่าสถานะก่อนหน้าที่เป็นไปได้ไม่จำเป็นต้องแตกต่างจากอินพุต หากรัฐมีตัวเองเป็นรุ่นต่อไปก็ควรได้รับการพิจารณาวิวัฒนาการ
กรณีทดสอบ
010
101
010 Evolved
0101110100
0010101001
1011100110
0101111101
1001001111
1111001001
1011111010
0110011101
1001010100
0010111010 Created
กรณีทดสอบที่สร้างขึ้นจะนำมาจากเกม Achim Flammenkamp ของชีวิตหน้า
บันทึก
ขอบคุณ trichoplax สำหรับการเขียนความท้าทายนี้และฉันยอมรับมันจากที่นี่
m
-by-n
ถ้าผมทดสอบเป็นไปได้ทั้งหมด2^(m*n)
รัฐเริ่มต้นความซับซ้อนของโปรแกรมจะมีขนาดใหญ่ แต่ก็แก้ปัญหาโดยเพียงแค่การตรวจสอบหากผลที่ตรงกับการป้อนข้อมูล