ความท้าทายของคุณคือการเขียนโปรแกรมเพื่อแปล (ภาษาอังกฤษ) leetspeak / lolspeak / txtspk เป็นภาษาอังกฤษทั่วไป โปรแกรมของคุณควรอ่านจากอินพุตมาตรฐานและเอาต์พุตไปยังเอาต์พุตมาตรฐานยกเว้นว่าภาษาของคุณไม่รองรับสิ่งเหล่านี้
คุณสามารถใช้ไฟล์ที่มีรายการคำในภาษาอังกฤษโดยคั่นด้วยบรรทัดใหม่ มันควรจะถูกเรียกW
และจะอยู่ในไดเรกทอรีเดียวกับโปรแกรมของคุณ (บนระบบ GNU / Linux และอื่น ๆ คุณสามารถสร้างW
ลิงก์ได้/usr/share/dict/words
) รายการไม่จำเป็นต้องเป็นตัวพิมพ์เล็กทั้งหมดคุณสามารถใช้มันเพื่อกำหนดว่าคำควรมีตัวพิมพ์ใหญ่หรือไม่
นี้จะขึ้นอยู่กับคำถามที่ตอนนี้ถูกลบโพสต์โดย Nikos เมตรซึ่งสามารถพบได้ที่นี่ สิ่งนี้ไม่ซ้ำกันเนื่องจากคำถามเดิมนี้ถูกปิดและไม่ได้รับคำตอบใด ๆ เนื่องจากไม่มีเกณฑ์การชนะและผู้ใช้ไม่ต้องการใส่
เกณฑ์การให้คะแนน
การให้คะแนนค่อนข้างซับซ้อน!
คะแนนของคุณคือ
(leet items + bonuses) * 10 / (code length)
คะแนนสูงสุดชนะ
โปรแกรมของคุณไม่จำเป็นต้องสมบูรณ์แบบและอาจจะไม่สมบูรณ์แบบ แต่ยิ่งแม่นยำก็ยิ่งได้รับโบนัสมากเท่านั้น!
เนื่องจาก$
สามารถหมายถึงทั้งสองs
และS
คุณจะได้รับโบนัส 5 คะแนนต่อรายการ leet สำหรับการตัดสินใจว่าควรมีตัวพิมพ์ใหญ่หรือไม่ (เช่นอักษรตัวใหญ่ตอนเริ่มประโยค)
คุณจะได้รับโบนัสเพิ่มอีก 5 คะแนนต่อรายการ leet สำหรับการใช้คำนามที่เหมาะสม (คำที่มีตัวพิมพ์ใหญ่เสมอ) - วิธีการทำงานนี้คือคุณจะต้องมองผ่านรายการคำให้ทำผลลัพธ์เป็นตัวพิมพ์ใหญ่หากมีตัวพิมพ์ใหญ่อยู่ใน รายการและหากมีทั้งสองรุ่นเพียงแค่เดา
หากตัวละครมีสองความหมาย (เช่น1
สามารถหมายถึงL
หรือI
) คุณจะได้รับ 20 คะแนนต่อรายการ leet สำหรับการเลือกเฉพาะการแปลของรายการที่ทำให้คำภาษาอังกฤษจริง - ใช้รายการคำสำหรับนี้ หากการแปลมากกว่าหนึ่งรายการของ leet ทำให้คำภาษาอังกฤษจริงคุณสามารถเลือกหนึ่งในการแปลที่ถูกต้องและยังคงได้รับโบนัส
รายชื่อ Leet
เหล่านี้เป็นรายการ leet ที่คุณอาจใช้ คุณไม่จำเป็นต้องปรับใช้ทั้งหมด แต่ยิ่งเพิ่มคะแนนยิ่งได้รับ
คุณไม่สามารถให้คะแนนคะแนนโดยการแปลรายการหรือตัวละครเป็นของตัวเอง กฎนี้แทนที่ความผิดพลาดใด ๆ ที่ฉันอาจทำในรายการ
มันดึงดูดให้ทำง่ายๆหรือtr
s/.../.../g
ความท้าทายที่แท้จริงคือการกำหนดความหมายหลายอย่างที่สามารถทำได้และไม่ถูกต้องโดยใช้คำศัพท์
รายการ Leet (แต่ละรายการเพิ่ม 1 leet items
ในสูตร)
$ -> s, S (-> c, C 5 -> s, S @ -> a, A 4 -> a, A 3 -> e, E 7 -> t, T + -> t, T # -> h, H teh -> the 'd -> ed pwnd -> pwned pwnt -> pwned k, K -> ตกลง kk -> ตกลง 0 [ศูนย์] -> o, O y, Y -> ทำไม 4 -> สำหรับ txt -> ข้อความ dafuq -> อะไรคือ f ** k / \, ^ -> a, A \ / -> v, V d00d -> เพื่อน n00b -> มือใหม่ \ / \ / -> w, W 8 -> b, B | _ | -> u, U | - | -> h, H Я -> r, R j00 -> คุณ joo -> คุณ vv, VV -> w, W พรุ่งนี้ -> พรุ่งนี้ | <-> k, K [), |) -> d, D <3 -> ความรัก > <-> x, X 10100111001 -> leet (การแทนเลขฐานสองของ 1337) 2 -> ถึงด้วย ur, UR -> ของคุณคุณ (ไม่จำเป็นต้องแยกความแตกต่างระหว่างสองอย่างนี้อย่างถูกต้อง) คุณ, U -> คุณ 8 -> -ate-, 8 x, X -> -ks -, - cks- z, Z -> s, S 1 -> i, I, l, L ! -> ฉันฉัน! c, C -> ดู, C, ทะเล b, B -> เป็น, B, ผึ้ง [ตัวอักษรที่เน้นเสียง] -> [แบบฟอร์มที่ไม่เน้นเสียง] (คะแนน 1 ต่อตัวอักษรเน้นเสียงที่รองรับ) &, 7 -> และ, anned, ant (อาจใช้ระหว่างคำหนึ่งคำ)
ยาก "Leet": คะแนน 30 คะแนนสำหรับleet items
แต่ละคะแนน
!!! 1 !! 1-> !!!!!!! (แปล 1 ในลำดับ! เข้า! !!! one! -> !!!!! ! eleven-> !!!
ตัวอย่าง
นี่คือตัวอย่างของสิ่งที่โปรแกรมที่ใช้อักขระ leet ด้านบนทั้งหมดและโบนัสบางอย่างอาจทำได้:
ตัวอย่างประโยค: |-|3 15 $|_|(# @ n00b
=He is such a newbie
การเซ็นเซอร์ตาม Leet: $#!+
=s**t
Extreme leet: \/\/ 1 |< 1 P 3 [) 1 A
=Wikipedia
-xor ต่อท้าย: H4X0R
=hacker
leet สุดขีดมากขึ้น: @1\/\/4Y5 p0$+ ur n3VV qu35710nz 1n teh $&80x
=Always post your new questions in the sandbox
ตัวอย่างการให้คะแนน
Bash, 10 ตัวละคร, 3 รายการ, ไม่มีโบนัส:
tr 137 let
คะแนน( 1 * 3 ) * 10 / 10 = 3
นี้
tr
s/.../.../g
เพียงแค่การแปลสิ่งต่าง ๆ เช่นนั้นจะเป็นการท้าทายที่น่าเบื่อดังนั้นเราจำเป็นต้องให้รางวัลการแปลที่ดีกว่าซึ่งใช้ wordlist
sed
สคริปต์)
sed
สคริปต์ฉันหมายถึงมากกว่าง่าย ๆs/.../.../g
แต่ไฟล์ที่แยกวิเคราะห์และดำเนินการด้วยsed
ตัวเอง ในฐานะที่เป็นภาษาสั้นคือมันอาจจะเป็นภาษา golfable ดี ...
sed
สคริปต์ก็ดีและน่าสนใจมากพวกเขาทำได้ดีมากเนื่องจากไวยากรณ์การแทนที่สั้นคุณอาจสามารถอ่านได้จาก wordlist ไม่ว่าจะด้วย GNU Extensions หรือใช้sed
เป็นส่วนหนึ่งของโปรแกรม Bash ที่มีขนาดใหญ่ขึ้น