ท้าทาย
รับอินพุตสตริงส่งออกเวอร์ชันที่ทำลายแล้ว
กระบวนการ
P
r Pr r
o o o
g g g
r r r rogr r
a -> a -> a -> a -> a -> -> -> -> ->
m m m m m
m m m m m mmar m
i i i i i i i mi m
n n n n gn gn gn gn gni mgni
g g Pg Pg roPg roPg roPgmar roPgmar roPgmar roPgmar
- วางสตริงในแนวตั้ง
- เลือกจำนวนเต็มแบบสุ่มระหว่าง
1และ(height of the column of characters) - 1และทิศทางแบบสุ่ม (ซ้ายหรือขวา) - หมุนจำนวนอักขระไปในทิศทางนั้น (หากช่องว่างเหล่านั้นว่างไปที่ขั้นตอนที่ 4 ถ้าไม่กลับไปยังขั้นตอนที่ 2)
- ปล่อยให้ตัวละครเหล่านั้นตกเนื่องจากแรงโน้มถ่วง
- ทำซ้ำจนกว่าความสูงของคอลัมน์ของตัวละครจะ
1ใหญ่กว่าความสูงของคอลัมน์ถัดจากมันมากที่สุด (กล่าวคือมันเป็นไปไม่ได้ที่จะทำลายอีก ("ขั้นตอน 2-4") คอลัมน์) - หากมีอีกคอลัมน์หนึ่งของอักขระที่มากกว่า
1อักขระที่สูงกว่าคอลัมน์โดยรอบอย่างน้อยหนึ่งคอลัมน์ (เช่นรื้อถอนได้) ให้ทำลายคอลัมน์นั้นซ้ำ ๆ จนกว่าจะไม่สามารถรื้อถอนได้อีก หากมีคอลัมน์ที่สามารถรื้อถอนได้หลายคอลัมน์ให้ทำลายเสาที่สูงที่สุดทั้งหมด (หากมีคอลัมน์ที่สูงที่สุดหลายเสาให้รื้อเสาที่เหลือทางซ้าย) - ทำซ้ำจนกว่าคอลัมน์ทั้งหมดจะไม่สามารถทำลายได้อีกต่อไป
หากมีอักขระเว้นวรรคในอินพุตให้ทำลายอักขระเหล่านั้นก่อนพร้อมกันทั้งหมด
C
o
d
e -> oC -> -> ...
de
G G G
o o o
l l l
f f defoC
กฎระเบียบ
- ช่องโหว่มาตรฐานเป็นสิ่งต้องห้าม
- อนุญาตให้ขึ้นบรรทัดใหม่และลากขึ้นบรรทัดใหม่ได้
- โปรแกรมของคุณอาจพิมพ์หรือส่งคืนสตริง / เทียบเท่า
- เอาต์พุตต้องไม่ถูกกำหนดไว้ (ยกเว้นว่าอินพุตไม่สามารถทำลายได้)
นี่คือรหัสกอล์ฟดังนั้นการส่งที่มีจำนวนไบต์น้อยที่สุดในภาษาของพวกเขาจึงชนะ!
1
ฉันสงสัยว่าการสุ่มจำเป็นจริงๆหรือไม่ที่นี่
—
Keyu Gan
@KeyuGan ฉันคิดว่าความท้าทายจะไม่สำคัญพอสมควรหากผู้คนต้องเลือกจำนวนตัวอักษรและสลับซ้าย / ขวา
—
JungHwan Min
เรายังสามารถพูดได้ว่า 4 สุ่มและส่งคืนโดยการทอยลูกเต๋าที่เป็นธรรม
—
คำสรรพนามของฉันคือ monicareinstate
@someone
—
JungHwan ขั้นต่ำ
4จะทำให้เอาต์พุตที่กำหนดขึ้นนั่นคือไม่ใช่ "random" แก้ไขกฎเพื่อให้ชัดเจน
@someone คุณอ้างถึง 4 เนื่องจากXKCDหรือไม่
—
Giacomo Garabello