ภารกิจที่นี่คือการอ่านจาก.rle
ไฟล์Golly หรือข้อความธรรมดา (ตัวเลือกของคุณ) ที่มีชื่อไฟล์ให้ (บน STDIN หรือเป็นอาร์กิวเมนต์บรรทัดคำสั่ง) และระบุและนับรูปแบบทั่วไปในตารางที่เข้ารหัสในนั้น
หรือคุณอาจเลือกที่จะมีเนื้อหาของไฟล์ที่ให้โดยตรงผ่าน STDIN แทน
โปรแกรมของคุณควรจะสามารถระบุและเห็นความแตกต่างอย่างน้อยสิบห้าร่วมกับสิ่งมีชีวิตยังคงเข้มงวดและห้า oscillators ที่พบมากที่สุดรวมทั้งร่อน
ขั้นตอนทั้งหมดของออสซิลเลเตอร์เหล่านี้ควรได้รับการยอมรับเช่นเดียวกับขั้นตอนทั้งสี่ของเครื่องร่อน
มันควรจะออกรายการที่มีการนับครั้งสุดท้ายของแต่ละรูปแบบที่มีชื่อและปริมาณของแต่ละรูปแบบในบรรทัดที่แยกต่างหาก โปรแกรมของคุณอาจรวมอยู่ในรายการ ouput ทั้งรูปแบบเหล่านี้ทั้งหมดหรือเฉพาะรูปแบบที่พบอย่างน้อยหนึ่งรายการ
รูปแบบที่เป็นส่วนหนึ่งของรูปแบบอื่น ๆ ที่นับไม่ควรนับ (ตัวอย่างเช่น 8-cell phase ของสัญญาณไม่ควรนับเป็นสองช่วงตึกและไม่ควรนับ tie-ship เป็นสองเรือรบ)
คุณอาจสมมติว่าอินพุตมีความเสถียรแล้วและไม่มีรูปแบบใดที่ไม่อยู่ในชุดที่กำหนด คุณอาจสมมติว่ากริดอินพุตจะพอดีภายในกล่อง 1024x1024
นี่คือรหัสกอล์ฟดังนั้นโปรแกรมที่สั้นที่สุดชนะ
คำอธิบายรูปแบบไฟล์ RLE
ไฟล์ RLE มีกริดไลฟ์แบบเข้ารหัสความยาววิ่ง บรรทัดทั้งหมดที่ขึ้นต้นด้วย#
ความคิดเห็นและควรละเว้น
x=<width>,y=<height>,rule=<rule>
ครั้งแรกที่สายไม่ว่างเปล่าที่ไม่แสดงความคิดเห็นเป็นของแบบฟอร์ม B3/S23
สำหรับจุดประสงค์ของงานนี้กฎจะเป็น มันอาจมีช่องว่างที่ควรถอดก่อนประมวลผลบรรทัดนี้ (แน่นอนว่าไม่จำเป็นต้องประมวลผลบรรทัดนี้เลย)
บรรทัดที่ไม่ใช่ความคิดเห็นหลังจากบรรทัดแรกควรถูกใช้เป็นสตริงเดี่ยว นี้ควรมีเพียงตัวเลขทศนิยม, ตัวละคร$
, b
และo
และแบ่งบรรทัดและจะไม่จบลงด้วยหลัก การขึ้นบรรทัดใหม่นั้นจะถูกเพิกเฉย แต่คุณอาจคิดว่าการขึ้นบรรทัดใหม่นั้นจะไม่รบกวนสตริงของตัวเลข
!
นี้อาจถูกยกเลิกโดยเป็นหนึ่งเดียว
b
หมายถึงเซลล์ที่ตายแล้วo
หมายถึงเซลล์ที่มีชีวิตและ$
แสดงถึงจุดสิ้นสุดของแถว เลขทศนิยมใด ๆ บ่งชี้ว่าสัญลักษณ์ต่อไปนี้จะต้องได้รับการปฏิบัติเหมือนเป็นการทำซ้ำหลายครั้ง
การเข้ารหัสรูปแบบธรรมดา
ตัวเลือกอื่นคือการอ่านรูปแบบในรูปแบบข้อความธรรมดาอื่นที่อธิบายไว้ที่นี่ ในการเข้ารหัสนี้เซลล์ที่ปิดจะแสดงด้วยเครื่องหมายยัติภังค์และในเซลล์จะถูกแสดงด้วยตัวพิมพ์ใหญ่ Os โดยมีบรรทัดใหม่คั่นแถว
คุณอาจสมมติว่าบรรทัดที่ไม่ใช่ความคิดเห็นทั้งหมดจะถูกเติมเต็มให้มีความยาวเท่ากันด้วยเครื่องหมายขีดกลาง
บรรทัดที่ขึ้นต้นด้วย!
คือความคิดเห็นและควรละเว้น
บางกรณีทดสอบ
RLE:
#This is a comment
x = 35, y = 16, rule = B3/S23
bo$2o$obo5$22bo$22bo$22bo2$18b3o3b3o2$22bo$22bo10b2o$22bo10b2o!
ข้อความธรรมดา:
!This is a comment
-O---------------------------------
OO---------------------------------
O-O--------------------------------
-----------------------------------
-----------------------------------
-----------------------------------
-----------------------------------
----------------------O------------
----------------------O------------
----------------------O------------
-----------------------------------
------------------OOO---OOO--------
-----------------------------------
----------------------O------------
----------------------O----------OO
----------------------O----------OO
ผล:
Glider 1
Blinker 4
Block 1
RLE:
x = 27, y = 15, rule = B3/S23
5b2o$5b2o9$11bo$o9bobo$o9bobo$o10bo12b3o!
#Here's a comment at the end
ข้อความธรรมดา:
-----OO--------------------
-----OO--------------------
---------------------------
---------------------------
---------------------------
---------------------------
---------------------------
---------------------------
---------------------------
---------------------------
-----------O---------------
O---------O-O--------------
O---------O-O--------------
O----------O------------OOO
!Here's a comment at the end
ผล:
Block 1
Blinker 2
Beehive 1
RLE:
#You may have multiple comments
#As shown here
x = 13, y = 11, rule = B3/S23
2o$2o2$12bo$12bo$12bo$2b2o$2b2o4b2o$7bo2bo$7bobo$8bo!
ข้อความธรรมดา:
!You may have multiple comments
!As shown here
OO-----------
OO-----------
-------------
------------O
------------O
------------O
--OO---------
--OO----OO---
-------O--O--
-------O-O---
--------O----
ผล:
Block 2
Blinker 1
Loaf 1
RLE:
# Pentadecathlon
# Discovered by John Conway
# www.conwaylife.com/wiki/index.php?title=Pentadecathlon
x = 10, y = 3, rule = B3/S23
2bo4bo2b$2ob4ob2o$2bo4bo!
ข้อความธรรมดา:
! Pentadecathlon
! Discovered by John Conway
! www.conwaylife.com/wiki/index.php?title=Pentadecathlon
--O----O--
OO-OOOO-OO
--O----O--
ผล:
Pentadecathlon 1
โบนัส
หากคุณสนับสนุนทั้งรูปแบบการป้อนข้อมูล (ใช้นามสกุลไฟล์ [ .rle
สำหรับไฟล์ rle และ.cells
สำหรับธรรมดา - วิธีการอ่านส่วนขยายอื่น ๆ นั้นไม่ได้กำหนดไว้] หรือการตั้งค่าสถานะบรรทัดคำสั่งเพื่อแยกแยะระหว่างพวกเขา) คุณอาจลบ 5% จากคะแนนของคุณ
OOO.OO\n....OO