บทนำ:
ผมเห็นมีเพียงหนึ่งที่เกี่ยวข้องกับแบดมินตันท้าทายอื่น ๆ ในขณะนี้ ตั้งแต่ฉันเล่นแบดมินตันด้วยตัวเอง (ในช่วง 13 ปีที่ผ่านมา) ฉันคิดว่าฉันจะเพิ่มความท้าทายเกี่ยวกับแบดมินตัน ที่นี่ที่สอง (อันแรกพบได้ที่นี่ ):
ท้าทาย:
กฎบางอย่างเกี่ยวกับแบดมินตันทำหน้าที่:
- การให้บริการจะทำในแนวทแยงมุมผ่านเน็ตเสมอ
- คุณจะต้องให้บริการหลังจากเส้นที่ขนานและใกล้เคียงที่สุดกับเน็ต
- พื้นที่ที่คุณได้รับอนุญาตให้บริการแตกต่างกันไปขึ้นอยู่กับว่าเป็นพื้นที่เดี่ยว (1 vs 1) หรือสองครั้ง / พื้นที่ผสม (2 vs 2)
- สำหรับคนโสด (1 กับ 1) พื้นที่สีน้ำเงินในภาพด้านล่างเป็นพื้นที่ที่คุณได้รับอนุญาต นี่คือการรวมส่วนที่ด้านหลัง แต่ไม่รวมชิ้นส่วนที่ด้านข้าง
- สำหรับคู่ผสม / มิกซ์ (2 vs 2) พื้นที่สีเขียวในภาพด้านล่างเป็นตำแหน่งที่คุณได้รับอนุญาตให้ใช้เซิร์ฟเวอร์ ดังนั้นนี่คือไม่รวมส่วนที่ด้านหลัง แต่รวมถึงชิ้นส่วนที่ด้านข้าง
- คุณอาจไม่ยืนอยู่บนเส้นเมื่อเสิร์ฟ แต่รถรับส่งจะยังคงอยู่ข้างในถ้าพวกเขาลงจอดบนเส้น
นี่คือเค้าโครงของสนามแบดมินตัน:
กฏท้าทาย:
การป้อนข้อมูล:
คุณจะได้รับสองอินพุต:
- สิ่งที่บ่งบอกว่าเรากำลังเล่นเดี่ยวหรือคู่ / มิกซ์ (เช่นบูลีน)
- สิ่งที่จะระบุว่าคุณกำลังบล็อกบล็อกใด (เช่น
[1,2,3,4]
หรือ['A','B','C','D']
ใช้ในภาพด้านบน)
เอาท์พุท:
เฉพาะบรรทัดที่เกี่ยวข้องสำหรับการให้บริการปัจจุบัน (รวมถึงสุทธิ) รวมถึงF
เพื่อระบุที่ที่คุณให้บริการและอีกมากมายT
เพื่อระบุว่าคุณจะให้บริการที่
แม้ว่าในความเป็นจริงคุณจะได้รับอนุญาตให้บริการจากและไปยังที่ใดก็ได้ในพื้นที่ที่กำหนดเราถือว่าคนที่จะให้บริการจะยืนอยู่ในมุมของพื้นที่ให้บริการที่ปิดตรงกลางของสุทธิซึ่งเป็นที่ที่คุณจะวาง F
และพวกเขาจะทำหน้าที่ใด ๆ ของมุมทั้งสี่ของพื้นที่ที่พวกเขาจะต้องทำหน้าที่ในการซึ่งเป็นที่ที่คุณจะวางT
s
ในฐานะที่เป็น ASCII-art สนามแบดมินตันทั้งหมดจะเป็นดังต่อไปนี้ (มีการเพิ่มตัวเลขเพื่อให้คุณไม่ต้องนับเอง):
2 15 15 2
+--+---------------+---------------+--+
| | | | | 1
+--+---------------+---------------+--+
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | 9
| | | | |
| | | | |
| | | | |
| | | | |
+--+---------------+---------------+--+
| | | | | 2
| | | | |
O=====================================O 37 times '='
| | | | |
| | | | | 2
+--+---------------+---------------+--+
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | 9
| | | | |
| | | | |
| | | | |
| | | | |
+--+---------------+---------------+--+
| | | | | 1
+--+---------------+---------------+--+
ตัวอย่าง:
ตัวอย่างสองตัวอย่างสำหรับการแสดงผลเฉพาะส่วนที่เกี่ยวข้องของการบริการ:
อินพุต: บล็อกเดี่ยวและบล็อกA
เอาต์พุต:
T---------------T
| |
+---------------+
| |
| |
| |
| |
| |
| |
| |
| |
| |
T---------------T
| |
| |
O=====================================O
| |
| |
+---------------+
| F|
| |
| |
| |
| |
| |
| |
| |
| |
+---------------+
| |
+---------------+
อย่างที่คุณเห็นF
มีการเพิ่มที่มุมภายในบล็อก แต่T
แทนที่ด้วย+
ในเอาต์พุต ASCI-art
อินพุต: เพิ่มเป็นสองเท่าและบล็อกC
เอาต์พุต:
+--+---------------+
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | F|
+--+---------------+
| | |
| | |
O=====================================O
| | |
| | |
T---------------+--T
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
T---------------+--T
กฏท้าทาย:
- ขึ้นบรรทัดใหม่ที่นำหน้าและต่อท้ายเป็นทางเลือก (รวมถึงบรรทัดว่างสองบรรทัดที่นำหน้าและต่อท้ายเมื่ออินพุตเป็นบรรทัดเดียว) ช่องว่างต่อท้ายเป็นตัวเลือกเช่นกัน ช่องว่างชั้นนำมีผลบังคับใช้อย่างไรก็ตาม
- อินพุตที่แตกต่างกันสี่ประการที่เหมาะสมเพื่อระบุว่าบล็อกที่เราให้บริการนั้นได้รับอนุญาต (สำหรับจำนวนเต็มอยู่ในช่วง [-999,999]) เช่นเดียวกับสองอินพุตที่แตกต่างกันตามสมควรเพื่อระบุว่าเป็นแบบเดี่ยวหรือคู่ / ผสม (โปรดทราบช่องโหว่ที่ต้องห้ามนี้ที่เกี่ยวข้อง ) โปรดระบุ I / O ที่คุณใช้ในคำตอบ!
- คุณได้รับอนุญาตให้ใช้ตัวพิมพ์เล็ก
f
และt
(หรือกรณีผสม) แทนและF
T
- คุณได้รับอนุญาตให้ส่งคืนรายการบรรทัดหรือเมทริกซ์ของอักขระแทนที่จะส่งคืนหรือพิมพ์เอาต์พุตสตริงเดียว
กฎทั่วไป:
- นี่คือ รหัสกอล์ฟดังนั้นคำตอบที่สั้นที่สุดในหน่วยไบต์จะเป็นผู้ชนะ
อย่าปล่อยให้ภาษาโค้ดกอล์ฟกีดกันคุณจากการโพสต์คำตอบด้วยภาษาที่ไม่ได้เข้ารหัส พยายามหาคำตอบสั้น ๆ ที่เป็นไปได้สำหรับภาษาโปรแกรม 'ใด ๆ ' - กฎมาตรฐานใช้สำหรับคำตอบของคุณด้วยกฎ I / O เริ่มต้นดังนั้นคุณจึงได้รับอนุญาตให้ใช้ STDIN / STDOUT ฟังก์ชั่น / วิธีพร้อมพารามิเตอร์ที่เหมาะสมและประเภทผลตอบแทนโปรแกรมเต็มรูปแบบ การโทรของคุณ
- ช่องโหว่เริ่มต้นเป็นสิ่งต้องห้าม
- หากเป็นไปได้โปรดเพิ่มลิงก์พร้อมทดสอบรหัสของคุณ (เช่นTIO )
- นอกจากนี้ขอแนะนำให้เพิ่มคำอธิบายสำหรับคำตอบของคุณ