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

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

15
ฉันต้องการมานามากแค่ไหน?
Dungeon Masterเป็นเกมเล่นตามบทบาทแบบเรียลไทม์เกมแรกที่เปิดตัวครั้งแรกในปี 1987 ใน Atari ST ในบรรดาสิ่งที่น่าตื่นเต้นอื่น ๆ ในเวลานั้นมันมีระบบคาถาที่ค่อนข้างซับซ้อนบนพื้นฐานของรูน งานของคุณในวันนี้คือการเขียนโปรแกรมหรือฟังก์ชั่นที่ประเมินจำนวนคะแนนมานาที่ต้องใช้ในการร่ายคาถาที่กำหนดให้ใน Dungeon Master ระบบ 'คาถาร่าย' เป็นกล่องสีฟ้าด้านบนขวาในภาพด้านบน คาถารูนและมานา คาถา Dungeon Master ประกอบด้วยรูน 2 ถึง 4 รูที่ถูกเลือกในหมวดหมู่ต่อไปนี้ตามลำดับที่แน่นอนนี้: พลังงาน (จำเป็น) อิทธิพลของธาตุ (จำเป็น) แบบฟอร์ม (ไม่จำเป็น) ระดับ / การจัดตำแหน่ง (ตัวเลือก) หมายความว่าคาถาที่ถูกต้องคือ: อำนาจ + อิทธิพลของธาตุ พลังงาน + อิทธิพลของธาตุ + แบบฟอร์ม อำนาจ + อิทธิพลของธาตุ + แบบฟอร์ม + ระดับ …

30
มินิ จำกัด ที่ท้าทายความสามารถของ Cop
ด้ายของ Robber งานของคุณในฐานะตำรวจคือการเลือกสามสิ่ง: ภาษาโปรแกรม ลำดับ OEIS ชุดไบต์ จากนั้นคุณจะต้องเขียนโปรแกรมในภาษานั้นอย่างลับๆซึ่งคำนวณลำดับที่ n โดยใช้เฉพาะไบต์ในชุดเท่านั้น คุณจะเปิดเผยข้อมูลสามส่วนเพื่อให้โจรสามารถลองคิดดูโปรแกรม คำตอบจะได้คะแนนจากจำนวนไบต์ในชุดไบต์ที่มีคะแนนดีกว่า คำตอบที่ถอดรหัสจะมีคะแนนอัตโนมัติเป็น 0 หากคำตอบของคุณไม่ได้ติดตามหลังจากหนึ่งสัปดาห์คุณอาจเปิดเผยโปรแกรมที่ตั้งใจและทำเครื่องหมายคำตอบว่า "ปลอดภัย" รู้รอบต้องสามารถคำนวณทุกคำศัพท์ในไฟล์ b ของลำดับ แต่ไม่จำเป็นต้องคำนวณคำใด ๆ หลังจากนั้น ลำดับสามารถเป็นดัชนี 1 หรือ 0 สำหรับทั้งตำรวจและโจร นี่คือสคริปต์ Pythonที่ตรวจสอบว่ารหัสของคุณตรงกับชุดไบต์ที่กำหนดหรือไม่

10
Martin vs Dennis - รอบที่ 1: ใครมีตัวแทนมากขึ้น
ฉันรู้ว่ามีความท้าทายมากมายเกี่ยวกับ "นักกอล์ฟสองคนที่ดีที่สุดในโลก" แต่สิ่งนี้มีความพิเศษมากขึ้นอีกเล็กน้อยการอยู่ในรอบที่ 1ในความท้าทาย (อนาคต) ที่เกี่ยวข้องกับพวกเขาทั้งสองคน งานของคุณคือการเขียนโปรแกรมหรือฟังก์ชั่นที่ให้ผลตอบแทนสองสายที่ไม่ใช่ช่องว่าง ASCII ที่แตกต่างกันเพื่อให้ตรงกับคนที่มีชื่อเสียงมากขึ้นในขณะที่โปรแกรมที่วิ่งระหว่างเดนนิส♦และมาร์ตินเอนเดอร์♦ ส่วนที่ยุ่งยากคือคุณต้องส่งออกที่แน่นอนสตริง"ผูก"ในกรณีที่มีชื่อเสียงเป็นเหมือนกัน (ไม่น่า) และทั้งสองไม่ใช่ช่องว่างสตริง ASCII ที่แตกต่างกันดังกล่าวข้างต้นควรจะแตกต่างกว่า"ผูก" * ไม่สามารถรับอินพุตได้เช่นชื่อผู้ใช้หรือรหัสผู้ใช้ ตามปกติแล้วตัวย่อ URL จะถูกห้ามและเช่นเดียวกับช่องโหว่ทั่วไป ตัวอย่าง: Let the chosen string for Dennis be "D" and the chosen one for Martin Ender be "M" (should be specified) If Dennis' rep > Martin Ender's rep => D If …

28
สร้างผนังไบนารี
กำหนดอาร์เรย์ของจำนวนเต็มบวกในฐาน 10 ที่ซึ่งแสดงn > 0เอาต์พุตของกำแพงไบนารี มันทำงานอย่างไร แปลงตัวเลขแต่ละตัวให้เป็นตัวแทนไบนารี Pad แทนด้วยเลขศูนย์ที่นำไปสู่ความยาวของที่ยาวที่สุดคือหนึ่ง1, 2-> ->1, 1001, 10 สร้างกำแพงที่1เป็นอิฐและ0อิฐหายไป ผนังเป็นบล็อกของตัวละครที่ตัวละครที่พิมพ์ได้ใด ๆ ที่แสดงถึงอิฐและช่องว่าง ( 32) หมายถึงอิฐที่ขาดหาย คุณสามารถเลือกตัวละครใดก็ได้สำหรับอิฐมันไม่จำเป็นต้องโดดเด่นข้ามกำแพงตราบใดที่มันไม่ใช่ตัวอักษรเว้นวรรค อักขระอิฐที่หายไปจะต้องเป็นช่องว่าง ตัวอย่างด้านล่างฉันใช้*สำหรับอิฐ ตัวอย่าง การป้อนข้อมูล: [ 15, 7, 13, 11 ] [ 1111, 111, 1101, 1011 ] [ 1111, 0111, 1101, 1011 ] เอาท์พุท: **** *** ** * * ** …

30
ค้นหาตัวเลขที่ไม่ซ้ำกันสูงสุด
น่าแปลกที่เรายังไม่มีการท้าทาย "ค้นหาตัวเลขที่สูงที่สุด" ง่าย ๆ แต่ฉันคิดว่านั่นเป็นเรื่องเล็กน้อยเกินไป รับอินพุตของจำนวนเต็มแบบไม่ลบให้คืนค่าหลักที่ไม่ซ้ำกันสูงสุด(เช่นไม่ซ้ำ) ที่พบในจำนวนเต็ม หากไม่มีตัวเลขที่ไม่ซ้ำกันโปรแกรมของคุณสามารถทำอะไรก็ได้ (พฤติกรรมที่ไม่ได้กำหนด) อินพุตสามารถนำมาเป็นจำนวนเต็มเดียวสตริงหรือรายการตัวเลข กรณีทดสอบ 12 -> 2 0 -> 0 485902 -> 9 495902 -> 5 999999 -> Anything 999099 -> 0 1948710498 -> 7 นี่คือโค้ดกอล์ฟที่มีจำนวนน้อยที่สุดในแต่ละภาษาที่ชนะ!

30
ทำให้มันระเบิด!
ใช้เมทริกซ์ของจำนวนเต็มบวกเป็นอินพุตและทำให้มันระเบิด! วิธีที่คุณระเบิดเมทริกซ์คือการเพิ่มค่าศูนย์รอบ ๆ ทุกองค์ประกอบรวมถึงเส้นขอบภายนอก รูปแบบอินพุต / เอาต์พุตเป็นตัวเลือกเช่นเคย! กรณีทดสอบ: 1 ----- 0 0 0 0 1 0 0 0 0 -------------- 1 4 5 2 ----- 0 0 0 0 0 0 1 0 4 0 0 0 0 0 0 0 5 0 2 0 0 0 0 0 0 …
33 code-golf  matrix 

30
หมายเลขนี้เป็น repdigit หรือไม่
ท้าทาย repdigitเป็นจำนวนเต็มไม่ใช่เชิงลบที่มีตัวเลขเท่ากันทั้งหมด สร้างฟังก์ชั่นหรือโปรแกรมที่สมบูรณ์ที่ใช้จำนวนเต็มเดียวเป็นอินพุทและเอาท์พุทค่าความจริงถ้าหมายเลขอินพุทเป็น repdigit ในฐาน 10 และค่าเท็จ อินพุตรับประกันว่าจะเป็นจำนวนเต็มบวก คุณอาจใช้และใช้อินพุตเป็นตัวแทนสตริงในฐาน 10 ด้วยการยกเว้นโทษ กรณีทดสอบ เหล่านี้คือ repdigits ต่ำกว่า 1,000 ทั้งหมด 1 2 3 4 5 6 7 8 9 11 22 33 44 55 66 77 88 99 111 222 333 444 555 666 777 888 999 รายการที่มีขนาดใหญ่สามารถพบได้ใน OEIS การชนะ รหัสที่สั้นที่สุดในหน่วยไบต์ชนะ ไม่ได้หมายความว่าคำตอบที่ฉลาดในภาษา verbose …

13
สุขสันต์วันเกิด Raffaele Cecco!
Raffaele Ceccoเป็นโปรแกรมที่ผลิตบางส่วนของที่ดีที่สุดวิดีโอเกมสำหรับZX สเปกตรัมคอมพิวเตอร์ในช่วงปลายทศวรรษที่แปดสิบ ท่ามกลางคนอื่น ๆ เขาพัฒนาสะเทือนใจCybernoidและExolon Raffaele จะเปลี่ยน 50 เมื่อ 10 พฤษภาคม 2017 ความท้าทายนี้เป็นเครื่องบรรณาการเล็กน้อยสำหรับเขาในช่วงเวลาแห่งความสุขที่พวกเราหลายคนใช้เวลาเล่นเกมที่ยอดเยี่ยมเหล่านั้นและเพื่อเป็นแรงบันดาลใจที่พวกเขานำมา ความท้าทาย จุดประสงค์คือการผลิตกระโจมสี่เหลี่ยมที่ได้รับแรงบันดาลใจจากสิ่งที่เห็นในหน้าจอเมนูหลักของ Cybernoid แต่เป็นศิลปะ ASCII โดยเฉพาะอย่างยิ่งสตริง"Happy birthday Raffaele Cecco "(หมายเหตุช่องว่างสุดท้าย) จะแสดงการหมุนไปตามขอบของสี่เหลี่ยม 12 × 5 โดยมีเวลาหยุดชั่วคราวระหว่างสแน็ปช็อตอย่างต่อเนื่อง ตัวอย่างเช่นสมมติว่าข้อความแสดงตามเข็มนาฬิกาและหมุนทวนเข็มนาฬิกา (ดูตัวเลือกด้านล่าง) นี่คือภาพรวมสามภาพติดต่อกันของปะรำสี่เหลี่ยม: Happy birthd a o y c ceC eleaffaR แล้วก็ appy birthda H y o R cceC eleaffa แล้วก็ …

30
ลบอักขระที่ดัชนีที่ระบุ
(แรงบันดาลใจอย่างมากจากองค์ประกอบของสตริงที่ดัชนีที่ระบุ ) กำหนดสตริงsและจำนวนเต็มnแทนดัชนีในsเอาท์พุทที่sมีตัวละครที่nตำแหน่ง -th ลบออก 0-indexing และ 1-indexing ได้รับอนุญาต 0 การจัดทำดัชนี, จะไม่เป็นลบและน้อยกว่าความยาวของns สำหรับ 1 การจัดทำดัชนีจะเป็นบวกและน้อยกว่าหรือเท่ากับความยาวของns sจะประกอบด้วยอักขระ ASCII ที่พิมพ์ได้เท่านั้น ( \x20-\x7Eหรือ ผ่าน~) อนุญาตอินพุต / เอาท์พุตที่สมเหตุสมผล ช่องโหว่มาตรฐานใช้ ทดสอบ (ดัชนี 0): n s output 0 "abcde" "bcde" 1 "abcde" "acde" 2 "a != b" "a = b" 3 "+-*/" "+-*" 4 "1234.5" "12345" …
33 code-golf  string 

30
หมายเลขนี้เป็นสามเหลี่ยมหรือไม่
ท้าทาย รับค่าจำนวนเต็มบวกกำหนดว่าเป็นตัวเลขสามเหลี่ยมหรือไม่และส่งออกหนึ่งในสองค่าคงที่และค่าที่ต่างกัน คำนิยาม จำนวนสามเหลี่ยมเป็นจำนวนที่สามารถแสดงเป็นผลรวมของจำนวนเต็มบวกติดต่อกันเริ่มต้นที่ 1 พวกเขายังสามารถแสดงออกด้วยสูตรn(n + 1) / 2ที่nเป็นจำนวนเต็มบวกบาง กรณีทดสอบ Truthy: 1 3 6 10 15 21 55 276 1540 2701 5050 7626 18915 71253 173166 222111 303031 307720 500500 998991 Falsy: 2 4 5 7 8 9 11 16 32 50 290 555 4576 31988 187394 501500 999999 …

10
แผ่นป้ายทะเบียนที่สมบูรณ์แบบ
แผ่นป้ายทะเบียนที่สมบูรณ์แบบ เมื่อไม่กี่ปีที่ผ่านมาฉันทำให้ตัวเองเป็นเกมเล็ก ๆ ในขณะขับรถไปรอบ ๆ : ตรวจสอบว่าแผ่นป้ายทะเบียนใกล้เคียงนั้น“ สมบูรณ์แบบ” หรือไม่ มันค่อนข้างหายาก แต่น่าตื่นเต้นเมื่อคุณพบมัน วิธีตรวจสอบว่าแผ่นป้ายทะเบียนนั้นสมบูรณ์หรือไม่: สรุปอักขระด้วย A = 1, B = 2, ... Z = 26 ใช้ตัวเลขที่ต่อเนื่องกันและรวมเข้าด้วยกัน คูณผลรวมเหล่านี้เข้าด้วยกัน หากค่าในส่วนที่ 1 และส่วนที่ 2 เท่ากันขอแสดงความยินดีด้วย! คุณพบป้ายทะเบียนรถที่สมบูรณ์แบบแล้ว! ตัวอย่าง License plate: AB3C4F Digits -> 3 * 4 = 12 Chars -> A + B + C + …

30
บอกความละเอียดหน้าจอของฉันหน่อยสิ!
แสดงผลความละเอียดหน้าจอของอุปกรณ์ในรูปแบบเฉพาะของ[width]x[height](โดยไม่ต้องวงเล็บ) 1440x900ยกตัวอย่างเช่นการส่งออกอาจจะ นี่คือเครื่องมือทดสอบออนไลน์ที่คุณสามารถใช้เพื่อตรวจสอบความละเอียดหน้าจอของคุณเอง
33 code-golf 

20
ฉันเกินขีด จำกัด ความเร็วหรือไม่
ให้ถนนศิลปะและเวลาที่ฉันต้องข้ามมันบอกฉันว่าฉันกำลังเร่ง หน่วย dระยะทางที่อยู่ในหน่วยโดยพลการของ tเวลาที่อยู่ในหน่วยโดยพลการของ ถนน นี่คือถนนที่เรียบง่าย: 10===== 10หมายถึง 10 ต่อd tนั่นคือขีด จำกัด ความเร็วสำหรับถนน ถนนมี 5 =วิดังนั้นมันdคือ 5 ดังนั้นหากฉันข้ามถนนนั้นใน 0.5 tฉันไป 10 dต่อtเพราะ 5 / 0.5 = 10 ขีด จำกัด ความเร็วของถนนนั้นคือ 10 ดังนั้นฉันจึงอยู่ในขีด จำกัด ความเร็ว แต่ถ้าฉันข้ามถนนนั่นเป็น0.25 tฉันไป 20 dต่อtเพราะ 5 / 0.25 = 20 ขีด จำกัด ความเร็วของถนนนั้นคือ 10 ดังนั้นฉันจึงไป 10 เกินขีด …

7
วาดสามเหลี่ยมของรอยเตอร์สแวร์
วัตถุที่เป็นไปไม่ได้นี้คือสามเหลี่ยมของReutersvärd : วาดเวอร์ชั่นของคุณเองตามกฎเหล่านี้: ผลรวมทั้งหมด 9 ลูก แต่ละด้านประกอบด้วยสี่ลูกบาศก์อย่างแน่นอน คิวบ์ดูเหมือนจะทับซ้อนกันซึ่งในความเป็นจริงแล้ววัตถุที่แสดงผลเป็นวัตถุที่เป็นไปไม่ได้ มีการใช้สีที่แตกต่างกัน 4 สี - หนึ่งสำหรับพื้นหลังและ 3 สำหรับแต่ละด้านของคิวบ์ ในเอาต์พุตบิตแมปสามเหลี่ยมเต็มควรสูงอย่างน้อย 100 พิกเซลและกว้างอย่างน้อย 100 พิกเซล อัตราส่วนกว้างยาว: ความกว้างและความสูงของสามเหลี่ยมเต็มไม่ควรเกินกว่า 2 เท่า สามเหลี่ยมอาจหมุนตามจำนวนที่สัมพันธ์กับภาพด้านบน สามเหลี่ยมอาจสะท้อนหรืออาจไม่สัมพันธ์กับภาพด้านบน

24
แฟ็กทอเรียลและไม่สิ้นสุด!
ขณะที่คุณอาจจะรู้ว่าปัจจัยของจำนวนเต็มบวกเป็นผลิตภัณฑ์ของทุกจำนวนเต็มบวกซึ่งมีค่าเท่ากันหรือเล็กลงไปnn ตัวอย่างเช่น 6! = 6*5*4*3*2*1 = 720 0! = 1 ตอนนี้เราจะกำหนดการปฏิบัติการพิเศษด้วยชื่อที่ไม่เกี่ยวข้องเช่นsumFac: ป.ร. ให้ไว้เป็นจำนวนเต็มบวกn, sumFac(n)คือผลรวมของ factorials ของตัวเลขที่ ตัวอย่างเช่น sumFac(132) = 1! + 3! + 2! = 9 งาน ภารกิจของคุณไม่ว่าคุณจะเลือกที่จะยอมรับหรือไม่ก็คือการส่งคืนลำดับ (อาจไม่มีที่สิ้นสุด) ของแอปพลิเคชั่นของsumFacจำนวนเต็มที่ระบุในอินพุต ตัวอย่าง: 132 -> 132, 9, 362880, 81369, 403927, ... แต่นั่นไม่ใช่ทั้งหมด! แท้จริงแล้วการใช้งานของsumFacในที่สุดจะสร้างรอบ คุณต้องส่งคืนวงจรนี้ด้วย! หากภาษาของคุณมีแฟกทอเรียลคุณสามารถใช้มันได้ ฉันไม่จู้จี้จุกจิกเกี่ยวกับประเภทการคืนคุณเพียงแค่ส่งคืนลำดับของแอปพลิเคชัน sumFac และวัฏจักรในรูปแบบที่มนุษย์เข้าใจได้ แก้ไข: เพื่อช่วยให้คุณมองเห็นภาพได้ดีขึ้นว่าผลลัพธ์ควรมีลักษณะอย่างไรฉันคัดลอก Leaky Nun …

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