s←⊢⊆⍨' '≠⊢
a b c←2097144 131064 1957895
f←{(⊂⍵)∊(12↑v),(s'yi ya ye yao you yan yang yin ying yong yu yue yuan yun wu wa wo wai wei wan wang wen weng nv lv nve lve'),(,⊤(a-8)1966080 393208 1966064 2096720 1966072 1048568a a 2056184a 131048a 7288b 7280 106488b 7280b 0 1958911 73735c c 352263c 24583 1859591c,5⍴7)/,('bpmfdtnlgkhzcs',s'zh ch sh r j q x')∘.,v←'aoe',s'ai ei ao ou an ang en eng ong u ua uo uai ui uan uang un ueng i ia ie iao iu ian iang in ing iong u ue uan un'}
ลองออนไลน์!
กำลังเล่นกอล์ฟอยู่
Ungolfed
s←{⍵⊆⍨' '≠⍵}
con←s'b p m f d t n l g k h z c s zh ch sh r j q x'
vwl←s'a o e ai ei ao ou an ang en eng ong u ua uo uai ui uan uang un ueng i ia ie iao iu ian iang in ing iong u ue uan un'
tab←con∘.,vwl
bin←,⊤2097136 1966080 393208 1966064 2096720 1966072 1048568 2097144 2097144 2056184 2097144 131048 2097144 7288 131064 7280 106488 131064 7280 131064 0 1958911 73735 1957895 1957895 352263 1957895 24583 1859591 1957895 7 7 7 7 7
all←'aoe',(12↑vwl),(s'yi ya ye yao you yan yang yin ying yong yu yue yuan yun wu wa wo wai wei wan wang wen weng nv lv nve lve'),bin/,tab
f←{(⊂⍵)∊all}
ลองออนไลน์!
ฟังก์ชั่นตัวช่วยs
คลายสตริงที่คั่นด้วยช่องว่าง:
{⍵⊆⍨' '≠⍵} monadic function taking a string
' '≠⍵ 0s at spaces, 1s elsewhere
⍵⊆⍨ Partition (split at 0s)
ฉันแรกจะเก็บสตริงเริ่มต้นและสุดท้ายที่เป็นไปได้ในพยางค์จากนั้นสร้างตารางtab
ที่มีการต่อกันของแต่ละสตริงจากรายการแรกพร้อมกับแต่ละสตริงจากรายการที่สอง
ต่อไปฉันเก็บข้อมูลไบนารี่เป็นรายการจำนวนเต็ม จำนวนเต็มบางส่วนถูกทำซ้ำและสามารถเก็บไว้ในตัวแปรซึ่งอนุญาตให้มีการเว้นช่องว่าง
จำนวนเต็มแต่ละตัวจะถูกถอดรหัสเป็นไบนารีและแสดงถึงหนึ่งแถวของตาราง แต่ละบิตในตัวเลขแสดงว่าพยางค์ที่แน่นอนในแถวนั้นเป็นพยางค์ที่ถูกต้องโดย MSB ที่เป็นตัวแทนของคอลัมน์แรก พยางค์ที่ไม่ถูกต้องทั้งหมดจะถูกลบออกจากตาราง
เราแผ่ตารางลงในรายการเพิ่มในแบบฟอร์มโดยไม่มีตัวอักษรเริ่มต้นเป็นกรณีพิเศษและสุดท้ายตรวจสอบว่าอินพุตของเราอยู่ในรายการหรือไม่
ศักยภาพการเล่นกอล์ฟที่เป็นไปได้เพิ่มเติม:
- เขียนการเข้ารหัส base64 หรือ base255
- เรียงลำดับคอลัมน์และแถวใหม่เพื่อทำให้ตัวเลขมีขนาดเล็กลง
Python สคริปต์ที่เป็นประโยชน์และเครื่องมือสร้างกรณีทดสอบ: ลองออนไลน์!
nar
นี้ : P