การเขียนโปรแกรมปริศนา & รหัสกอล์ฟ

คำถาม & คำตอบสำหรับผู้ชื่นชอบการเขียนโปรแกรมปริศนา

7
การนับ Quipu: ฐาน 10 ในโลกใหม่
Quipusเป็นอุปกรณ์โบราณที่ใช้โดย Inca ในยุค Precolumbian เพื่อบันทึกตัวเลขในระบบฐานสิบตำแหน่งของนอตบนสายซึ่งทำงานดังนี้: แต่ละกลุ่มของนอตเป็นตัวเลขและมีสามประเภทหลักนอต: นอตฟาดง่าย; "นอตยาว" ประกอบด้วยปมฟาดหนึ่งหรือมากกว่านั้นอีกรอบ; และนอตรูปแปด พลังของสิบจะแสดงตามตำแหน่งตามสายอักขระและตำแหน่งนี้อยู่ในแนวเดียวกันระหว่างเส้นต่อเนื่อง ตัวเลขในตำแหน่งสำหรับ 10 และอำนาจที่สูงกว่าจะถูกแสดงด้วยกลุ่มของนอตง่าย (เช่น 40 เป็นสี่นอตง่าย ๆ ในแถวในตำแหน่ง "สิบ") ตัวเลขในตำแหน่ง "คน" จะแสดงโดยนอตยาว (เช่น 4 เป็นปมที่มีสี่รอบ) เนื่องจากวิธีการผูกปมตัวเลข 1 จึงไม่สามารถแสดงด้วยวิธีนี้และแสดงในตำแหน่งนี้ด้วยปมรูปแปดแปด ศูนย์แสดงโดยไม่มีปมในตำแหน่งที่เหมาะสม รายละเอียด สำหรับความท้าทายนี้แต่ละเส้นของ quipu แสดงหมายเลขเดียว (แม้ว่าตามบทความของ Wikipedia คุณสามารถแสดงตัวเลขจำนวนมากบนหนึ่งสายในการท้าทายนี้เราจะไม่) นอต ปมแต่ละอันจะถูกแสดงด้วยอักขระ ASCII เดียว . หมายถึงปมที่เรียบง่าย : หมายถึงหนึ่งเทิร์นของปมยาว 8 หมายถึงปมแปดรูป | แสดงถึงการขาดปมเช่นเดียวกับตัวคั่นระหว่างตัวเลข การสร้าง …
41 code-golf  number 

30
ปกปิดเลขศูนย์ในรายการ
แรงบันดาลใจจากคำถาม SO นี้ ในฐานะที่เป็นอินพุทคุณจะได้รับรายการจำนวนเต็มที่ไม่ว่างเปล่าซึ่งค่าแรกจะรับประกันว่าไม่เป็นศูนย์ ในการสร้างผลลัพธ์ให้เดินจากจุดเริ่มต้นของรายการแล้วส่งออกแต่ละค่าที่ไม่เป็นศูนย์ไปพร้อมกัน เมื่อคุณพบค่าศูนย์ให้ทำซ้ำค่าที่คุณเพิ่งเพิ่มเข้าไปในเอาต์พุตแทน คุณสามารถเขียนโปรแกรมหรือฟังก์ชั่นและให้อินพุต / เอาท์พุตมีรูปแบบที่สะดวกซึ่งไม่ได้เข้ารหัสข้อมูลเพิ่มเติมตราบใดที่ยังคงเป็นลำดับของจำนวนเต็ม หากการส่งออกจากโปรแกรมคุณอาจพิมพ์บรรทัดใหม่ต่อท้าย ยกเว้นบรรทัดใหม่ต่อท้ายนี้ผลลัพธ์ของคุณควรเป็นอินพุตที่ยอมรับได้สำหรับการส่งของคุณ รหัสที่สั้นที่สุดในหน่วยไบต์ชนะ กรณีทดสอบ [1, 0, 2, 0, 7, 7, 7, 0, 5, 0, 0, 0, 9] -> [1, 1, 2, 2, 7, 7, 7, 7, 5, 5, 5, 5, 9] [1, 0, 0, 0, 0, 0] -> [1, 1, 1, …

4
ระบุโปรแกรม Brainf ** k ที่ถูกต้อง
Golunar / Unaryเป็นวิธีการเข้ารหัสโปรแกรมBrainfuck ที่ถูกต้องทั้งหมดแต่ก็ไม่ได้เป็นการแจงนับเนื่องจากตัวเลขที่เป็นธรรมชาติส่วนใหญ่ไม่สอดคล้องกับโปรแกรมที่ถูกต้อง สำหรับจุดประสงค์ของการท้าทายนี้ให้ใช้เทปที่ไม่มีที่สิ้นสุดเป็นทวีคูณและไม่มีความคิดเห็นเช่นโปรแกรม Brainfuck นั้นใช้ได้ถ้าหากมันประกอบไปด้วยตัวละคร<>+-.,[]และวงเล็บซ้ายและขวาเท่านั้น ตัวอย่างเช่นโปรแกรมที่ว่างเปล่า,[+][-]., [>+<[--].]และ+[+[+][+[+]+]+]+.โปรแกรม brainfuck ที่ถูกต้องในขณะที่][และa[]ไม่ได้ งาน เขียนโปรแกรมหรือฟังก์ชั่นที่ยอมรับโปรแกรม Brainfuck ที่ถูกต้องเป็นอินพุตและส่งคืนจำนวนธรรมชาติ ( 1 , 2 , 3 , …) โดยมีข้อ จำกัด ดังต่อไปนี้: ผลลัพธ์ที่สร้างขึ้นจะต้องแตกต่างกันไปสำหรับโปรแกรม Brainfuck ที่ถูกต้องทั้งหมด สำหรับทุกจำนวนธรรมชาติnจะต้องมีโปรแกรม brainfuck ที่ถูกต้องเมื่อมีให้เป็น input สร้างเอาท์พุทn กฎเพิ่มเติม รับโปรแกรม Brainfuck ที่มีขนาด 100 ไบต์หรือน้อยกว่าโปรแกรมหรือฟังก์ชันของคุณจะต้องเสร็จสิ้นภายในหนึ่งนาที ซึ่งหมายความว่าคุณไม่สามารถทำซ้ำในโปรแกรม Brainfuck ที่ถูกต้องทั้งหมดจนกว่าคุณจะตรงกับอินพุต ใช้กฎมาตรฐานของกอล์ฟ

30
พิมพ์ uniqchars!
กำหนดสตริงที่ประกอบด้วยตัวอักษร ASCII พิมพ์ , ผลิตออกประกอบด้วยของตัวอักษรที่ไม่ซ้ำกันในการสั่งซื้อเดิม กล่าวอีกนัยหนึ่งเอาท์พุทเหมือนกันกับอินพุตยกเว้นว่าถ่านจะถูกลบออกถ้ามันปรากฏขึ้นก่อนหน้านี้ ไม่มีบิวด์อินสำหรับค้นหาองค์ประกอบเฉพาะในอาเรย์ที่สามารถใช้ได้ (ตัวอย่างเช่น MATLAB มีuniqueฟังก์ชั่นที่ทำเช่นนั้น) แนวคิดคือการทำด้วยตนเอง รายละเอียดเพิ่มเติม: ทั้งฟังก์ชั่นหรือโปรแกรมที่ได้รับอนุญาต อินพุตและเอาต์พุตสามารถอยู่ในรูปแบบของฟังก์ชันอาร์กิวเมนต์, stdin / stdout (แม้สำหรับฟังก์ชัน) หรือผสมกัน ถ้า stdin stdout หรือมีการใช้สตริงเป็นที่เข้าใจกันเพียงลำดับของตัวอักษร หากข้อโต้แย้งฟังก์ชั่นที่มีการใช้ลำดับของตัวอักษรอาจจะต้องมีการปิดล้อมในเครื่องหมายคำพูดหรือสัญลักษณ์เทียบเท่าว่าภาษาการเขียนโปรแกรมของการใช้ทางเลือกสำหรับการกำหนดสตริง เอาต์พุตควรเป็นสตริงที่มีเฉพาะอักขระเฉพาะของอินพุต ดังนั้นจึงไม่มี linebreaks พิเศษช่องว่าง ฯลฯ ข้อยกเว้นเพียงอย่างเดียวคือ: หากเอาต์พุตถูกแสดงใน stdout ฟังก์ชันการแสดงผลส่วนใหญ่จะเพิ่มการต่อท้าย\n(เพื่อแยกสตริงออกจากสิ่งที่จะมาถัดไป) ดังนั้นหนึ่งต่อท้าย\nเป็นที่ยอมรับใน stdout ถ้าเป็นไปได้โพสต์ลิงค์ไปยังล่าม / คอมไพเลอร์ออนไลน์เพื่อให้ผู้อื่นสามารถลองใช้รหัสของคุณ นี่คือรหัสกอล์ฟดังนั้นรหัสที่สั้นที่สุดในหน่วยไบต์ชนะ ตัวอย่างบางส่วนสมมติว่า stdin และ stdout: สตริงอินพุต: Type unique chars! สตริงเอาต์พุต: Type uniqchars! …
41 code-golf  string 

1
รับโต๊ะวางเก้าอี้
ท้าทาย คุณจะได้รับตารางเป็น input ที่วาดด้วย ASCII และ| _งานของคุณคือการวางเก้าอี้รอบ ๆ ตัวอย่าง การป้อนข้อมูล: ____ | | | | | | | | |____| เอาท์พุท: _^_^_ < > | | < > | | <_ _ _> v v เก้าอี้เหล่านั้นทำจาก<>และv^. ตัวอย่างอื่น: สายจะต้องมีเก้าอี้ให้มากที่สุดเท่าที่จะทำได้ _____ | |_____ | | | | | | | _____| |_____| …
41 code-golf 

9
เขียน Quine เป็นภาษาอังกฤษธรรมดา
เขียนควินที่ประกอบด้วยคำภาษาอังกฤษจริงคั่นด้วยช่องว่างเดียว "word" ถูกกำหนดเป็นสตริงที่มีตัวอักษรตัวพิมพ์เล็กและตัวพิมพ์ใหญ่เท่านั้น ( /[a-zA-Z]+/ใน regex) จะเป็น "ของจริง" คำพูดของคุณจะต้องได้รับการยอมรับจากพจนานุกรมข่วนอย่างเป็นทางการ ฉันใช้พจนานุกรม Scrabble เนื่องจากให้คำตอบที่ชัดเจนเกี่ยวกับสิ่งที่เป็นและไม่ถูกต้อง มีพื้นที่สีเทามากเกินไปในพจนานุกรมปกติ โปรดทราบว่า "A" และ "I" (ไม่พูดถึง "ควิน") ไม่ใช่คำที่ถูกต้อง ตั้งแต่การเขียนควินเท่านั้นโดยใช้ตัวอักษรและพื้นที่อยู่ใกล้กับไปไม่ได้มากที่สุดในการเขียนโปรแกรมภาษาคุณมีตัวเลือกที่จะมาแทนที่ช่องว่างระหว่างคำเดียวกับตัวละครที่คุณเลือก นอกจากนี้คุณยังมีตัวเลือกในการเพิ่มอักขระต่อท้ายคำแรกและท้ายคำสุดท้าย ตัวละครเพิ่มเหล่านี้อาจเป็นอะไรก็ได้ (รวมถึงการขึ้นบรรทัดใหม่และไม่ใช่ ASCII) ยกเว้นตัวอักษร (az, AZ) มีโทษสำหรับการเพิ่มไว้ (ดูเกณฑ์การให้คะแนน) รายละเอียด ตามปกติควินินอาจไม่อ่านหรือเข้าถึงซอร์สโค้ดของตัวเอง (ฉันบอกว่าคำสั่งHQ9 + ของละเมิดนี้) ผลลัพธ์ควรไปที่ stdout หรือทางเลือกอื่นที่คล้ายกัน ไม่มีอินพุต คำไม่จำเป็นต้องเป็นตัวพิมพ์ใหญ่อย่างถูกต้อง พวกเขาสามารถมีตัวพิมพ์ใหญ่และตัวพิมพ์เล็กได้ทุกที่ ลำดับของคำไม่จำเป็นต้องมีเหตุผลใด ๆ ห้ามใช้คำเกิน 3 ครั้งในโปรแกรมของคุณ คำที่เป็นตัวพิมพ์ใหญ่ต่างกันยังคงเป็นคำเดียวกัน (เช่น 'DOG', 'dog' …

16
String.prototype.isRepeated
อัพเดท : การส่ง Pyth ของ isaacgเป็นผู้ชนะ! หลายคนคงเคยได้ยินว่ามี JavaScript รุ่นเย็นในเมือง (อ่าน ES6) ซึ่งมีวิธีการString.prototype.repeatเพื่อให้คุณสามารถทำ "Hello, World!".repeat(3) และรับ "Hello, World!Hello, World!Hello, World!" เป็นเอาท์พุท งานของคุณคือการเขียนฟังก์ชั่นหรือโปรแกรมในภาษาที่คุณเลือกซึ่งตรวจพบว่าสตริงได้รับภายใต้การเปลี่ยนแปลงดังกล่าว เช่นสตริงอินพุตสามารถแสดงเป็นการnซ้ำซ้อนเวลาที่แน่นอนของสตริงที่เล็กกว่า เอาท์พุท (เป็นคำสั่งส่งกลับของฟังก์ชั่นหรือ STDOUT) ควรเป็นจริงถ้าสตริงสามารถหรือเท็จถ้าสตริงไม่สามารถแสดงเป็นซ้ำของสตริงที่มีขนาดเล็กลง ตัวอย่างอินพุตบางส่วน: "asdfasdfasdf" // true "asdfasdfa" // false "ĴĴĴĴĴĴĴĴĴ" // true "ĴĴĴ123ĴĴĴ123" // true "abcdefgh" // false โปรดทราบว่าการป้อนข้อมูลครั้งสุดท้ายเป็นเท็จจึงnควรมากกว่า1 ทำตามกฎ เขียนฟังก์ชั่น / โปรแกรมในภาษาใด ๆ เพื่อป้อนข้อมูล (ผ่านฟังก์ชั่นอาร์กิวเมนต์ …
41 code-golf  string 

30
มันเป็นปีอธิกสุรทินหรือไม่
ความท้าทายนี้ค่อนข้างง่าย คุณจะรับอินพุตซึ่งจะเป็นปีตั้งแต่ 1801 ถึง 2400 และส่งออกถ้าเป็นปีอธิกสุรทินหรือไม่ ข้อมูลที่คุณป้อนจะไม่มีบรรทัดใหม่หรือช่องว่างต่อท้าย: 1954 คุณจะเอาท์พุทในแบบที่คุณชอบที่บอกผู้ใช้อย่างชัดเจนว่ามันเป็นหรือไม่ปีอธิกสุรทิน (ฉันจะยอมรับ y หรือ n สำหรับใช่ / ไม่ใช่) คุณสามารถรับรายชื่อปีอธิกสุรทินได้ที่นี่: http://kalender-365.de/leap-years.php ฉันจะทราบว่าปีอธิกสุรทินไม่เคยมีสี่ปีเสมอไป 2439 เป็นปีอธิกสุรทิน แต่ไม่ใช่ 1900 ปีที่ติดตาม "ข้าม" นี้คือ: 1900 2100 2200 2300 กรณีทดสอบ: 1936 -> y 1805 -> n 1900 -> n 2272 -> y 2400 -> y แก้ไข: นี่เป็นพื้นฐานของปฏิทินเกรกอเรียน: http://www.epochconverter.com/date-and-time/daynumbers-by-year.php

14
Maze Generation [ปิด]
ฉันรู้ว่ามีเธรด (เก่า) คล้ายกับที่นี่ ( ที่นี่ ) แต่ฉันต้องการรีบูตด้วยการแก้ไขบางอย่าง เป้าหมาย: สร้างเขาวงกตที่ดูสุ่มโดยใช้อัลกอริทึมที่คุณเลือกจากนั้นแสดงผลเขาวงกตแบบกราฟิก (จำนวนการพิมพ์) คุณเป็นผู้กำหนดความกว้างและความสูง ควรมีเส้นทางอย่างน้อยหนึ่งเส้นทางจากทางเข้าอย่างน้อยหนึ่งทางไปยังทางออกอย่างน้อยหนึ่งแห่ง รูปแบบของเขาวงกต (วิธีที่คุณแสดง, ทำเครื่องหมายทางเข้าหรือออก) ก็ขึ้นอยู่กับคุณเช่นกัน ยิ่งสวยยิ่งดี เขาวงกตเล็กน้อย (เช่นเขาวงกตที่ว่างเปล่าเขาวงกตขัดแตะเขาวงกตขนาด 1x1) จะหมดกำลังใจ อนุญาตให้วนรอบในเขาวงกตและได้รับการสนับสนุนหากผลลัพธ์มีความสมเหตุสมผล สนับสนุนการใช้ภาษาในทางที่ผิด เขาวงกตควรมีลักษณะสุ่มอย่างสมเหตุสมผล (แต่อัลกอริธึมที่กำหนดขึ้นอย่างสมบูรณ์ (เช่นวุ่นวาย) ที่สร้างสิ่งนี้ก็ดีเช่นกัน) แก้ไข: จุดสนใจหลักที่นี่คือการทำให้การใช้งานมีความเป็นไปได้น้อยที่สุด อย่างไรก็ตามฉันต้องการอนุญาตให้ระยะทางเพิ่มขึ้นภายในข้อ จำกัด นั้นเพื่อส่งเสริมความมันวาว ฉันได้จงใจทิ้งไว้อย่างแน่นอนว่า "คุณสมบัติ" เขาวงกตที่มีปลายเปิด แต่เป็นแนวทางคร่าวๆคุณควรพยายามที่จะแพ็คปังจำนวนมากที่สุดลงในเจ้าชู้ศัพท์น้อยที่สุด

12
วาดการไล่ระดับสีในศิลปะ ASCII
คำอธิบายงาน: เขียนโปรแกรมสั้นที่สุดเท่าที่จะทำได้เพื่อวาดการไล่ระดับสีรัศมีในศิลปะ ASCII ขนาดของกริดเอาต์พุตถูกกำหนดไว้ล่วงหน้า จุดกึ่งกลางและอักขระที่จะใช้สำหรับการไล่ระดับสีนั้นเป็นข้อมูลป้อนเข้าสู่โปรแกรม การไล่ระดับสีจะเป็นเซลล์ขนาด 70 × 25 อักขระโดยมีข้อกำหนดดังต่อไปนี้ มุมซ้ายบนของตารางมีพิกัด (0, 0) การไล่ระดับสีประกอบด้วยตัวอักษรให้เป็นแมปออกเป็น 35 หน่วยความยาว หน่วยความยาวคือหนึ่งอักขระสูงและกว้างสองอักขระ (เนื่องจากmonospaced fontsมักจะมีอักขระสูงเป็นสองเท่าตามที่กว้าง) ภายใน 35 LU เหล่านั้นระยะทางปัจจุบันจากจุดกึ่งกลางจะถูกคูณด้วยจำนวนตัวไล่ระดับสี / 35เพื่อให้ดัชนีของตัวละครวาดที่จุดนั้น ตัวเลขเศษส่วนสำหรับดัชนีจะถูกปัดเศษเป็นศูนย์ที่นี่ หน่วยความยาวจะถูกทิ้งให้เป็นจำนวนจริง (แน่นอนถ้าผลลัพธ์เหมือนกันการใช้งานไม่สำคัญ) นอกเหนือจาก 35 LU เหล่านั้นจะมีเพียงตัวไล่ระดับสีตัวสุดท้ายที่ปรากฏขึ้น อย่างไรก็ตามเนื่องจากแถบ«ไล่ระดับสีล่าสุด»เริ่มขึ้นแล้วภายใน 35 LU อักขระตัวสุดท้ายจึงเริ่มปรากฏขึ้นเมื่อไม่ถึง 35 LU แล้ว การป้อนข้อมูล: อินพุตถูกกำหนดให้กับอินพุตมาตรฐานและประกอบด้วยสามบรรทัดแต่ละบรรทัดถูกยกเลิกโดยตัวแบ่งบรรทัด: xพิกัดของจุดศูนย์การไล่ระดับสี Yพิกัดของจุดศูนย์การไล่ระดับสี อักขระที่ใช้สำหรับการวาดการไล่ระดับสี สิ่งเหล่านั้นอาจรวมถึงช่องว่าง เอาท์พุท: เอาท์พุทเป็นไล่ระดับสีตามที่กำหนดโดยกฎข้างต้นในเอาต์พุตมาตรฐาน กระแสข้อผิดพลาดมาตรฐานจะถูกละเว้น แต่ละเส้นของการไล่ระดับสีถูกยกเลิกโดยการขึ้นบรรทัดใหม่ ไม่มีตัวละครอื่นนอกจากที่กำหนดโดยอินพุตอาจเกิดขึ้น …

30
เคล็ดลับสำหรับการเล่นกอล์ฟใน Mathematica
คุณมีเคล็ดลับทั่วไปสำหรับการเล่นกอล์ฟใน Mathematica หรือไม่? ฉันกำลังมองหาแนวคิดที่สามารถนำไปใช้กับปัญหารหัสกอล์ฟโดยทั่วไปซึ่งอย่างน้อยค่อนข้างเฉพาะกับ Mathematica (เช่น "ลบความคิดเห็น" ไม่ใช่คำตอบ)
41 code-golf  tips 

30
ย้อนกลับสัญกรณ์โปแลนด์
คุณต้องประเมินสตริงที่เขียนในรูปแบบReverse Polishและแสดงผลลัพธ์ โปรแกรมต้องยอมรับอินพุตและส่งคืนเอาต์พุต สำหรับภาษาโปรแกรมที่ไม่มีฟังก์ชั่นในการรับอินพุต / เอาต์พุตคุณสามารถใช้ฟังก์ชันเช่น readLine / print คุณไม่ได้รับอนุญาตให้ใช้ "eval" ใด ๆ ในโปรแกรม เบอร์และผู้ประกอบการจะถูกแยกออกโดยหนึ่งหรือมากกว่าช่องว่าง คุณต้องสนับสนุนอย่างน้อย +, -, * และ / โอเปอเรเตอร์ คุณต้องเพิ่มการรองรับกับจำนวนลบ (เช่น-4ไม่ใช่สิ่งเดียวกับ0 4 -) และหมายเลขทศนิยม คุณสามารถสันนิษฐานได้ว่าอินพุตนั้นถูกต้องและปฏิบัติตามกฎด้านบน กรณีทดสอบ การป้อนข้อมูล: -4 5 + เอาท์พุท: 1 การป้อนข้อมูล: 5 2 / เอาท์พุท: 2.5 การป้อนข้อมูล: 5 2.5 / เอาท์พุท: 2 การป้อนข้อมูล: 5 1 …
41 code-golf  math 

23
โปรแกรม "Hello world" ที่ซับซ้อนที่สุดที่คุณสามารถปรับ [ปิด]
เจ้านายของคุณขอให้คุณเขียนโปรแกรม "สวัสดีโลก" เมื่อคุณได้รับเงินสำหรับบรรทัดของโค้ดคุณต้องทำให้มันซับซ้อนที่สุดเท่าที่จะทำได้ อย่างไรก็ตามหากคุณเพียงเพิ่มบรรทัดไร้สาระหรือสิ่งที่ไร้ประโยชน์หรือทำให้งงงวยอย่างเห็นได้ชัดคุณจะไม่ได้รับผ่านการตรวจสอบโค้ด ดังนั้นความท้าทายคือ: เขียนโปรแกรม "hello world" ซึ่งมีความซับซ้อนที่สุดเท่าที่จะเป็นไปได้ภายใต้เงื่อนไขที่คุณสามารถให้ "เหตุผล" สำหรับทุกความซับซ้อนในรหัส พฤติกรรมที่ต้องการของโปรแกรมคือเพียงแค่ส่งออกบรรทัดเดียว "Hello world" (โดยไม่ใส่เครื่องหมายอัญประกาศ แต่จะขึ้นบรรทัดใหม่ตอนท้าย) จากนั้นออกจากโปรแกรมสำเร็จ "การอ้างเหตุผล" รวมถึง: ความเข้ากันได้ buzzword ("ซอฟต์แวร์ที่ทันสมัยเป็นวัตถุเชิง!") โดยทั่วไปยอมรับวิธีปฏิบัติด้านโปรแกรมที่ดี ("ทุกคนรู้ว่าคุณควรแยกโมเดลและมุมมอง") ความสามารถในการบำรุงรักษา ("ถ้าเราทำในลักษณะนี้เราจะทำ XXX ในภายหลังได้ง่ายขึ้น") และแน่นอนว่าเหตุผลอื่นใดที่คุณสามารถจินตนาการถึงการใช้ (ในสถานการณ์อื่น ๆ ) สำหรับรหัสจริง เห็นได้ชัดว่าเหตุผลที่โง่เง่าจะไม่ได้รับการยอมรับ นอกจากนี้คุณต้อง "ปรับ" ตัวเลือกภาษาของคุณ (ดังนั้นหากคุณเลือกภาษา verbose โดยเนื้อแท้คุณจะต้องแสดงเหตุผลว่าทำไมจึงเป็นตัวเลือก "ถูกต้อง") ภาษาที่สนุกเหมือน Unlambda หรือ INTERCAL ไม่เป็นที่ยอมรับ (ยกเว้นกรณีที่คุณสามารถให้มากเหตุผลที่ดีสำหรับการใช้พวกเขา) คะแนนของรายการที่ผ่านการคัดเลือกมีการคำนวณดังนี้: 1 จุดสำหรับแต่ละข้อความ …

30
ที่นั่นฉันแก้ไขมัน (ด้วยเทป)
ท้าทาย: กำหนดสตริงที่มีตัวอักษรตัวพิมพ์ใหญ่และ / เล็ก (แล้วแต่จำนวนใดก็ได้ที่คุณต้องการ) วางtapeแนวนอนเพื่อแก้ไข เราทำเช่นนี้โดยการตรวจสอบความแตกต่างของทั้งสองตัวอักษรที่อยู่ติดกันในตัวอักษร (ไม่สนใจรอบและมีเพียงก้าวไปข้างหน้า) และกรอกพื้นที่ที่มีมากที่สุดเท่าที่TAPE/ tapeที่เราจะต้อง ตัวอย่าง: อินพุต: abcmnnnopstzra เอาต์พุต:abcTAPETAPETmnnnopTAstTAPETzra ทำไม? ระหว่างcและmควรเป็นdefghijkl(ความยาว 9) ดังนั้นเราจึงเติมด้วยTAPETAPET; ระหว่างpและsควรเป็นqr(ความยาว 2) ดังนั้นเราจึงเติมด้วยTA; ระหว่างtและzควรจะเป็นuvwxy(ความยาว 5) TAPETเพื่อให้เรากรอกข้อมูลนี้กับ กฏท้าทาย: zraแตกต่างเพียงใช้ไปข้างหน้าจึงไม่มีเทประหว่าง เป็นไปได้ที่จะมีตัวอักษรติดกันหลายตัวเหมือนnnnกัน คุณได้รับอนุญาตให้ป้อนข้อมูลในรูปแบบที่เหมาะสม สามารถเป็นสตริงเดี่ยวสตริงอาร์เรย์ / รายการอักขระอาร์เรย์ / รายการ ฯลฯ เอาท์พุทมีความยืดหยุ่นเหมือนกัน คุณได้รับอนุญาตให้ใช้ตัวพิมพ์เล็กและ / หรือพิมพ์ใหญ่ในแบบที่คุณต้องการ TAPEนี้ใช้ได้ทั้งการป้อนข้อมูลส่งออกและ เป็นไปได้ที่ไม่TAPEจำเป็นในกรณีนี้อินพุตยังคงไม่เปลี่ยนแปลง กฎทั่วไป: นี่คือโค้ดกอล์ฟดังนั้นคำตอบที่สั้นที่สุดในหน่วยไบต์ชนะ อย่าปล่อยให้ภาษาโค้ดกอล์ฟกีดกันคุณจากการโพสต์คำตอบด้วยภาษาที่ไม่ได้เข้ารหัส พยายามหาคำตอบสั้น ๆ ที่เป็นไปได้สำหรับภาษาโปรแกรม 'ใด ๆ ' กฎมาตรฐานจะใช้สำหรับคำตอบของคุณดังนั้นคุณจึงได้รับอนุญาตให้ใช้ …
41 code-golf  string 

4
ซอฟต์แวร์รวบรวมข้อมูล Dungeon
อินพุต เมทริกซ์ไบนารีMMMแสดงถึงผนังของดันเจี้ยน ตำแหน่ง( x , y)(x,Y)(x,y)ของผู้เล่นในดันเจี้ยน ทิศทางdddที่ผู้เล่นกำลังเผชิญ (0 = ทิศเหนือ, 1 = ทิศตะวันออก, 2 = ทิศใต้, 3 = ทิศตะวันตก) เอาท์พุต การนำเสนอหลอกแบบ 3 มิติของกำแพงที่อยู่ในมุมมองของผู้เล่นในฐานะศิลปะ ASCII ที่มีอักขระ30 × 1030×1030\times 10ตัว ด้านล่างนี้เป็นเฟรมเอาต์พุตจำนวนมากที่เป็นไปได้พร้อมกับแผนที่และเข็มทิศที่สอดคล้องกันเพื่อช่วยให้แขวนได้ (แต่การวาดแผนที่และเข็มทิศไม่ใช่ส่วนหนึ่งของความท้าทาย) สเปค สาขาดู ผู้เล่นที่มี131313ผนังในด้านของเขาในมุมมองที่มีป้ายกำกับจากเพื่อM ด้านล่างคือตำแหน่งของกำแพงที่สัมพันธ์กับผู้เล่น (เป็นสีเหลือง) ในทุกทิศทางที่เป็นไปได้AAAMMM การวาดกำแพง ผนังควรถูกดึงจากAAAถึงMMMตามลำดับที่แน่นอนนี้เนื่องจากส่วนใดส่วนหนึ่งที่วาดไว้ก่อนหน้านี้อาจถูกเขียนทับโดยกำแพงที่อยู่ใกล้กว่า แน่นอนว่าคุณสามารถนำไปใช้งานต่างกันได้ตราบใดที่ผลลัพธ์สุดท้ายยังเหมือนเดิม การส่งออกทั้งหมดจะถูกวาดด้วย 7 ตัวอักษรที่แตกต่าง: " ", "'", ".", "|", "-", และ"_"":" เนื่องจากรายละเอียดรูปร่างของผนังในเนื้อความของความท้าทายนี้จะทำให้มันยาวเกินไปพวกมันจึงถูกจัดเตรียมไว้ในลิงค์ …

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.