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

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

24
รออินพุตอย่างอดทน
งานของคุณในวันนี้คือการใช้การ จำกัด เวลาสำหรับการป้อนข้อมูลงานที่ฉันพบค่อนข้างน่ารำคาญที่จะประสบความสำเร็จในภาษาส่วนใหญ่ คุณจะสร้างฟังก์ชั่นโปรแกรมที่แจ้งให้ผู้ใช้ป้อนข้อมูล ทันทีหลังจากผู้ใช้ป้อนข้อมูลให้พิมพ์ข้อความinput receivedและสิ้นสุดการดำเนินการ / ส่งคืน อย่างไรก็ตามหากผู้ใช้รอนานกว่า 10 วินาทีเพื่อให้อินพุตเอาต์พุตข้อความno input receivedและสิ้นสุดการเรียกใช้งาน / ส่งคืน อินพุตต้องมาจากstdin(คอนโซล) หรือเทียบเท่าไม่ใช่ฟังก์ชันหรืออาร์กิวเมนต์ของโปรแกรมอย่างไรก็ตามเอาต์พุตสามารถเป็นได้ถึงstdoutค่าส่งคืนของฟังก์ชันหรือวิธีเอาต์พุตอื่นที่ยอมรับ คุณอาจถามจำนวนการป้อนข้อมูลใด ๆ ก็ได้ซึ่งอาจเป็นอักขระตัวเดียวบรรทัดคำหรือวิธีการใดก็ตามที่สั้นที่สุดในภาษาของคุณตราบใดที่ภาษานั้นรออย่างน้อยหนึ่งตัว คุณต้องส่งออกทันทีที่ได้รับอินพุตไม่ใช่หลังจากผ่านไป 10 วินาที หลังจากผ่านไป 10 วินาทีคุณจะต้องจบคุณจะไม่สามารถรออินพุตno input receivedได้หลังจากพิมพ์ออกมาแล้ว คุณอาจสมมติว่าอินพุตไม่ถูกส่งผ่านในช่วงเวลา 10 วินาทีที่ผ่านไปและข้อความที่พิมพ์ไปยังหน้าจอเนื่องจากหน้าต่างนี้มีขนาดเล็กมาก คุณอาจจะคิดว่าภาษาของคุณsleepนั้นมีความสมบูรณ์แบบเสมอกัน นี่คือcode-golfไบต์ที่น้อยที่สุดชนะ!
39 code-golf 

21
คะแนนปาเป้าที่เป็นไปไม่ได้
ฉันรู้สึกประหลาดใจที่ไม่พบคำถามนี้ แต่มีคำถามที่ยอดเยี่ยมเกี่ยวกับการชำระเงินปาเป้า: ปาเป้าพบ Codegolf ความท้าทายของคุณคือการคำนวณว่าไม่สามารถทำคะแนนใดได้ด้วยลูกดอก 'n' ต่ำกว่าคะแนนสูงสุดของลูกดอก 'n' เช่นสำหรับ n = 3 คะแนนสูงสุดที่เป็นไปได้คือ 180 ดังนั้นคุณจะกลับมา [163,166,169,172,172,173,175,176,176,178,179] สำหรับการสรุปกฎของกระดูกข้อเปลือย: คะแนนที่เป็นไปได้สำหรับโผเดียวคือ: 0 (พลาด) 1-20, 25, 50 สองหรือสามเท่าของ 1-20 กฎ: ใช้กฎกติกากอล์ฟมาตรฐาน คุณต้องใช้พารามิเตอร์ 'n' เพียงอย่างเดียวในวิธีที่ภาษาของคุณอนุญาตและส่งคืนรายการ / อาร์เรย์ของคะแนนเฉพาะทั้งหมดต่ำกว่าคะแนนสูงสุดซึ่งไม่สามารถทำคะแนนได้ด้วย n ปาเป้า คุณยังสามารถพิมพ์ค่าเหล่านี้ไปยังคอนโซล ลำดับของผลลัพธ์นั้นไม่สำคัญ โค้ดที่สั้นที่สุดในหน่วยไบต์ชนะ
39 code-golf 

19
สร้างระบบพลังงานแสงอาทิตย์
Intro นี่ขึ้นอยู่กับปัญหาจริงที่ฉันเพิ่งเผชิญในขณะที่สร้างเกมคอมพิวเตอร์ขึ้นมาและฉันคิดว่ามันน่าจะเป็นโค้ดกอล์ฟที่ดี ดาวฤกษ์มีสเปคตรัมหลักเจ็ดดวงที่ดับความร้อนได้หลายระดับ ธรณีวิทยาของดาวเคราะห์รอบดาวฤกษ์ได้รับอิทธิพลอย่างมากจากปริมาณความร้อนที่ได้รับจากดาวฤกษ์ซึ่งเป็นปัจจัยของชั้นสเปกตรัมและระยะทางจากดาวฤกษ์ ดังนั้นดาวพุธจึงละลายได้จริงดาวเนปจูนถูกแช่แข็ง กาแลคซีในเกมของฉันนั้นถูกสร้างขึ้นตามขั้นตอนและการสุ่มเลือกประเภทดาวเคราะห์สำหรับดาวที่ให้นั้นกลายเป็น "คำแถลงนรก" ที่แท้จริง ความท้าทาย วิธีการของคุณควรเลือกดาวเคราะห์หนึ่งดวงจากรายการประเภทดาวเคราะห์ที่เหมาะสมกับชั้นของดาวโดยขึ้นอยู่กับเกณฑ์ความร้อนขั้นต่ำขีดจำกัดความร้อนสูงสุดและหมายเลขสุ่ม เพื่อความง่ายความท้าทายนี้จะใช้ดาว G คลาสเหมือนดวงอาทิตย์ของเรา ปัจจัยการผลิต จำนวนเต็มheatในช่วง 4 ถึง 11 แสดงถึงปริมาณความร้อนที่ดาวเคราะห์ได้รับจากดาว ตัวแปร heatตารางนี้แสดงดาวเคราะห์ที่เป็นไปได้ขึ้นอยู่กับ วิธีการของคุณควร จำกัด ตัวเลือกที่มีให้โดยพิจารณาจากค่าความร้อนและค่าความร้อนสูงสุดheatควรลดลงหรืออยู่ระหว่างค่าทั้งสอง เช่นกับความร้อน 10 ผ่านในตัวเลือกเท่านั้นจะเป็นทะเลทรายเหล็กและลาวา Planet type Heat min Heat max Random Chance Gas Giant 4 9 15 Ice 4 6 10 Ice Giant 4 6 10 Gaia …
39 code-golf  random 

30
แสดงหน้าปัดนาฬิกา
แสดงตัวเลข 12 ตัวบนหน้าปัดนาฬิกาแบบนี้ 12 11 1 10 2 9 3 8 4 7 5 6 หากต้องการดูกริดให้ดีขึ้นนี่คือจุดที่มีจุด: ...........12............ .....11...........1...... ......................... .10...................2.. ......................... ......................... 9.......................3 ......................... ......................... ..8...................4.. ......................... ......7...........5...... ............6............ โปรดทราบว่ากริดยืดความกว้างออกเป็นสองส่วนเพื่อให้ดูกว้างขึ้น โปรดทราบว่าตัวเลขสองหลักนั้นสอดคล้องกับตัวเลขในตำแหน่ง ตัวเลข 9 หลักควรอยู่ด้านซ้ายมือ ส่งคืนหรือพิมพ์ผลลัพธ์เป็นสตริงหลายบรรทัด (ไม่ใช่รายการของบรรทัด) ช่องว่างต่อท้ายใด ๆ เป็นตัวเลือก บรรทัดใหม่สุดท้ายยังเป็นตัวเลือก

30
ฉันทำยานอวกาศกระเพาะปลาแล้ว!
บทนำ: แรงบันดาลใจจากความคิดเห็นนี้@MagicOctopusUrnบน@Emignaคำตอบ 05AB1E 'sสำหรับฉัน' มันเป็นเพียงข้อผิดพลาด ' ความท้าทาย : 8F9ÝÀNð×ý}».∊ฉันทำยานอวกาศกระเพาะปลาแล้ว! และฉันก็ตื่นเต้นกับการแนะนำการแก้ไขแบบ 12 ไบต์ - Magic Octopus Urn 17 กรกฎาคม '17 เวลา 20:10 โปรแกรม05AB1E (ดั้งเดิม) ตัวใดที่ทำให้เกิดผลลัพธ์นี้: 1234567890 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 …

30
มีการกระแทกหรือไม่
รับรายการจำนวนเต็มบวกกำหนดว่ามีองค์ประกอบที่มากกว่าสองเพื่อนบ้านหรือน้อยกว่าสองเพื่อนบ้าน ("ชน") เพื่อให้ชัดเจนชนไม่สามารถเป็นรายการแรกหรือสุดท้ายของรายการเพราะพวกเขามีเพื่อนบ้านเพียงคนเดียว โปรแกรมของคุณควรส่งออกหนึ่งในสองค่าที่สอดคล้องกันแต่ละรายการที่สอดคล้องกับรายการที่ไม่มีการกระแทกหรือรายการที่มีการกระแทก คุณค่าที่ไม่สำคัญคุณสามารถเลือกได้เอง นี่คือcode-golfดังนั้นคำตอบจะได้คะแนนเป็นไบต์ด้วยจำนวนไบต์ที่น้อยกว่าจะดีกว่า กรณีทดสอบ [] -> False [1] -> False [1,2] -> False [1,2,1] -> True [1,2,2] -> False [1,2,3] -> False [1,2,2,1] -> False [1,2,2,3] -> False [1,2,1,2] -> True [1,3,2] -> True [3,1,2] -> True [2,2,2] -> False

3
แก้อัลคาซ่าร์นี้ให้ฉัน
เมื่อเร็ว ๆ นี้ฉันได้เล่นเกมที่เรียกว่าอัลคาซ่า มันเป็นเกมกระดานปริศนาที่เป้าหมายของคุณคือเข้าจากประตูหนึ่งผ่านผ่านช่องสี่เหลี่ยมทั้งหมดและออกจากประตูอีกบานหนึ่ง กฎเท่านั้นคือ: ป้อนหนึ่งครั้งออกครั้งเดียว; ผ่านช่องสี่เหลี่ยมทั้งหมด อย่าผ่านช่องสี่เหลี่ยมมากกว่าหนึ่งครั้ง ภาพด้านล่างแสดงตัวอย่างของอัลคาซ่าร์บอร์ดและทางด้านขวาของปริศนาที่แก้แล้ว (แน่นอนว่านี่เป็นภาพที่ง่าย): คุณสามารถค้นหาปริศนาเพิ่มเติมได้ที่http://www.theincrediblecompany.com/try-alcazarและดาวน์โหลดเกมที่ PlayStore (PS: ไม่ใช่โฆษณา) ปัญหาของฉันคือฉันเกือบจะจบเกมยกเว้นระดับหนึ่ง ฉันไม่สามารถหาวิธีแก้ไขได้ ดังนั้นความท้าทายที่ฉันเสนอคือสร้างอัลกอริธึมที่แก้ระดับ1ปกติ2ระดับอัลคาซาร์ที่แก้ไขได้ แน่นอนฉันไม่ได้ขอให้ทุกคนสร้างล่ามภาพเพื่ออ่านภาพและไขปริศนา (หรือฉัน) ดังนั้นฉันจึงไขปริศนาด้านบนโดยใช้อักขระวาดกล่อง ตัวต่อและวิธีแก้ปัญหาจะเป็นดังนี้: ╔═══════╗ ╔═══════╗ ║▒ ▒ ▒ ▒║ ║┌─┐ ┌─┐║ ║ ║ ║ ║│ │ │║│║ ╣▒ ▒ ▒║▒╠ ╣│ └─┘║└╠ ║ ══╦═╩═╣ ║│══╦═╩═╣ ║▒ ▒║▒ ▒║ ║└─┐║┌─┐║ ║ ║ ║ …

30
เรามีคำถามหนึ่งครั้งซึ่งล้มเหลวในวันอาทิตย์เท่านั้น
แรงบันดาลใจจากเรามีการทดสอบหน่วยครั้งเดียวซึ่งล้มเหลวในวันอาทิตย์เท่านั้นเขียนโปรแกรมหรือฟังก์ชั่นที่ไม่ทำอะไรเลยนอกจากโยนข้อผิดพลาดเมื่อมันเป็นวันอาทิตย์และออกอย่างสง่างามในวันอื่น ๆ กฎ: ไม่ใช้อินพุตหรือแสดงเอาต์พุตผ่านวิธีการ IO ปกติยกเว้นการพิมพ์ไปยัง STDERR หรือภาษาที่เทียบเท่าของคุณ คุณได้รับอนุญาตให้พิมพ์ไปที่ STDOUT หากเป็นผลพลอยได้จากข้อผิดพลาดของคุณ ฟังก์ชั่นอาจคืนค่าในวันอาทิตย์ตราบใดที่มันไม่ได้พิมพ์อะไรเลย โปรแกรมของคุณอาจใช้วันอาทิตย์จากเขตเวลาใดก็ได้หรือเขตเวลาท้องถิ่นตราบใดที่มีความสอดคล้อง ข้อผิดพลาดคือสิ่งที่ทำให้โปรแกรมหยุดทำงานผิดปกติเช่นการหารด้วยข้อผิดพลาดที่เป็นศูนย์หรือการใช้ตัวแปรที่ไม่มีการกำหนดค่าเริ่มต้น ซึ่งหมายความว่าหากมีการเพิ่มรหัสใด ๆ หลังจากส่วนที่มีข้อผิดพลาดจะไม่ถูกประมวลผลในวันอาทิตย์ raiseนอกจากนี้คุณยังสามารถใช้งบที่ตนเองสร้างข้อผิดพลาดเทียบเท่ากับงูใหญ่ ซึ่งรวมถึงข้อผิดพลาดขณะทำงานข้อผิดพลาดทางไวยากรณ์และข้อผิดพลาดขณะรวบรวม (ขอให้โชคดี!) ในข้อผิดพลาดจะต้องมีสัญญาณบางอย่างที่แตกต่างจากไม่มีข้อผิดพลาด นี่คือรหัสกอล์ฟดังนั้นจำนวนไบต์ที่สั้นที่สุดในแต่ละภาษาจะชนะ! ฉันจะต้องรอจนกว่าจะถึงวันอาทิตย์เพื่อตรวจสอบคำตอบ;)

30
ทำเครื่องหมายอีเมลของฉัน! - บาร์โค้ด ASCII
บาร์โค้ด 4 สถานะ บริการไปรษณีย์หลายแห่ง (Royal Mail UK, Canada Post, US Mail และอื่น ๆ ) ใช้บาร์โค้ด 4 สถานะเพื่อเข้ารหัสข้อมูลเกี่ยวกับจดหมายของพวกเขา แสดงผลใน ASCII อาจมีลักษณะดังนี้: | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | …

30
พิมพ์หนังสือเล่มเล็ก
การอ่านหนังสือเป็นเรื่องง่าย แต่การพิมพ์หนังสืออาจเป็นเรื่องยาก เมื่อพิมพ์หนังสือเล่มเล็กเครื่องพิมพ์จะต้องจัดเรียงหน้ากระดาษในลักษณะที่แน่นอนเพื่อให้อ่านจากซ้ายไปขวา วิธีการนี้ทำได้โดยใช้รูปแบบดังต่อไปนี้ n, 1, 2, n-1, n-2, 3, 4, n-3, n-4, 5, 6, n-5, n-6, 7, 8, n-7, n-8, 9, 10, n-9, n-10, 11, 12, n-11… กรณีทดสอบ หนังสือเล่มเล็ก 4 หน้า: 4, 1, 2, 3 หนังสือเล่มเล็ก 8 หน้า: 8,1,2,7,6,3,4,5 หนังสือเล่มเล็ก 12 หน้า: 12,1,2,11,10,3,4,9,8,5,6,7 หนังสือเล่มเล็ก 16 หน้า: 16,1,2,15,14,3,4,13,12,5,6,11,10,7,8,9 หนังสือเล่มเล็ก 20 …

15
นับถึง 20 ด้วยคำพูด!
การใช้รายการคำที่คั่นด้วยความยาวต่อไปนี้: https://github.com/Magic Octopus Urn / wordListsByLength พิมพ์ 1 คำจากแต่ละรายการความยาวn จาก 1 ไปจนถึง 20 นี่คือตัวอย่างที่ถูกต้อง: a an and hand hands handle handles abandons abandoned understand outstanding newfoundland understanding characteristic characteristics characterization characterizations characteristically characterologically chemotherapeutically อีกทางหนึ่ง (อาร์เรย์): ['a', 'an', 'and', 'hand', 'hands', 'handle', 'handles', 'abandons', 'abandoned', 'understand', 'outstanding', 'newfoundland', 'understanding', 'characteristic', …

3
Tool-Assisted Code Golf
TAS Golf ในรูปแบบของspeedrun ที่ได้รับการช่วยเหลือจากเครื่องมือด้วยการหมุนรหัส - กอล์ฟเป้าหมายของความท้าทายนี้คือการทำให้เกมSuper Mario Brosดั้งเดิมของWorld 1-1เสร็จสมบูรณ์สำหรับ NES ในภาษาโปรแกรมที่คุณเลือกในเวลาไม่กี่ไบต์เท่าที่จะเป็นไปได้ ใช้อินพุตควบคุมในเกมในรูปแบบที่ฉันจะอธิบายด้านล่าง โปรแกรมของคุณจะต้องส่งออกไปยังรายการบรรทัดในรูปแบบนี้ซึ่งสร้างขึ้นสำหรับความท้าทายนี้โดยเฉพาะ:stdout up down left right start select A B เริ่มต้นด้วยเฟรมแรกแต่ละบรรทัดใหม่แสดงถึงอินพุตสำหรับคอนโทรลเลอร์ 1 สำหรับเฟรมเฉพาะ ลำดับของปุ่มต่อเฟรมไม่สำคัญและสามารถแยกออกจากกันด้วยจำนวนของพื้นที่ว่างที่ไม่ใช่บรรทัดใหม่ ชื่อปุ่มทั้งหมดหรือทั้งหมดหรือบางส่วนสามารถรวมต่อบรรทัดได้ ตัวอย่างเช่นโปรแกรม Python อย่างง่ายที่กด D-pad ไปทางขวา 3 เฟรมจากนั้นกด A อาจมีลักษณะเช่นนี้: for _ in range(3): print('right') print('A') และเอาท์พุทของมัน (ซึ่งฉันจะป้อนลงในโปรแกรมจำลองการของฉันเพื่อตรวจสอบ) จะเป็น: right right right A ที่นี่เรานิยาม 'ความสำเร็จ' …
39 code-golf  game 

30
ค้นหาองค์ประกอบที่ซ้ำกันครั้งแรก
รับอาร์เรย์ a ที่มีเฉพาะตัวเลขในช่วงจาก 1 ถึง a.length ให้ค้นหาหมายเลขที่ซ้ำกันครั้งแรกที่เกิดขึ้นครั้งที่สองมีดัชนีขั้นต่ำ กล่าวอีกนัยหนึ่งหากมีตัวเลขที่ซ้ำกันมากกว่า 1 หมายเลขให้ส่งคืนหมายเลขที่เหตุการณ์ที่สองมีดัชนีที่เล็กกว่าการเกิดครั้งที่สองของหมายเลขอื่น หากไม่มีองค์ประกอบดังกล่าวโปรแกรม / ฟังก์ชั่นของคุณอาจส่งผลให้เกิดพฤติกรรมที่ไม่ได้กำหนด ตัวอย่าง: สำหรับการส่งออกที่ควรจะเป็นa = [2, 3, 3, 1, 5, 2] firstDuplicate(a) = 3 มี 2 ​​รายการซ้ำกัน: หมายเลข 2 และ 3 เหตุการณ์ที่สองที่ 3 มีดัชนีที่เล็กกว่าที่เกิดขึ้นที่สองที่ 2 ดังนั้นคำตอบคือ 3 สำหรับการส่งออกที่ควรจะเป็นa = [2, 4, 3, 5, 1] firstDuplicate(a) = -1 นี่คือcode-golfดังนั้นคำตอบที่สั้นที่สุดในจำนวนไบต์ชนะ โบนัส: …

13
579085261 คือ CRAZY, 725582 is GOLF, 10757494 is …?
งานของคุณคือการแปลเลขที่ 103ให้เป็นคำภาษาอังกฤษโดยใช้วิธีการที่อธิบายไว้ด้านล่าง อย่างไร? สร้างรายการปัจจัยหลัก (พร้อมการทำซ้ำ) ของหมายเลขอินพุท จัดเรียงรายการ: หาก2ไม่ใช่ปัจจัยสำคัญอันดับหนึ่งให้เรียงรายการตามลำดับจากน้อยไปหามาก หาก2เป็นหนึ่งในปัจจัยหลักให้ลบออกจากรายการและเรียงลำดับปัจจัยที่เหลือตามลำดับจากมากไปน้อย แปลแต่ละปัจจัยเป็นตัวอักษรโดยใช้ตารางต่อไปนี้: 3 = S 13 = L 29 = X 43 = O 61 = Z 79 = H 101 = K 5 = P 17 = Q 31 = N 47 = R 67 = T 83 = V 103 …

1
LISP ของ McCarthy
McCarthy's LISP 2502 ในต้นปี พ.ศ. 2502 จอห์นแม็คคาร์ธีได้เขียนบทความที่แปลกใหม่ซึ่งกำหนดฟังก์ชั่นดั้งเดิมเพียงเก้าอย่างที่เมื่อรวมเข้าด้วยกันยังคงเป็นพื้นฐานสำหรับภาษา LISP ที่เหมือนกันทุกวันนี้ กระดาษมีดิจิทัลที่นี่: http://www-formal.stanford.edu/jmc/recursive.pdf งานของคุณคือการรองรับการใช้ตัวแยกวิเคราะห์และล่าม LISP แมคคาร์ของตรงตามที่อธิบายไว้ในกระดาษ 1960: นั่นคือฟังก์ชั่นQUOTE, ATOM, EQ, CAR, CDR, CONS, COND, LAMBDAและLABELทั้งหมดควรจะทำงาน กระดาษจะมีความสำคัญเหนือข้อความท้าทายนี้เมื่อพิจารณาความถูกต้องของคำตอบ แต่ฉันได้พยายามสรุปฟังก์ชั่นทั้งเก้าด้านล่าง โปรดทราบว่าภาษาจะอยู่ใน CAPS ทั้งหมดและไม่จำเป็นต้องตรวจสอบข้อผิดพลาดอินพุตทั้งหมดควรถูกสันนิษฐานว่าใช้งานได้ ประเภท มีอยู่สองประเภทใน LISP ของ McCarthy: อะตอมและลิสต์ที่เชื่อมโยงซึ่งนิยามไว้แบบวนซ้ำซึ่งอาจเป็นลิสต์หรืออะตอมและลิสต์ที่แนบกับหัว (หาง) NILมีคุณสมบัติพิเศษของการเป็นทั้งอะตอมและรายการ ตามชื่อกระดาษชื่ออะตอมจะประกอบด้วยตัวอักษรพิมพ์ใหญ่ตัวเลขและอักขระเว้นวรรคเท่านั้นแม้ว่าสตริงของช่องว่างที่ต่อเนื่องกันควรได้รับการพิจารณาว่าเป็นเพียงหนึ่งช่องว่างและควรลบอักขระช่องว่างด้านหน้าและด้านหลังทั้งหมด ตัวอย่างชื่อเทียบเท่าอะตอม ___ATOM__1__ = ATOM_1(แทนที่ขีดด้วยอักขระช่องว่าง): ตัวอย่างชื่ออะตอมที่ไม่เทียบเท่า:A_TOM_1 != ATOM_1 รายการถูกแสดงด้วยวงเล็บและโดยนัยNILอยู่ที่ท้ายรายการทุกรายการ องค์ประกอบในรายการคั่นด้วยเครื่องหมายจุลภาคและไม่ใช่ช่องว่างเหมือนกับใน Lisps ที่ทันสมัยที่สุด ดังนั้นรายการจะเป็น(ATOM 1, …

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