วิดีโอเกมMinecraftนั้นเกี่ยวกับการวางและลบบล็อกประเภทต่าง ๆ ในโครงร่างจำนวนเต็ม 3 มิติที่ประกอบขึ้นเป็นโลกเสมือนจริง จุดขัดแตะแต่ละจุดสามารถมีหนึ่งบล็อกแน่นอนหรือว่างเปล่า ( บล็อก " อากาศ " อย่างเป็นทางการ) ในความท้าทายนี้เราจะได้รับการที่เกี่ยวข้องกับระนาบเดียวแนว 2D ของโลก 3 มิติและประเภทหนึ่งของบล็อก: ทรวงอก
หีบสมบัติให้ผู้เล่นเก็บไอเทม เมื่อหีบทั้งสองอยู่ติดกันในแนวระนาบแนวตั้งฉากเดียวกันพื้นผิวของมันจะเชื่อมโยงกันและหน้าอกสองชั้นที่มีความจุสองเท่า ไม่มีอะไรใหญ่ไปกว่าหน้าอกคู่ได้ ไม่มีสามทรวงอกและทรวงอกสี่เท่า
บล็อกหน้าอกสามารถวางในจุดขัดแตะที่ว่างเปล่าหากจุดที่อยู่ติดกันทั้งสี่มุมฉากนั้นว่างเปล่าทั้งหมดหรือหากมีบล็อกหน้าอกที่ไม่ได้เป็นส่วนหนึ่งของหน้าอกคู่ กฎการจัดวางเหล่านี้ทำให้แน่ใจได้ว่าจะไม่มีความเคลือบแคลงใด ๆ เกี่ยวกับการที่บล็อคหน้าอกเชื่อมโยงกับแบบฟอร์มทรวงอกสองครั้ง
ตัวอย่างเช่นสมมติว่า.เป็นพื้นที่ว่างเปล่าและCเป็นหน้าอก: (ตัวเลขนี้เป็นพื้นที่ว่างเปล่าและเพื่อจุดประสงค์ในการระบุตัวตน)
.......C..
.1.C2.C3..
........5C
.CC4..CC..
..........
- สามารถวางหีบในจุดที่ 1 ได้เนื่องจากเพื่อนบ้านทั้ง 4 นั้นว่างเปล่า
- หน้าอกสามารถวางในจุดที่ 2 เพราะหน้าอกที่อยู่ใกล้เคียงไม่ได้เป็นส่วนหนึ่งของหน้าอกคู่
- ไม่สามารถใส่หน้าอกในจุดที่ 3 ได้เนื่องจากจะมีความกำกวมว่าหน้าอกสองชั้นก่อตัวอย่างไร
- ไม่สามารถวางหน้าอกในจุดที่ 4 เนื่องจากหน้าอกที่อยู่ใกล้เคียงเป็นส่วนหนึ่งของหน้าอกคู่แล้ว
- สามารถวางหน้าอกในจุดที่ 5 หน้าอกคู่ที่อยู่ติดกันในแนวทแยงมุมจะไม่ส่งผลกระทบอะไรเลย
สมมติว่าพื้นที่ที่อยู่นอกกริดนั้นว่างเปล่าการเปลี่ยนทุกอย่าง.ในกริดเป็น a *ถ้าหน้าอกสามารถวางไว้ที่นั่นจะส่งผลให้เกิดสิ่งนี้:
******.C**
***C**C.**
*..***..*C
.CC.*.CC.*
*..***..**
ไม่*สามารถเว้นวรรคทั้งหมดได้พร้อมกับหีบในเวลาเดียวกัน แต่ถ้าคุณมีหน้าอกเพียงอันเดียวก็สามารถวางไว้ในหีบใดก็ได้
ท้าทาย
เขียนโปรแกรมหรือฟังก์ชั่นที่ใช้ใน a .และCกริดและเปลี่ยนทุกอย่าง.เป็น a *หากวางหน้าอกไว้ที่นั่นพิมพ์หรือคืนกริดที่ได้
อินพุตอาจมาจาก stdin หรือไฟล์หรือเป็นอาร์กิวเมนต์สตริงไปยังฟังก์ชัน
คุณอาจสันนิษฐานว่าอินพุตนั้นมีรูปแบบที่ดี - เช่นกริดของข้อความอย่างสมบูรณ์แบบสี่เหลี่ยมอย่างน้อย 1 ตัวกว้างและสูงเท่านั้นที่มี
.และCคุณอาจจะคิดว่ามีการขึ้นบรรทัดใหม่หลังจากแถวสุดท้าย (และอาจมีหนึ่งในเอาต์พุต )คุณอาจถือว่าการจัดเรียงของหีบในอินพุตสอดคล้องกับกฎข้างต้น จะไม่เคยมีความคลุมเครือเกี่ยวกับว่าทรวงอกรูปแบบทรวงอกสองครั้ง
หากต้องการคุณอาจจะใช้ใด ๆ ที่แตกต่างกันสามASCII พิมพ์ตัวอักษรในสถานที่ของ
., และC*คุณไม่สามารถใช้งานอย่างอื่นแทนการขึ้นบรรทัดใหม่ทรวงอกทั้งหมดเป็นทรวงอกปกติ ไม่หีบติดกับดักหรือหีบพลิก
เกณฑ์การให้คะแนน
การส่งที่มีจำนวนไบต์น้อยที่สุดจะเป็นผู้ชนะ
สำหรับความท้าทายที่เกี่ยวข้อง Minecraft ที่ท้าทายความสามารถมากขึ้นอีกนิดลองNether พอร์ทัลการตรวจสอบ