ในขณะที่เรากำลังเตะสามเหลี่ยมสามเหลี่ยมผมอยากจะชี้ให้เห็นว่ามันมีค่าเท่ากับโพลีโม่โนบนกริดสามเหลี่ยม พวกมันถูกเรียกว่ารูปหลายเหลี่ยม ( polyiamonds ) และเป็นรูปทรงที่เกิดจากการติดรูปสามเหลี่ยมด้านเท่าด้านข้างเข้าด้วยกัน ในการท้าทายนี้คุณจะต้องตัดสินใจว่าส่วนย่อยของตารางสามเหลี่ยมเป็นรูปหลายเหลี่ยมหรือไม่และพวกมันมีรูอยู่ในนั้นหรือไม่ เนื่องจากใช้เวลาเพียง 9 สามเหลี่ยมในการสร้างรูปหลายเหลี่ยมที่มีรูอยู่ภายในรหัสของคุณจึงต้องสั้นที่สุด
ตาราง
เราจะใช้เค้าโครงสามเหลี่ยมของ Martinสำหรับอินพุต:
สังเกตความจริงที่ว่าจุดกึ่งกลางของรูปสามเหลี่ยมเป็นรูปสี่เหลี่ยมมุมฉากและมุมบนซ้าย "จุด" ขึ้น เราสามารถอธิบายส่วนย่อยของตารางนี้ได้โดยให้ "แผนที่ดาว" เป็นรูปสี่เหลี่ยมผืนผ้าเพื่อระบุสามเหลี่ยมที่รวมอยู่และที่ไม่รวมอยู่ด้วย ตัวอย่างเช่นแผนที่นี้:
** **
*****
สอดคล้องกับรูปหลายเหลี่ยมขนาดเล็กที่สุดที่มีรู:
หลุม
polyiamond ซึ่งมีหลุมเช่นตัวอย่างข้างต้น (ภูมิภาคไม่ใช่ส่วนหนึ่งของ polyiamond ซึ่งถูกล้อมรอบทุกด้านตามภูมิภาคที่มี ) ไม่ได้ทอพอโลยีพูดเพียงแค่เชื่อมต่อ
ความท้าทาย
เขียนฟังก์ชั่นหรือโปรแกรมซึ่งจะเป็น input เป็น "แผนที่ดาว" ตามที่อธิบายไว้ข้างต้นและเอาท์พุท truthy ถ้าหากว่าย่อยที่ระบุของตารางสามเหลี่ยมเป็นpolyiamond เพียงแค่เชื่อมต่อ
ตัวอย่างเพิ่มเติม
*** ***
*******
สอดคล้องกับรูปหลายเหลี่ยม
ซึ่งเชื่อมต่อได้ง่าย
* *
** **
***
สอดคล้องกับรูปหลายเหลี่ยม
ซึ่งเชื่อมต่อได้ง่าย
** **
*** **
****
สอดคล้องกับที่ไม่ใช่โพลีออน
ซึ่งจะไม่สามารถเชื่อมต่อได้อย่างง่ายดายแม้ว่าจะเป็นรูปหลายเหลี่ยม
ใส่ข้อมูลจำเพาะ
- อินพุตจะประกอบด้วยเครื่องหมายดอกจันช่องว่างและตัวดึงข้อมูลบรรทัดเท่านั้น
- อักขระตัวแรกของอินพุตจะเป็นช่องว่างหรือดอกจัน (สอดคล้องกับรูปสามเหลี่ยมชี้ขึ้นที่มุมซ้ายบนของตาราง)
- จะมีเครื่องหมายดอกจันอย่างน้อยหนึ่งรายการในบรรทัดแรกและบรรทัดสุดท้าย
- ไม่มีการรับประกันว่าบรรทัดหลังจากบรรทัดแรกจะไม่ว่างเปล่า สองบรรทัดฟีดในแถวอาจปรากฏขึ้นในการป้อนข้อมูลที่ถูกต้อง
- ความยาวบรรทัดไม่จำเป็นต้องเหมือนกันทั้งหมด
สภาพการชนะ
นี่คือ รหัสกอล์ฟดังนั้นคำตอบที่สั้นที่สุดในหน่วยไบต์จะเป็นผู้ชนะ
กรณีทดสอบ
แผนที่ Truthy:
1) *
2) *
*
3) **
4) *** ***
*******
5) * *
** **
***
6) *
**
*
7) **
***
****
8) ****
** *
*****
9) ***********
** ** **
**** ** **
**
************
แผนที่เท็จ:
1) *
*
*
2) * *
3) *
*
4) **
**
5) ***
***
6) ** **
*****
7) ** **
*** **
****
8) *
*
9) *****
** *
*****
AV VA\nVAVAV
แทน** **\n*****
มันจะช่วยให้มนุษย์มองเห็นได้ง่ายขึ้น ฉันทำการแก้ไขหนึ่งในไดอะแกรม ASCII ของ Martin แล้ว