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

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

30
Meta Meta กอล์ฟชนิดต่าง ๆ
หมายเหตุ: ตามความต้องการที่เป็นที่นิยมฉันได้ผ่อนคลายกฎเล็กน้อย: ขนาด regex สูงสุดเติบโตโดย 1 ไบต์ทุก 5 คำตอบ คำตอบNอาจใช้ถึง29 + ⌈N / 5⌉ไบต์ คะแนนของแต่ละคำตอบจะเป็น(M / (30 + N / 5)) N ใน regex golf คุณจะได้รับสายสองชุดและถูกขอให้สร้าง regex ที่สั้นที่สุดซึ่งจับคู่กับสายทั้งหมดในชุดแรก แต่ล้มเหลวกับสายทั้งหมดในชุดที่สอง นั่นคือสิ่งที่เรากำลังจะทำ แต่ทุกครั้งที่มีคนตอบ regex ของพวกเขาเองจะถูกเพิ่มลงในหนึ่งในสองชุดของสตริง (ตามที่พวกเขาเลือกเอง) ดังนั้นจึงมีคำสั่งที่เข้มงวดในการตอบคำถามนี้ ลองดูตัวอย่าง: บอกว่าฉันเริ่มต้นด้วยabc(ซึ่งฉันจะไม่) และวางไว้ในชุดการแข่งขัน จากนั้นจะมีคำตอบที่สองที่ถูกต้องaเนื่องจากตรงกับข้างต้น (และไม่มีสตริงที่ต้องล้มเหลว) พูดคำตอบนี้ไปในชุดที่ล้มเหลว ตอนนี้คำตอบที่สามมีการแข่งขันแต่ล้มเหลวในabc ไปได้คำตอบที่สามจึงเป็นa bมาใส่ชุดการแข่งขันกันเถอะ คำตอบที่สี่ในขณะนี้มีการแข่งขันabcและแต่ล้มเหลวในb aเราจะไม่อนุญาตให้คำตอบที่ซ้ำกันดังนั้น regex c|bที่ถูกต้องจะเป็น สิ่งที่สำคัญคือคำตอบของคุณควรสั้นที่สุด นี่อาจเป็นเรื่องเล็กน้อยสำหรับคำตอบแรก …

30
สร้างคำที่ไม่คาดคิด [ปิด]
เป้าหมายคือการเขียนโปรแกรมที่สร้างคำขึ้นมาโดยไม่คาดคิด (โปรแกรมดูเหมือนจะสร้างคำขึ้นมา) ตัวอย่าง (JavaScript): alert(([0][1]+"").slice(4,8)) การแจ้งเตือน "ดี" - jsfiddle คำอธิบาย: 1. [0][1]ส่งกลับค่าที่ไม่ได้กำหนดเนื่องจากมีเพียงองค์ประกอบเดียวในอาเรย์[0] 2 การเพิ่มสตริงที่ว่างเปล่าแปลงundefinedเป็นสตริง "undefined" 3. slice(4,8)เอาท์พุทตัวที่ห้าถึงแปดอักขระของundefined นี่คือการประกวดความนิยมทุจริต

15
มันเป็นวันที่ฝนตก
บริบท มันเป็นวันวาเลนไทน์ เพียงคนเดียวที่คุณเคยรักซ้ายคุณเมื่อวานนี้สำหรับผู้ชายคนนี้เธอมักจะพบว่า"โง่และไม่น่าทึ่ง" ระหว่างทางกลับบ้านคุณติดอยู่กับการจราจรฟังเพลงเก่า ๆ ทางวิทยุฝนที่ตกกระทบกระจกหน้ารถก็กำลังสั่นไหวอยู่ หลังจากอยู่ครู่หนึ่งในรถของคุณคุณพบว่าตัวเองอยู่คนเดียวในอพาร์ทเมนต์ขนาดเล็กของคุณไม่สามารถคิดอะไรอื่นนอกจากเธอ ไม่มีแสงสว่างและคุณจ้องมองรางหน้าต่างเพื่อให้ความมืดล้อมรอบคุณ ไม่มีใครพูดคุยกับเพื่อนของคุณตอนนี้หายไปนานแล้วหลังจากเตือนคุณเกี่ยวกับผู้หญิงคนใหม่นี้หลอกหลอนจิตใจของคุณ คุณเปิดคอมพิวเตอร์ของคุณเพราะมันเป็นเพียงสิ่งเดียวที่คุณทำได้เปิดเบราว์เซอร์ของคุณและโพสต์ปริศนาการเขียนโปรแกรมใหม่ไปที่ stackexchange เพื่อพยายามเปลี่ยนใจ ท้าทาย เขียนโปรแกรมในภาษาที่คุณเลือกจำลองสายฝนที่ตกลงบนพื้น เอาต์พุตสามารถประกอบด้วยอักขระ ASCII หรือเรนเดอร์ 2D / 3D กล้องได้รับการแก้ไข: คุณกำลังมองตรงไปที่พื้น โปรแกรมของคุณจะต้องมีภาพเคลื่อนไหวบางประเภทเช่นการรีเฟรชคอนโซลหรือหน้าเว็บทุกครั้งที่คุณสร้าง "เฟรม" ใหม่ มันต้องเป็นจริงฉันรู้ว่ามันเป็นอัตวิสัยเล็กน้อย แต่สมมุติว่าคุณไม่สามารถเติมเต็มพื้นด้วยการหยดครั้งใหญ่เพียงครั้งเดียว ผลลัพธ์ไม่จำเป็นต้องเป็นภาพ แต่ถ้าคุณใช้ภาษาที่มีความลับจะเป็นการดีกว่าที่จะให้. gif เพื่อแสดงให้เห็นว่ามันทำงานอย่างไร (แต่แน่นอนว่ามันจะไม่ส่งผลกระทบต่อคะแนนของคุณหากคุณไม่ทำ) กฎระเบียบ คะแนนของคุณคือจำนวนไบต์ที่ใช้ทั้งหมด -20 คะแนนถ้าคุณใช้สี -50 ถ้าคุณประสบความสำเร็จในการแสดงลมบางอย่าง คะแนนต่ำสุดชนะ ตัวอย่าง ตัวอย่างพื้นฐานของสิ่งที่ควรแสดงผล: ฉันหวังว่าคุณจะทำได้ดีขึ้นและสนุกไปกับความท้าทายนี้ ขออภัยในภาษาอังกฤษของฉันอย่าลังเลที่จะแก้ไขโพสต์ของฉันหากคุณต้องการแก้ไขข้อผิดพลาด กระดานผู้นำ หากชื่อของคุณไม่อยู่ในรายการนั่นเป็นเพราะความพยายามของคุณได้รับการพิจารณาว่าไม่เหมาะสมกับกฎ Tobia - APL - 35 …
42 code-golf 

30
พิมพ์คลื่นไซน์ (แนวตั้ง)
พิมพ์คลื่นไซน์แบบต่อเนื่องที่เลื่อนไปตามแนวตั้งบนเทอร์มินัล โปรแกรมไม่ควรยุติและควรเลื่อนคลื่นอย่างต่อเนื่อง (ยกเว้นจนกว่าจะถูกรบกวน) คุณอาจสันนิษฐานว่าการล้นเกินนั้นไม่ใช่ปัญหา (เช่นคุณอาจใช้ลูปไม่สิ้นสุดกับตัวนับที่เพิ่มขึ้นหรือการเรียกซ้ำแบบไม่สิ้นสุด) คลื่นควรตอบสนองคุณสมบัติดังต่อไปนี้: Amplitude = 20 chars (ความกว้างสูงสุด) จุด = 60 ถึง 65 บรรทัด (รวม) ผลลัพธ์ควรประกอบด้วยช่องว่าง, บรรทัดใหม่และ | หลังจากแต่ละบรรทัดของเอาต์พุตหยุดชั่วคราวเป็น 50ms ตัวอย่างผลลัพธ์: | | | | | | | | | | | | | | | | | | | | | | | | | | …

30
ช่วยด้วย!! วิธีทำรากที่สอง! [ปิด]
หวัดดีสำหรับชั้นเรียนของฉันฉันต้องสร้างสแควร์รูท แต่มันใช้งานไม่ได้ HELLPP! ความท้าทาย: Write a function or program that will "make a number square root". หมายเหตุ: นี่คือการหมุนรหัส ให้คำตอบ "มีประโยชน์" เพื่อเป็นแนวทางให้โปรแกรมเมอร์คนใหม่ในแนวทางของเขา / เธอสู่การประสบความสำเร็จในการเขียนโปรแกรม! มีความคิดสร้างสรรค์!

30
ฉันจะเขียนฟังก์ชันเพิ่มได้อย่างไร [ปิด]
ปัญหา: ฉันเป็นผู้พัฒนานำสำหรับ บริษัท ขนาดใหญ่เรากำลังทำ Skynet ฉันได้รับมอบหมายให้ เขียนฟังก์ชั่นที่ป้อนเข้าและส่งคืนผลรวม กฎ: ไม่มีคำตอบเหมือน function sum(a,b){ return "their sum"; } แก้ไข: คำตอบที่ยอมรับจะเป็นคำตอบที่ได้รับการโหวตมากที่สุดในวันที่ 1 มกราคม 2014 หมายเหตุ: นี่เป็นคำถามการหมุนรหัส กรุณาอย่าใช้คำถามและ / หรือคำตอบอย่างจริงจัง ข้อมูลเพิ่มเติมที่นี่

30
รหัสที่สั้นที่สุดเพื่อตรวจสอบว่าสตริงเป็น Palindrome หรือไม่
palindromeคือสตริงบางอย่างที่จะสะกดทางเดียวกันทั้งต่องแต่ง ตัวอย่างเช่น 'Eva ฉันสามารถแทงค้างคาวในถ้ำได้หรือไม่' คือ palindrome (EVACANISTAB | BATSINACAVE) สำหรับรหัสกอล์ฟนี้โดยใช้ภาษาที่คุณเลือกกำหนดว่าสตริงที่กำหนดเป็น palindrome หรือไม่ กรณีขอบ: เครื่องหมายวรรคตอนจะไม่ถูกนับรวมกับความน่ากลัว อักขระควบคุมจะไม่ถูกนับรวมกับความน่ากลัว ช่องว่างจะไม่นับรวมกับความมืดมน ตัวเลขจะถูกนับรวมกับความน่ากลัว กรณีในการท้าทายนี้จะไม่นับรวมกับความน่ากลัว ไม่มีการจำกัดความยาวของสตริงที่จะประเมินยกเว้นภาษาที่คุณเลือก สำหรับความท้าทายนี้ จำกัด ตัวคุณเองไว้ที่ชุดอักขระ ASCII ข้อกำหนดทางเทคนิค: ร่างกายวิธีการเท่านั้นที่จำเป็น; สิ่งเพิ่มเติมเช่นลายเซ็นวิธีการประกาศโครงสร้างข้อมูล ฯลฯ ไม่นับรวมในข้อกำหนดของชัยชนะ รหัสจะต้องรวบรวมหรือตีความโดยไม่มีข้อผิดพลาดในเวลารวบรวมหรือข้อยกเว้น รหัสต้องไม่ส่งข้อยกเว้นหรือข้อผิดพลาดที่ไม่สามารถจัดการได้ (เกือบไม่มีความจำเป็นต้องพูดเกือบ) รหัสจะต้องส่งกลับค่าบางอย่างที่บ่งบอกถึงความน่ากลัว ประเภทข้อมูลขึ้นอยู่กับภาษาที่คุณใช้ (เช่นผู้ใช้ C # อาจใช้ a boolในขณะที่ผู้ใช้ JavaScript สามารถใช้ a var.) คุณไม่สามารถเขียนล่ามของคุณเองที่ทำงานนี้เป็นความสามารถแบบ 'เนทีฟ' เพื่อให้คุณ 'กอล์ฟ' ได้คะแนนที่ใกล้เคียง (หวังว่าไม่จำเป็นต้องพูด) เงื่อนไขชัยชนะ: …

6
ASCII Maze Rendering 3000
ฉันไม่ชอบการพิมพ์ดังนั้นฉันวาดเขาวงกตในรูปแบบที่ง่ายมาก: # ##### # # # ### # # # # # # # # ##### # มันไม่ได้เป็น A- เขาวงกตไอเอ็นจี? แน่นอนผมคิดว่าเขาวงกตที่ทุกคนควรมีลักษณะ 3 มิติเหมือนกัน แต่เขาไม่ได้เช่นเดียวกับความท้าทายนี้สำหรับสูงสุด a- เขาวงกต -ingness ดังนั้นฉัน (ไม่เต็มใจ) ปรับปรุงด้วยตนเองเขาวงกตจะมีลักษณะเช่นนี้ +-----+ +-----------------------------+ |\ \ |\ \ + \ \ + \ \ \ \ \ \ +-----------------------+ \ \ \ …

5
บล็อกฝูงอาคาร Bot!
การประกวดสิ้นสุดแล้ว! Intro นี่คือการโต้ตอบแบบกษัตริย์ของเขาประกวดซึ่งคอนโทรลเลอร์มีอยู่ใน Stack Snippet ที่ด้านล่างของคำถาม ตัวควบคุมจะอ่านคำตอบและเล่นผ่านเกมโดยอัตโนมัติ ทุกคนสามารถเรียกใช้ได้ทุกเมื่อในเบราว์เซอร์ กลศาสตร์ของการประกวดครั้งนี้มีความคล้ายคลึงกับสีแดงกับสีน้ำเงิน - Pixel ทีม BattleBots ยกเว้นเกมที่กำลังเล่นอยู่ในขณะที่ยังใช้กริดอยู่จะแตกต่างกันโดยสิ้นเชิง แต่ละเกมคือ 1 ต่อ 1 และไม่มีทีม แต่ละรายการจะต่อสู้เพื่อตัวเองและมีเพียงหนึ่งเดียวเท่านั้นที่จะเป็นผู้ชนะรอบชิงชนะเลิศ คอนโทรลเลอร์ใช้ JavaScript และ JavaScript เป็นภาษาสคริปต์ฝั่งไคลเอ็นต์เท่านั้นที่สนับสนุนเบราว์เซอร์ส่วนใหญ่คำตอบทั้งหมดจะต้องเขียนด้วย JavaScript เช่นกัน ในข้อมูลจำเพาะนี้ข้อความที่เป็นตัวเอียงใช้เพื่อระบุคำที่เป็นทางการสำหรับช่างเกมหรือทรัพย์สิน ข้อกำหนดเหล่านี้มีการใช้ตลอดเพื่อช่วยรักษาวิธีการอ้างอิงถึงส่วนต่าง ๆ ของเกมไว้อย่างเหนียวแน่นและชัดเจน เพลย์ ข้อมูลพื้นฐานเกี่ยวกับ คำตอบสำหรับคำถามนี้ทุกคนเป็นตัวแทนของผู้เล่น เกมการแข่งขันระหว่างผู้เล่นสองP1และP2 แต่ละควบคุมผู้เล่นฝูง 8 บอทหมายเลขตั้งแต่ 0 ถึง 7 เกมจะเกิดขึ้นในตาราง , 128 × 64 เซลล์ที่เกิดเหตุซึ่งอยู่ด้านล่าง 8 แถวเริ่มจากการเป็นผนัง (ที่บล็อก …

9
เขียนโปรแกรมที่สั้นที่สุดที่สร้างคำเตือนและข้อผิดพลาดคอมไพเลอร์มากที่สุด
ความท้าทาย: เขียนโปรแกรมสั้น ๆ ที่เมื่อรวบรวมแล้วจะสร้างคำเตือนและข้อผิดพลาดจำนวนมากที่สุด มันสามารถเขียนในภาษาการเขียนโปรแกรมใด ๆ เกณฑ์การให้คะแนน: คะแนนถูกกำหนดโดยสมการนี้: errors_and_warnings_length/code_length. คะแนนสูงสุดชนะ ตัวอย่าง: โปรแกรม C # classยาว 5 ตัวอักษรและสร้างคำเตือน 3 คำซึ่งเป็นคะแนน (1/5) * 3 = 0.6 แก้ไข: เนื่องจากความสับสนบางอย่างโปรแกรมจะต้องมีความยาวอย่างน้อย 1 ถ่าน มิฉะนั้นจะได้รับคะแนนอนันต์

30
ป้ายทะเบียนรถฝรั่งเศส
Sandbox ป้ายทะเบียนรถฝรั่งเศส ป้ายทะเบียนรถแบบฝรั่งเศสเรียงตามลำดับตามรูปแบบตัวเลขและตัวอักษรโดยเฉพาะ:AB-012-CD ท้าทาย เขียนโปรแกรมหรือฟังก์ชั่นที่ส่งออกหมายเลขทะเบียนรถของฝรั่งเศสตามจำนวนที่กำหนด โปรแกรมของคุณไม่ควรจัดการกับกรณีพิเศษใด ๆ ตามที่ระบุไว้ในหน้าเชื่อมโยง มันควรจะสามารถสร้าง26*26*1000*26*26 => 456 976 000แผ่นเต็มไปได้หรือเท่าที่ภาษาของคุณสามารถรองรับ ระบบเลขจะเป็นดังนี้: AA-000-AA ถึง AA-999-AA (ตัวเลขวิวัฒนาการก่อน); AA-000-AB ถึง AA-999-AZ (ตามด้วยตัวอักษรตัวสุดท้ายทางขวา); AA-000-BA ถึง AA-999-ZZ (ตามด้วยตัวอักษรตัวแรกทางขวา); AB-000-AA ถึง AZ-999-ZZ (ตามด้วยตัวอักษรตัวสุดท้ายทางซ้าย); BA-000-AA ถึง ZZ-999-ZZ (ตามด้วยตัวอักษรตัวแรกทางซ้าย) อินพุต ดัชนีของหมายเลขแผ่นเป็นจำนวนเต็ม เอาท์พุต หมายเลขทะเบียนรถที่สอดคล้องกันของฝรั่งเศส ข้อมูลเพิ่มเติม ตัวอักษรต้องเป็นตัวพิมพ์ใหญ่ คุณสามารถใช้การจัดทำดัชนีทั้งแบบ 0 และ 1 เพื่อสร้างเพลต (หมายถึง AA-000-AA สามารถสอดคล้อง0หรือ1สมมติว่ากรณีทดสอบอื่น ๆ ทั้งหมดใช้ดัชนีเดียวกัน …

17
หมายเลขแรกที่มีตัวอักษรแต่ละตัว
ให้ตัวอักษรเดียวจาก A ถึง Z (ยกเว้น J และ K) เป็นอินพุตเอาต์พุตจำนวนเต็มที่ไม่เป็นลบที่เล็กที่สุดที่มีตัวอักษรนั้นในรูปแบบที่เขียน สมมติว่าตัวเลขไม่เคยมีคำว่า "และ" ดังนั้น101ก็คือ "หนึ่งร้อยหนึ่ง" ไม่ใช่ "หนึ่งร้อยและหนึ่ง" สมมติอเมริกัน (สั้นขนาด) นับดังนั้นหนึ่งล้านบาทและเป็นหนึ่งในพันล้าน10^610^9 a 1000 one thousand b 1000000000 one billion c 1000000000000000000000000000 one octillion d 100 one hundred e 0 zero f 4 four g 8 eight h 3 three i 5 five j …

29
คำที่ N ลำดับของ Van Eck
เอาต์พุตคำที่ N ของลำดับ Van Eck ลำดับ Van Eck ถูกกำหนดเป็น: เริ่มต้นด้วย 0 หากคำสุดท้ายคือการเกิดขึ้นครั้งแรกของคำนั้นคำถัดไปคือ 0 หากคำศัพท์สุดท้ายเกิดขึ้นก่อนหน้านี้คำศัพท์ถัดไปคือจำนวนขั้นตอนหลังเป็นเหตุการณ์ล่าสุด https://oeis.org/A181391 https://www.youtube.com/watch?v=etMJxB-igrc https://www.youtube.com/watch?v=8VrnqRU7BVU ลำดับ: 0,0,1,0,2,0,2,2,1,6,0,,,5,0,2, ... แบบทดสอบ: อินพุต | เอาท์พุต 1 | 0 8 | 2 19 | 5 27 | 9 52 | 42 64 | 0 แก้ไข ต้องการดัชนี 1 ดัชนี 0 ยอมรับได้; ที่อาจเปลี่ยนโซลูชันที่ส่งไปแล้วบางส่วน ขอแค่เทอมที่ …

28
ตัวอักษรวิ่งสัญญาณ
ในแต่ละวันคุณใส่คำใหม่ลงในตัวอักษรวิ่งด้วยตัวอักษรที่สามารถเคลื่อนย้ายได้ซื้อตัวอักษรที่คุณต้องเขียน คุณจะใช้ตัวอักษรที่คุณซื้อสำหรับคำก่อนหน้านี้ทุกครั้งที่ทำได้ ให้คำที่คุณต้องการเขียนในแต่ละวันตามลำดับเอาท์พุทตัวอักษรที่คุณซื้อในแต่ละวัน ตัวอย่าง Input: ['ONE', 'TWO', 'THREE', 'SEVENTEEN'] Output: ['ENO', 'TW', 'EHR', 'EENSV'] วันที่ 1:คุณเริ่มต้นด้วยตัวอักษรไม่ดังนั้นการเขียนONEคุณซื้อทุกตัวอักษรของมันE, ,N วันที่ 2:ในวันถัดไปคุณต้องการที่จะนำขึ้น (ลง) คุณมีจากเพื่อที่คุณจะซื้อเพิ่มอีก วันที่ 3:ณ จุดนี้คุณมี การเขียน คุณต้อง โปรดทราบว่าคุณต้องซื้อที่สองนอกเหนือจากที่คุณมี วันที่ 4:ในการเขียนคุณต้องมีทั้งหมด4 ข้อซึ่งคุณมีอยู่สองตัว (ไม่ใช่สาม!) ดังนั้นคุณจึงซื้ออีกสอง คุณมีและหนึ่งในนั้นดังนั้นคุณซื้อตัวอักษรที่เหลือ: O TWOONEOONETW ENOWTTHREEEHRE SEVENTEENETNEENSVเพื่อให้คุณซื้อตัวอักษรที่เหลือ: เราได้เรียงลำดับตัวอักษรตามตัวอักษรในตัวอย่างนี้ แต่คุณสามารถส่งออกเรียงตามลำดับใดก็ได้ : การป้อนข้อมูลA-Zรายการที่ไม่ว่างเปล่าของสตริงที่ไม่ว่างเปล่าของตัวอักษร คุณสามารถใช้ตัวพิมพ์เล็กได้หากต้องการ รายการของตัวละครดีสำหรับสตริง เอาท์พุท:เอาท์พุทหรือพิมพ์ตัวอักษรเพิ่มเติมที่คุณจำเป็นต้องซื้อในแต่ละวัน ตัวอักษรสำหรับวันอาจถูกส่งออกในลำดับใด ๆ แต่วันจะต้องมาในลำดับที่ถูกต้อง ควรแยกตัวอักษรจากแต่ละวันออกจากวันอื่น ๆ เพื่อให้คุณสามารถบอกได้ว่าวันใดจะสิ้นสุด …
41 code-golf  string 

12
อ่านการประกาศตัวแปร C
พื้นหลัง คำสั่งประกาศตัวแปรใน C ประกอบด้วยสามส่วนคือชื่อของตัวแปรมันพิมพ์ฐานและปรับปรุงประเภท (s) การดัดแปลงประเภทมีสามประเภท: ตัวชี้*(คำนำหน้า) Array [N](postfix) ฟังก์ชั่น()(postfix) คุณสามารถระบุรายการอาร์กิวเมนต์ของฟังก์ชันภายใน parens แต่เพื่อความท้าทายนี้เราจะเพิกเฉยและลองใช้()(ซึ่งในทางเทคนิคหมายถึง "ฟังก์ชันสามารถใช้อาร์กิวเมนต์ชนิดใดก็ได้") และวิธีในการอ่านเครื่องหมายเป็นดังนี้: int i; // i is an int float *f; // f is a pointer to a float my_struct_t s[10]; // s is an array of 10 my_struct_t int func(); // func is a function returning …
41 code-golf  parsing  c  syntax 

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