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

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

14
สี่สี่เหลี่ยมด้วยกัน
ทฤษฎีบทสี่ตารางของลากรองจ์บอกเราว่าจำนวนธรรมชาติใด ๆ สามารถแทนได้ด้วยผลบวกของจำนวนสี่ตาราง งานของคุณคือการเขียนโปรแกรมที่ทำสิ่งนี้ อินพุต: จำนวนธรรมชาติ (ต่ำกว่า 1 พันล้าน) ผลลัพธ์: ตัวเลขสี่ตัวที่มีกำลังสองบวกกับจำนวนนั้น (ลำดับไม่สำคัญ) หมายเหตุ: คุณไม่ต้องทำการค้นหาที่ดุร้าย! รายละเอียดที่นี่และที่นี่ หากมีฟังก์ชันที่ทำให้เกิดปัญหาเล็กน้อย (ฉันจะตรวจสอบ) จะไม่อนุญาตให้ทำเช่นนั้น อนุญาตให้ใช้ฟังก์ชันเฉพาะอัตโนมัติและรากที่สอง หากมีตัวแทนมากกว่าหนึ่งคนจะถือว่าดี หากคุณเลือกที่จะทำการเดรัจฉานมันจะต้องวิ่งภายในเวลาที่เหมาะสม (3 นาที) ตัวอย่างอินพุต 123456789 เอาต์พุตตัวอย่าง (ใช้ได้ทั้งคู่) 10601 3328 2 0 10601 3328 2

6
ข้อผิดพลาดที่ดูผิดพลาด แต่เป็นสาเหตุของความผิดพลาด [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัพเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Code Golf Stack Exchange ปิดให้บริการใน3 ปีที่ผ่านมา มีคำถามหลากหลายที่หมุนรอบแนวคิดนี้ แต่สิ่งเหล่านี้ดูเหมือนจะเกี่ยวข้องกับการทำให้เกิดความผิดพลาดทำให้มีคำตอบมากมายซึ่งได้รับการออกแบบมาอย่างชัดเจนเพื่อทำให้เกิดความผิดพลาด ดังนั้นความท้าทายที่ฉันกำหนดให้คุณคือการเขียนรหัสที่เป็นไปได้บางอย่าง (แม้ว่าสิ่งที่รหัสควรจะ "เจตนา" คือฉันปล่อยให้คุณ) ซึ่งเกิดปัญหาทั้งระบบปฏิบัติการเป้าหมายทั้งหมดหรือเพียงตัวเองในทางที่ไม่ชัดเจนทันที (ฉันตระหนักว่าสิ่งที่นับว่า "ชัดเจนทันที" เป็นเรื่องส่วนตัว แต่หวังว่าการท้าทายจะยังคงชัดเจน) ผู้ชนะคือคำตอบที่ได้คะแนนโหวตมากที่สุดหลังจาก 5 วัน

9
การตรวจจับขอบ ASCII ART
ตามที่ชื่อกล่าวว่าฉันกำลังคิดที่จะแข่งขันที่จะต้องตรวจจับขอบของศิลปะ ASCII รหัสควรยอมรับศิลปะ ASCII B / W เป็นอินพุต B / W ศิลปะ ASCIIถูกกำหนดให้เป็น (โดยฉัน) ความศิลปะ ASCIIที่มีเพียงหนึ่งชนิดของตัวละครที่ไม่ใช่สีขาวช่องว่าง (ในกรณีของเรา: การ asteriks *) และในขณะที่ผลผลิตสร้างมาตรฐานASCII art ( ยอมรับอักขระ ASCIIทั้งหมด) ซึ่งควรจดจำเนื้อหาของครั้งแรก วัตถุประสงค์ของการใช้อักขระมากกว่าหนึ่งตัวในเอาต์พุตคือเพื่อทำให้ขอบบางส่วนดูเรียบเนียนขึ้น ตัวอย่างเช่นเราสามารถปล่อยให้อินพุตนี้ *** **** ****** ****** ****** ****** **** *** อาจกลายเป็น: ___ _/ ) _/ / / | | / | \ \ | …

12
ตรวจสอบว่าที่ดินถูกล้อมรั้วไว้เต็มหรือไม่
ลองนึกภาพอาร์เรย์แบบสองมิติของค่าบูลีนที่ 0s เป็นตัวแทนของสี่เหลี่ยมของหญ้าบนที่ดินรูปสี่เหลี่ยมผืนผ้าและ 1s เป็นตัวแทนของรั้ว เขียนฟังก์ชั่นที่ยอมรับอาร์เรย์ 2D เป็นอินพุตและกำหนดว่าคุณสามารถเดินทางจากพื้นที่หนึ่งไปยังพื้นที่หญ้าอื่น ๆ โดยใช้การเคลื่อนไหวแบบทิศเหนือ / ตะวันออก / ตะวันตก / ใต้โดยไม่ต้องวิ่งเข้าไปในรั้ว หากพื้นที่ใด ๆ ของหญ้าในอาเรย์นั้นถูกล้อมรอบด้วยรั้ว (หมายความว่าคุณไม่สามารถเดินทาง N / E / W / S เพื่อไปยังพื้นที่อื่น ๆ ของหญ้าในอาเรย์) ฟังก์ชั่นควรกลับเท็จ ไม่เช่นนั้นควรกลับมาจริง ด้านล่างคือตัวอย่างอาร์เรย์สองชุดที่คุณสามารถใช้เป็นอินพุตได้แม้ว่าฟังก์ชันของคุณจะสามารถจัดการได้ไม่เพียง แต่เหล่านี้เท่านั้น แต่ยังมีค่าบูลีนสองมิติ: 0 0 0 0 0 0 1 0 0 0 0 1 1 1 1 …
19 code-golf 

25
การเดิมพันที่เพิ่มขึ้น
หลายเดือนที่ผ่านมาฉันมีคำถามนี้เป็นปริศนาการคัดกรองเบื้องต้นสำหรับการสัมภาษณ์ เมื่อเร็ว ๆ นี้เมื่อคิดเกี่ยวกับเนื้อหาบล็อกมันโผล่ในหัวของฉันเป็นตัวอย่างที่ดีที่จะใช้สำหรับการแก้ปัญหาการทำงาน ฉันจะโพสต์วิธีแก้ไขปัญหานี้ทันทีที่ฉันเขียนบทความในบล็อกเสร็จ หมายเหตุ: คำถามนี้ถูกถามใน StackOverflow หนึ่งปีที่ผ่านมาและถูกลดระดับลงหลังจากคำตอบ (ไม่ถูกต้อง) สองสามข้อ ฉันคิดว่ามันถูกลดระดับลงเนื่องจากการสัมภาษณ์ที่ชัดเจนหรือคำถามการบ้าน คำตอบของเราที่นี่ควรเป็นรหัสกอล์ฟลึกพอสำหรับคนที่ไม่ต้องคิดใช้! ในการแข่งขันคุณเดิมพันโดยใช้กลยุทธ์ต่อไปนี้ เมื่อใดก็ตามที่คุณแพ้การเดิมพันคุณจะเพิ่มมูลค่าของการเดิมพันในรอบถัดไป เมื่อใดก็ตามที่คุณชนะการเดิมพันรอบต่อไปจะเป็นหนึ่งดอลลาร์ คุณเริ่มรอบโดยการเดิมพันหนึ่งดอลลาร์ ตัวอย่างเช่นหากคุณเริ่มต้นด้วย 20 ดอลลาร์และคุณชนะการเดิมพันในรอบแรกแพ้การเดิมพันในสองรอบถัดไปจากนั้นชนะการเดิมพันในรอบที่สี่คุณจะจบด้วย 20 + 1-1-2 +4 = 22 ดอลลาร์ คุณคาดว่าจะทำให้ฟังก์ชันเสร็จสมบูรณ์gซึ่งใช้เวลาสองข้อโต้แย้ง: อาร์กิวเมนต์แรกคือเลขจำนวนเต็มaซึ่งเป็นเงินเริ่มต้นที่เรามีเมื่อเราเริ่มเดิมพัน rอาร์กิวเมนต์ที่สองเป็นสตริง ตัวละครของผลลัพธ์ที่ได้จะเป็น 'W' (ชนะ) หรือ 'L' (แพ้) แสดงถึงผลลัพธ์ของรอบที่ ith ฟังก์ชั่นของคุณควรคืนจำนวนเงินที่คุณจะได้รับหลังจากเล่นรอบทั้งหมด หาก ณ จุดหนึ่งคุณไม่มีเงินเพียงพอในบัญชีของคุณเพื่อครอบคลุมมูลค่าของการเดิมพันคุณต้องหยุดและคืนเงินที่คุณมี ณ จุดนั้น วิ่งตัวอย่าง 1st round - Loss: 15-1 …

10
สร้างล่ามภาษาการเขียนโปรแกรม [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัพเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Code Golf Stack Exchange ปิดให้บริการใน3 ปีที่ผ่านมา งาน: คุณต้องสร้างล่ามที่สามารถแยกวิเคราะห์ตัวอย่างของภาษาการเขียนโปรแกรม ภาษาไม่จำเป็นต้องมีความซับซ้อน แต่จะต้องมีองค์ประกอบของการสร้างประโยคต่อไปนี้: ความสามารถในการกำหนดและอ่านตัวแปร (อาจจะง่ายเหมือนa- zเป็นตัวแปรที่สร้างไว้ล่วงหน้า) ถ้าข้อความ (อื่นและไม่จำเป็นต้องมี) ลูป (นับเป็นจำนวนตามอำเภอใจไม่ต้องใช้การเข้าถึงตัวนับ) คณิตศาสตร์อย่างง่ายพร้อมตัวแปร (การบวกการลบการคูณการหารการหารมากกว่า / น้อยกว่าเท่ากับ) พิมพ์คำสั่ง กฎ: คุณไม่สามารถคัดลอกไวยากรณ์ของภาษายอดนิยมอื่น คุณต้องเขียนล่ามของคุณเองไม่ใช่การดัดแปลงล่ามอื่น คุณสามารถเขียนล่ามในภาษาใดก็ได้ เขียนโปรแกรมตัวอย่าง 99 ขวดเบียร์ในภาษาของคุณ (ดูที่นี่ ) นี่คือการประกวดความนิยมดังนั้นคำตอบที่ได้รับการโหวตมากที่สุดจะเป็นผู้ชนะ

1
quine-ish โอเอกซ์
เขียนโปรแกรมในภาษาที่คุณเลือกซึ่งเล่นเกม tic-tac-toe ที่สมบูรณ์แบบบนกระดาน 3 * 3 กับผู้เล่นคนหนึ่ง อย่างไรก็ตามการย้ายทุกครั้งจะต้องเป็นโปรแกรมที่แตกต่างซึ่งสร้างขึ้นจากการวนซ้ำก่อนหน้านี้ อย่างไรและในรูปแบบใดที่คุณประเมินการป้อนข้อมูลของมนุษย์ขึ้นอยู่กับคุณ แต่จะต้องอ่านจากอินพุตมาตรฐาน ในทำนองเดียวกันคุณมีอิสระที่จะเลือกวิธีที่คุณจะตัดสินว่าผู้เล่นคนใดเริ่มต้น (ตัวอย่างเช่นคุณถามก่อนหรืออนุญาตให้มนุษย์เข้าสู่การเคลื่อนไหวที่ไม่ถูกต้องเพื่อส่งสัญญาณว่าคอมพิวเตอร์เริ่มหรือแนวคิดอื่น ๆ ) การตรวจสอบความเคลื่อนไหวนั้นไม่จำเป็นคุณสามารถถือว่าคู่ต่อสู้ของมนุษย์เล่นได้อย่างเป็นธรรม โดยทั่วไปคุณมีโปรแกรมที่สอดคล้องกับสถานะของบอร์ด สถานะถูกพิมพ์ด้วยวิธีที่รู้จัก แต่อย่างน้อยคาดว่าจะมีรายละเอียดในระดับต่อไปนี้: X.. 00X x.. หลังจากผู้เล่นเข้าสู่การเคลื่อนไหวโปรแกรมของคุณจะต้องสร้างการวนซ้ำครั้งต่อไปของตัวเองเป็นไฟล์ต้นฉบับในภาษาเดียวกัน (ไม่ว่าจะเป็นเอาต์พุตมาตรฐานหรือไฟล์) และยุติ คุณไม่ได้รับอนุญาตให้จัดเก็บข้อมูลที่อื่นนอกไฟล์ต้นฉบับ (ไม่จำเป็นสำหรับโปรแกรมของคุณในการสร้างและเรียกใช้โปรแกรมที่สร้างขึ้นผู้ใช้สามารถทำได้ - แต่ไม่ได้ห้ามไว้) เมื่อโปรแกรมที่สร้างขึ้นถูกสร้างขึ้นและรันโปรแกรมจะทำงานในทำนองเดียวกันแสดงสถานะรออินพุตของผู้ใช้ ฯลฯ ในตอนท้ายของเกมคุณจะต้องพิมพ์ผลการแข่งขัน (ไม่ว่าคุณจะชนะหรือเสมอ) ในรูปแบบที่พิสูจน์ได้อย่างชัดเจน โดยการเล่นที่สมบูรณ์แบบฉันหมายถึงโปรแกรมจะต้องไม่แพ้และถ้ามีความเป็นไปได้ที่จะบังคับให้ชนะมันควรจะชนะ รหัสที่สั้นที่สุดชนะผู้ชนะจะถูกเลือกอย่างน้อย 10 วันหลังจากรายการที่ถูกต้องครั้งแรก คุณจะได้รับคะแนนลดลง 10% หากโปรแกรมของคุณสามารถจัดการสิ่งปลูกสร้างและเริ่มต้นการทำซ้ำครั้งต่อไป (ฉันรู้ว่ามันอาจจะไม่คุ้มค่าที่สุด) แน่นอนว่าตัวโปรแกรมเองต้องถูกยกเลิกเมื่อเวลาที่การทำซ้ำครั้งถัดไปยอมรับการย้ายจากผู้ใช้ หากคุณใช้อุบายแปลก ๆ แปลก ๆ โปรดโพสต์คำอธิบายสั้น ๆ พร้อมรหัสของคุณ
19 code-golf 

15
เขียนฟังก์ชั่นที่จะบอกคุณว่ามีการลบเส้นสองบรรทัด
ในการท้าทายรหัสก่อนหน้าของฉันฉันขอให้คุณเขียนฟังก์ชั่นที่จะบอกคุณว่าบรรทัดใดที่ถูกลบไป คำแนะนำคือ: เขียนฟังก์ชั่นที่มีห้าบรรทัด ถ้าคุณเรียกใช้ฟังก์ชันตามที่ควรจะเป็น 0 หากคุณลบหนึ่งในห้าบรรทัดใด ๆ และเรียกใช้ฟังก์ชันควรบอกให้คุณทราบว่าบรรทัดใดที่ถูกลบออก (เช่นหากคุณลบบรรทัดสุดท้ายมันควรกลับ 5) ทีนี้ลองทำอะไรที่ยากขึ้นหน่อย ปฏิบัติตามกฎเดียวกันกับข้างต้น แต่คราวนี้ฟังก์ชั่นควรกลับอาร์เรย์ที่บอกคุณว่ามีสองสายที่ถูกลบ ตัวอย่างเช่นถ้าฉันลบบรรทัด 1 และ 5 ค่าส่งคืนควรเป็น [1,5] และถ้าฉันลบบรรทัด 3 และ 4 ค่าส่งคืนควรเป็น [3,4] อีกครั้งหากไม่มีการลบบรรทัดใด ๆ ฟังก์ชันควรส่งคืน 0 คะแนนโบนัสหากคุณสามารถจัดการกรณีที่ถูกลบออกหนึ่งบรรทัด แต่ก็ไม่จำเป็นอย่างยิ่งที่คุณต้องทำเช่นนั้น คุณสามารถใช้ประโยชน์จากฟังก์ชั่นตัวช่วยได้หรือไม่? ใช่ แต่ถ้าคุณต้อง ฟังก์ชั่นในตัวเดียวที่ดึงสิ่งนี้ออกมาเป็นอุดมคติ เช่นเดียวกับความท้าทายครั้งสุดท้ายโซลูชั่น upvoted ที่สูงที่สุดจะเป็นผู้ชนะ ฉันจะเลือกผู้ชนะในหนึ่งสัปดาห์หรือเร็วกว่านั้นหากไม่มีการส่งผลงานใหม่ใน 24 ชั่วโมง

28
คำนวณช่องว่างที่สำคัญ
การค้นหาช่วงเวลาเป็นพิธีกรรมการเขียนโปรแกรมของทางและบ่อยครั้งมากโปรแกรมแรกที่ร้ายแรงลังคน (มักจะมีการแบ่งการทดลอง) แต่เฉพาะช่วงเวลาเท่านั้นที่ทรุดโทรมไปแล้ว สิ่งที่น่าสนใจยิ่งกว่าถัดไปคือการได้รับช่องว่างที่สำคัญ: ช่องว่างที่ไกลที่สุดระหว่างช่วงเวลาที่ต่อเนื่องกัน สิ่งเหล่านี้ค่อนข้างหายากและมีค่า คู่แรกและความแตกต่างของพวกเขาคือ: 2 3 1 3 5 2 7 11 4 23 29 6 89 97 8 113 127 14 ... พ่อของฉันเคยคำนวณสิ่งเหล่านี้ด้วยมือเพื่อความสนุกสูงสุด 10k มาดูกันว่าคุณสามารถรับรหัสสั้น ๆ ได้อย่างไร กฎ: ไม่มีฟังก์ชั่นในตัวสำหรับการทดสอบที่สำคัญรุ่นที่สำคัญหรือช่องว่างที่สำคัญ ไม่มีการเรียกhttp://oeis.org/A002386หรือสิ่งที่คล้ายกัน (ฉันสามารถดมคุณขี้โกงจากที่ไกล ๆ :)) ไม่มีอาร์เรย์ที่คำนวณล่วงหน้า ทำการพิมพ์ต่อไปจนกว่าชนิดจำนวนเต็มภายในของคุณจะล้มเหลว จำนวนตัวละครต่ำสุดชนะ +10 ตัวอักษรหากคุณพิมพ์เฉพาะช่องว่างโดยไม่ต้องกำหนดจำนวน นอกจากนี้คุณยังสามารถอวดเวอร์ชั่นด้วยฟังก์ชั่นบิวท์อินหากพวกมันน่าสนใจ มีความคิดสร้างสรรค์. การชี้แจง: คุณต้องผ่านช่วงเวลาที่เหมาะสมและคุณรายงานทุกครั้งที่คุณเห็นช่องว่างที่ใหญ่กว่าช่องว่างที่คุณเคยเห็นมาก่อน ตัวอย่างเช่นระหว่าง 3 ถึง 5 …
19 code-golf  primes 

1
เกมผู้เล่น 2 คนที่สั้นที่สุดของ Halma
ในหมากรุกก็เป็นไปได้สำหรับเกมที่จะจบหลังจาก 4 ย้าย (2 แต่ละคน) กับคู่ของคนโง่ เป้าหมายของคุณคือค้นหา Fool's Mate of Halma : เกมสำหรับผู้เล่น 2 คนของ Halma ที่ลดจำนวนการเล่นลง มีสถานะของบอร์ดมากกว่า 10 56สถานะและฉันเห็นว่าปัจจัยการแตกสาขามีมากกว่า 1,000 ดังนั้นโอกาสที่จะไม่มีใครพบทางออกที่ดีที่สุด คุณกำลังพยายามหาทางออกที่ดีที่สุดแทน คุณควรส่งรายการการเคลื่อนไหวและรหัสใด ๆ ที่คุณใช้เพื่อสร้างการเคลื่อนไหวเหล่านั้น คำอธิบายของเกม Halma คล้ายกับ Chinese Checkers แต่เล่นบนกระดานขนาด 16 * 16 ตารางเมตร เริ่มแรกคณะกรรมการมีลักษณะเช่นนี้: เป้าหมายของเกมคือการย้ายชิ้นส่วนทั้งหมดของคุณไปยังตำแหน่งเริ่มต้นของชิ้นส่วนของฝ่ายตรงข้าม ในการเปิดของผู้เล่นเขา / เธออาจ: ผ่านการเลี้ยว ย้ายชิ้นใดชิ้นหนึ่งของเขา / เธอไปยังพื้นที่ว่างที่อยู่ติดกัน ช่องว่างที่อยู่ติดกันรวมถึงเส้นทแยงมุม เอาชิ้นหนึ่งของเขา / เธอและทำตามจำนวนครั้ง: กระโดดชิ้นเหนือชิ้นส่วนที่อยู่ติดกันเชื่อมโยงไปถึงในพื้นที่ตรงข้ามชิ้นกระโดดข้าม …

2
จำนวนผลลัพธ์ตัวเลขที่เป็นไปได้ของการวงเล็บ 2 ^ 2 ^ … ^ 2
พิจารณาการแสดงออก2^2^...^2กับผู้ประกอบการn ^ผู้ประกอบการ^หมายถึงการยกกำลัง ("ถึงพลังของ") สมมติว่ามันไม่ได้มีค่าเริ่มต้นของการมีเพศสัมพันธ์ที่ไม่ดีดังนั้นการแสดงออกต้องได้รับการวงเล็บอย่างเต็มที่เพื่อให้ชัดเจน หลายวิธีที่จะ parenthesize การแสดงออกจะได้รับจากหมายเลขที่คาตาลัน C_n=(2n)!/(n+1)!/n! บางครั้ง parenthesizations ที่แตกต่างกันให้ผลเป็นตัวเลขเดียวกันตัวอย่างเช่น(2^2)^(2^2)=((2^2)^2)^2ดังนั้นจำนวนของผลเป็นตัวเลขที่เป็นไปได้ที่แตกต่างกันสำหรับการกำหนดnน้อยกว่าสำหรับทุกC_n n>1ลำดับเริ่มต้น1, 1, 2, 4, 8, ...เมื่อเทียบกับหมายเลขคาตาลัน1, 2, 5, 14, 42, ... ปัญหาที่เกิดขึ้นคือการเขียนโปรแกรมที่เร็วที่สุด (หรือฟังก์ชั่น) ที่ยอมรับnเป็น input และส่งกลับจำนวนของผลเป็นตัวเลขที่แตกต่างกันเป็นไปได้ของการแสดงออก2^2^...^2กับผู้ประกอบการn ^ประสิทธิภาพไม่ควรลดลงอย่างมีนัยสำคัญเมื่อnโตขึ้นดังนั้นการคำนวณโดยตรงของเสาพลังงานสูงอาจเป็นความคิดที่ไม่ดี

6
หมากรุก - ค้นหาการเคลื่อนไหวทางกฎหมายทั้งหมด (ยกเว้นการโยนและการผ่าน)
เขียนรหัสที่สั้นที่สุดซึ่งคำนวณการเคลื่อนไหวที่เป็นไปได้ (ถูกกฎหมาย) ทั้งหมดของผู้เล่นปัจจุบันจากสตริง FEN ที่กำหนด สตริง FEN คืออะไร (วิกิพีเดีย) รหัสที่สั้นที่สุดชนะภาษาไม่สำคัญ ย้ายขาออกต้องปฏิบัติตามกฎระเบียบของการเคลื่อนไหวหมากรุก ยกเว้นการกิน , ขุนและการส่งเสริมการจำนำ ละเว้นการตรวจสอบรุกฆาตและจนมุมคิงไม่สามารถจับสถานการณ์ได้เช่นกัน คุณสามารถตั้งค่าเอาท์พุทที่แตกต่างกันตามที่คุณต้องการ (ตัวอย่างเช่น: A2-A4, A2A4, a2a4, a2->a4... ) กรณีทดสอบ: # INPUT 1: rnbqkbnr / pppppppp / 8/8/8/8 / PPPPPPPP / RNBQKBNR w KQkq - 0 1 # เอาท์พุท 1 A2-A4, A2-A3, B2-B4, B2-B3, C2-C4, C2-C3, D2-D4, …
19 code-golf  chess 

21
ย้อนกลับได้
งานของคุณง่าย โปรแกรมอ่านในบรรทัดข้อความจากอินพุตมาตรฐานและพิมพ์ข้อความเดียวกันในรูปแบบที่ตรงกันข้ามตัวละคร ไม่อนุญาตให้พิมพ์สิ่งอื่นใด ตัวอย่างเช่น: อินพุต: "Hello!", เอาต์พุต: "! olleH" สิ่งที่จับได้คือโปรแกรมของคุณจะต้องสามารถทำสิ่งเดียวกันได้อย่างแน่นอนหากซอร์สโค้ดนั้นกลับมาเป็นตัวละคร! เกณฑ์การให้คะแนน: ใช้การให้คะแนนโค้ดกอล์ฟแบบมาตรฐานโดยมีการแก้ไขดังต่อไปนี้เพื่อ จำกัด การคว้าน //margorp program// คำตอบสไตล์: วิธีแก้ปัญหาใด ๆ ที่เป็น palindrome จะต้องเสียค่าปรับ 25% จากคะแนนเต็ม บทลงโทษนี้ยังคงมีผลอยู่หากคุณใส่ตัวอักษรลงในโปรแกรมที่ไม่มีผลใด ๆ ที่เป็นประโยชน์เพียงเพื่อแยกส่วนที่เป็นสีออก

3
ชุดก่อสร้าง Dungeon
เมื่อผมเป็นเด็กผมเล่นเกม Intellivision สูงดินและมังกร: สมบัติของ Tarmin กราฟิก 3 มิติทำให้คุณอยู่ในมุมมองของมุมมองบุคคลที่หนึ่งด้วยความสมจริงที่น่าตกใจ: แต่ฉันได้รับ C-64 และฉันก็สามารถที่จะวาดภาพบนตาราง 40x25 ตัวอักษรโดย cursoring รอบ ๆ หน้าจอการตั้งค่าสีที่มีปุ่ม Ctrl และหลักและวางสัญลักษณ์ใดก็ได้ผมอยาก(ทำไมไม่bashให้ฉันทำอย่างนั้น?) ชุดตัวละครนั้นมีส่วนประกอบเป็นรูปสามเหลี่ยมและส่วนประกอบที่เป็นของแข็ง ดังนั้นฉันจึงสามารถให้เหตุผลว่าใครจะสร้างมุมมองของคน ๆ หนึ่งในกริดผ่านสื่อนั้น ฉันพบสเป็คเก่าแก่เกือบสามทศวรรษในสมุดบันทึกที่มีเกลียวเป็นเกลียวเกี่ยวกับ "ชุดก่อสร้าง Dungeon" ในสัปดาห์นี้: ( อัปเดต : ผู้อ่านระวังจะสังเกตเห็นว่าสิ่งนี้ไม่ได้อยู่ด้วยกันในส่วนที่เอียง, หมายเลขที่ถูกต้องมีให้ด้านล่าง แม้ว่า Treasure of Tarmin จะถูกเล่นบนกริด แต่กำแพงนั้นมีอยู่ที่ขอบสี่เหลี่ยมกริดเท่านั้น ฉันรู้ว่าถ้าฉันสร้างแผนที่จากไบต์ ... แต่ละสี่เหลี่ยมจัตุรัสบนแผนที่อาจมีสี่สถานะที่เป็นไปได้สำหรับแต่ละขอบ: ไม่มีอะไรขัดขวาง ผนัง ประตู อื่น ๆ อีก? ฉันไม่เคยเขียนมันเลย (จนกระทั่งเมื่อคืน) ฉันคิดว่ามันน่าสนุกสำหรับคนอื่นที่จะลอง …

1
เขียนรหัสปัญหากอล์ฟที่ Java ชนะ [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัพเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Code Golf Stack Exchange ปิดให้บริการใน7 ปีที่ผ่านมา เขียนรหัสงานกอล์ฟดังกล่าวว่า อินพุตเฉพาะ (ถ้ามี) ที่จำเป็นสำหรับภารกิจคือข้อความจากอินพุตมาตรฐานและเอาต์พุตเฉพาะที่ภารกิจต้องการคือข้อความไปยังเอาต์พุตมาตรฐาน มีอักขระเอาต์พุตที่ถูกต้องหนึ่งสตริงสำหรับอินพุตทางกฎหมายที่เป็นไปได้ทุกตัวตามที่กำหนดโดยภารกิจ อินพุตทางกฎหมายที่เป็นไปได้แต่ละรายการมีความยาวน้อยกว่า 10,000 อักขระ แต่ละเอาต์พุตที่ถูกต้องมีความยาวน้อยกว่า 10,000 อักขระ โปรแกรมที่สั้นที่สุด (ที่ผู้ใช้ StackExchange จัดการเพื่อเขียน) ซึ่งทำงานให้สำเร็จสำหรับทุกอินพุตใน Java งานที่มีโปรแกรม Java ที่เกี่ยวข้องสั้นที่สุดชนะ
19 code-golf 

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