แต่ละเซลล์ในหุ่นยนต์เซลลูล่าร์ที่มีชีวิตเหมือนต้องการเพียงหนึ่งบิตในการเป็นตัวแทนเพราะมันจะมีชีวิตอยู่หรือตายไปเท่านั้น นั่นหมายความว่ามีเพียงสองสี; ค่อนข้างน่าเบื่อ.
ภาพปกติมี 24 บิตต่อพิกเซล (8 ในแต่ละ RGB) ซึ่งหมายความว่าในภาพปกติที่มีพิกเซลเป็นเซลล์คุณสามารถจำลองเกมเหมือนชีวิต 24 เกมได้ในครั้งเดียว!
ท้าทาย
งานของคุณคือการเขียนโปรแกรมที่จะใช้กฎหนึ่งรุ่นของหุ่นยนต์เซลลูล่าร์ที่เหมือนสิ่งมีชีวิตกับภาพความลึก 24 บิต (ในรูปแบบที่รู้จักกันดีที่คุณต้องการ) และส่งออกภาพผลลัพธ์
แต่ละเลเยอร์ทั้ง 24 เลเยอร์จะใช้กฏเหมือนเหมือนชีวิตอย่างเคร่งครัดภายในเลเยอร์ของตัวเอง 24 เลเยอร์ไม่โต้ตอบซึ่งกันและกัน
ด้วย
- ศูนย์คือเซลล์ที่ตายแล้วและเซลล์นั้นเป็นเซลล์ที่มีชีวิต
- เงื่อนไขขอบเขตเป็นระยะ (ก่อตัวพรู)
- ขนาดรูปภาพใด ๆ ควรใช้งานได้
Input / Output
โปรแกรมของคุณต้องใช้เวลา 3 ข้อโต้แย้งผ่าน stdin หรือบรรทัดคำสั่ง (หรือภาษาที่ใกล้เคียงที่สุดของคุณ):
- ชื่อของไฟล์ภาพอินพุต
- สตริงของตัวเลข 0 ถึง 8 ตามลำดับที่เพิ่มขึ้นซึ่งหมายถึงเมื่อเกิดเซลล์ใหม่:
- ถ้าหลักdอยู่ในสตริงแล้วเซลล์ที่ตายแล้วมามีชีวิตอยู่เมื่อพวกเขามีdเพื่อนบ้านที่อยู่อาศัย
- ตัวอย่าง:
3
เป็นเรื่องปกติของชีวิต - เซลล์ที่ตายแล้วพร้อมกับเพื่อนบ้านที่มีชีวิต 3 คนที่เข้ามาในชีวิต
- สตริงของตัวเลข 0 ถึง 8 ในลำดับที่เพิ่มขึ้นซึ่งระบุว่าเมื่อเซลล์ที่มีอยู่รอด:
- ถ้าหลักdอยู่ในสตริงแล้วเซลล์ที่มีชีวิตกับdเพื่อนบ้านที่อาศัยอยู่รอดในรุ่นต่อไปมิฉะนั้นพวกเขาตาย
- ตัวอย่าง:
23
เป็นชีวิตปกติ - มีเพียงเซลล์ที่มีเพื่อนบ้าน 2 หรือ 3 คนเท่านั้นที่รอดชีวิตในรอบถัดไป
โปรดทราบว่ามีการใช้ย่าน Mooreเสมอ อ่านนี้หรือนี้สำหรับข้อมูลเพิ่มเติมเกี่ยวกับสิ่งที่ได้อย่างแม่นยำกำหนดชีวิตเหมือนหุ่นยนต์และ rulesets ที่น่าสนใจมากมาย
รูปภาพเอาต์พุต 1 เจนเนอเรชั่นภายหลังควรแสดงหรือบันทึกเป็นout.png
( bmp
หรืออะไรก็ตาม)
ส่ง
รหัสที่สั้นที่สุดในหน่วยไบต์ชนะ
คุณจะต้องรวมภาพทดสอบอย่างน้อยหนึ่งภาพและอีกสามภาพถัดมาในทันทีสำหรับชุดกฎที่ไม่สำคัญ ใช้รูปประจำตัวของคุณและกฎชีวิตปกติถ้าคุณไม่สามารถคิดอะไรดีขึ้น
หากคุณชอบคุณสามารถใช้Gosper Glider Gunที่มีเพียงบิตเดียวที่มีชีวิตอยู่ในเลเยอร์สีเขียว 128 (แน่นอนว่าจะใช้งานได้ตามปกติ):
โพสต์ลำดับที่น่าสนใจหรือภาพเคลื่อนไหวได้รับการสนับสนุนอย่างมาก