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

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

6
สร้าง Simon Clone! [ปิด]
ปิด คำถามนี้ต้องการรายละเอียดหรือความคมชัด ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ เพิ่มรายละเอียดและชี้แจงปัญหาโดยแก้ไขโพสต์นี้ ปิดเมื่อปีที่แล้ว สถานการณ์สมมติ:ในขณะที่การเขียนโปรแกรมคุณมีความคิดถึงอย่างฉับพลันสำหรับเกม '80s และ cheesy ข้อกำหนด:สร้างโปรแกรม GUI (ข้อความอาจไม่ทำงาน) สำหรับ Simon เกม อินพุตสามารถคลิกหรือกดปุ่ม คุณควรแบ่งหน้าจอออกเป็น 4 ภูมิภาค: สีเหลืองสีน้ำเงินสีแดงสีเขียว เมื่อเกมเริ่มขึ้นสีแบบสุ่มจะสว่างขึ้นและคุณเปิดใช้งาน จากนั้นไฟสองดวงจะสว่างขึ้นเรื่อย ๆ และคุณต้องเปิดใช้งานตามลำดับและอื่น ๆ เกมจะจบลงเมื่อคุณกดผิดสี โบนัส: -100 ถ้าคุณใส่เสียง (โน้ตตัวอื่นเล่นเมื่อกดแต่ละภูมิภาคและเมื่อเกมแสดงสีให้คุณ) -25 ถ้าคุณใส่เคาน์เตอร์คะแนน
18 code-golf  game 

15
วิธีง่ายๆในการเล่นรหัส ASCII ของศิลปะ!
งาน: มีจำนวนมากของคำตอบเกี่ยวกับเว็บไซต์ที่มีการจัดเป็นศิลปะ ASCII เช่นเป็นคนนี้ โดยปกติแล้วการจัดเรียงจะดำเนินการด้วยตนเอง แต่โปรแกรมจะไม่ช่วยหรือไม่ :) โปรแกรมของคุณจะมี 3 อินพุต: รหัสเป็นหนึ่งบรรทัดเดียว จำนวนบรรทัดในรูปแบบ (สามารถละเว้นได้หากไม่จำเป็น) รูปแบบตัวเองเป็น*s หรือตัวละครอื่น กฎ: คุณต้องเขียนโปรแกรม (ไม่ใช่ฟังก์ชั่น) ที่อ่านจาก stdin ข้อความถูกวางไว้จากซ้ายไปขวาต่อบรรทัด หากมีข้อความไม่เพียงพอที่จะเติมลวดลายให้ใส่.s ในช่องว่างที่เหลือ หากมีข้อความมากเกินกว่าที่จะเติมลวดลายได้ให้พิมพ์ออกมาหลังเอาต์พุต code-golfดังนั้นโค้ดที่สั้นที่สุดในหน่วยไบต์จะเป็นผู้ชนะ วิ่งตัวอย่าง: อินพุต (การทดสอบพอดีพอดี) : qwertyuiopasdfghjklzxcvbnm 4 ***** * *** * * * * * * * * ***** * *** ผลผลิต : qwert y uio …

11
Crash IRB (Ruby แบบโต้ตอบ)
Ruby มาพร้อมกับ REPL ในตัวซึ่งค่อนข้างมีประโยชน์ ความท้าทายของคุณคือการชนมันในจำนวนน้อยที่สุดของรหัส! คำจำกัดความของ "crash" คือ "ทำให้มันออกในแบบที่ไม่ได้ตั้งใจ " ซึ่งหมายความว่าexit, quit, abort, irb_exit, irb_quit, et อัล ไม่ใช่คำตอบที่ถูกต้อง นอกจากนี้คุณต้องไม่ก่อให้เกิดผลข้างเคียงใด ๆ กับส่วนอื่น ๆ ของระบบ ตัวอย่างเช่น`rm -rf /`ไม่ถูกต้องเช่นกัน เวอร์ชัน 1.9.3 หรือสูงกว่าใด ๆ ที่ถูกต้อง หากรหัสของคุณใช้งานได้กับทับทิมเฉพาะรุ่นเท่านั้นคุณสามารถระบุได้ในคำตอบ ข้อ จำกัด ขั้นสุดท้ายคือคุณไม่สามารถพึ่งพาอัญมณีใด ๆ นี่คือรหัสกอล์ฟดังนั้นรหัสที่สั้นที่สุดที่เกิดปัญหา IRB จะชนะ!
18 code-golf  ruby 

1
สร้างตัวประมวลผลล่วงหน้า C
เป้าหมายคือการสร้างตัวประมวลผลล่วงหน้าสำหรับภาษา C ซึ่งมีขนาดเล็กที่สุดเท่าที่เป็นไปได้ในแง่ของขนาดซอร์สโค้ดเป็นไบต์ในภาษาที่คุณต้องการ อินพุตจะเป็นไฟล์ต้นฉบับ C และเอาต์พุตจะเป็นซอร์สโค้ดที่ถูกประมวลผลล่วงหน้า รายการที่จะต้องสามารถดำเนินการได้คือ: การลบความคิดเห็น (บรรทัด / บล็อก), #include คำสั่ง (โดยการเปิดไฟล์ที่เส้นทางสัมพัทธ์และแทนที่ข้อความ ณ จุดที่ต้องการ), #define, #undef, #if, #elif, #else, #endif, #ifdef, #ifndef และกำหนด () คำสั่งตัวประมวลผลล่วงหน้า C อื่น ๆ เช่น #pragmas หรือ #errors อาจถูกละเว้น ไม่จำเป็นต้องคำนวณนิพจน์ทางคณิตศาสตร์หรือตัวดำเนินการเปรียบเทียบในคำสั่ง #if เราถือว่านิพจน์จะประเมินเป็นจริงตราบใดที่มันมีจำนวนเต็มอื่นที่ไม่ใช่ศูนย์ (การใช้งานหลักจะเป็นไปตามคำสั่งที่กำหนดไว้) ตัวอย่างของการป้อนข้อมูลและเอาต์พุตที่เป็นไปได้ (ช่องว่างพิเศษที่เป็นไปได้ในไฟล์เอาต์พุตถูกตัดแต่งเพื่อให้มีลักษณะที่ดีขึ้นโดยไม่จำเป็นต้องใช้โค้ดในการทำเช่นนั้น) โปรแกรมที่สามารถประมวลผลตัวอย่างต่อไปนี้อย่างเหมาะสมจะได้รับการพิจารณาว่าเพียงพอ ----Input file: foo.c (main file being preprocessed) #include …
18 code-golf  string  c 

1
รหัส QR ... และแจ๊สทั้งหมดนั้น!
นี่จะเป็นความท้าทายที่ท้าทายสำหรับนักกอล์ฟ อินพุต: URL ใด ๆ จะต้องมีโปรโตคอลที่แนบมาเช่นhttp://codegolf.stackexchange.com (ซึ่งจะเป็นกรณีทดสอบของเรา) ผลลัพธ์:รหัส QR ที่สร้างขึ้นซึ่งแสดงถึง URL นี้ซึ่งเมื่อสแกนโดยอุปกรณ์สมาร์ทจะนำคุณไปยัง URL นั้นบนเบราว์เซอร์ของอุปกรณ์สมาร์ทโฟน กฎสำหรับ Code-Golf นี้ ตามปกติรหัสที่เล็กที่สุดจะเป็นผู้ชนะ ไม่มีแหล่งข้อมูลภายนอกเว็บไลบรารีหรือปลั๊กอินเพื่อสร้างรหัสให้คุณ รหัสของคุณจะต้องคำนวณภาพรหัส QR สามารถนำเสนอผลลัพธ์โดยรูปภาพสร้างโดย HTML5 / CSS3 หรือแม้กระทั่งการใช้บล็อก Unicode ที่เหมาะสมหรือถ้า ASCII ของแพลตฟอร์มของคุณมีพร้อมใช้งานผ่านอักขระ ASCII ที่สามารถสร้างรหัส QR (อันสุดท้ายนี้ถูกกำกับที่ Commodore 64 Basic, Amiga QBasic, Amstrad Basic, ฯลฯ ผู้ใช้) แต่มันจะต้องสร้างเอาท์พุทรหัส QR เพื่อที่ฉันจะสามารถสแกนรหัสได้ รายการของโค้ดจะต้องตามด้วยเอาต์พุตที่สร้างขึ้นโดยภาพหน้าจอของเอาต์พุตหลังจากรันโค้ดของคุณหรือมีลิงก์แสดงเอาต์พุต (แล้วแต่ว่าสถานการณ์จะเหมาะสมที่สุด) คุณต้องทดสอบรหัสของคุณด้วย URL …

8
สร้างเครื่องคิดเลขตัวเลข
สร้างเครื่องคิดเลขพื้นฐานสำหรับเลขโรมัน ความต้องการ รองรับ+, -, *,/ อินพุทและเอาท์พุทควรคาดหวังว่าจะมีเพียงหนึ่งคำนำหน้าตัวลบต่อสัญลักษณ์ (เช่น 3 ไม่สามารถเป็นIIVเพราะมีสองIก่อนหน้านี้V) การจัดการของหลักการการลบในการป้อนข้อมูลและต้องส่งออกที่สนับสนุนขั้นต่ำการประชุมมาตรฐานทันสมัยซึ่งมีเพียงอำนาจของสิบจะถูกหักออกจากตัวเลขขนาดใหญ่ (เช่นI, X, Csubtractors จะต้อง แต่ไม่V, L, D) และการลบก็ไม่เคยทำได้จากจำนวนมากกว่า ลบ 10x (เช่นIXต้องได้รับการสนับสนุน แต่ICไม่จำเป็น) อินพุตและเอาต์พุตควรจากซ้ายไปขวาตามลำดับของค่าเริ่มต้นด้วยค่าที่ใหญ่ที่สุด (เช่น 19 = XIXไม่IXX, 10 มีค่ามากกว่า 9) จากซ้ายไปขวาไม่มีความสำคัญของโอเปอเรเตอร์ราวกับว่าคุณกำลังใช้เครื่องคิดเลขมือ รองรับทั้งตัวเลขบวกเข้า / ออกระหว่าง 1-4999 (ไม่จำเป็นต้องV̅) ไม่มีห้องสมุดที่แปลงเลขโรมันให้คุณ เพื่อให้คุณตัดสินใจ กรณีที่ไว ช่องว่างหรือไม่มีช่องว่างในอินพุต จะเกิดอะไรขึ้นถ้าคุณได้รับผลลัพธ์ทศนิยม ตัดทอนไม่มีคำตอบข้อผิดพลาด ฯลฯ สิ่งที่ต้องทำสำหรับเอาต์พุตที่คุณไม่สามารถจัดการได้ จำนวนลบหรือจำนวนถึงมากที่จะพิมพ์ สนับสนุนการใช้หลักการลบอย่างเสรีมากกว่าข้อกำหนดขั้นต่ำหรือไม่ สินเชื่อพิเศษ -50 - จัดการได้ถึง …

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

9
เขียนนักแปล brainfuck
ในการเขียนโปรแกรมหรือภาษาสคริปต์xใด ๆให้เขียนโปรแกรมที่ใช้แหล่งข้อมูล brainfuck ที่ถูกต้องจาก stdin และเอาต์พุตไปยัง stdout ซอร์สโค้ดของโปรแกรมที่เขียนด้วยภาษาxซึ่งจะให้ผลลัพธ์เหมือนกับโปรแกรม brainfuck ที่แน่นอน โปรแกรมของคุณต้องทำงานกับโปรแกรม brainfuck ที่ถูกต้องรวมถึงไฟล์เปล่า คะแนนของคุณจะเท่ากับจำนวนไบต์ของซอร์สโค้ดของคุณบวกกับจำนวนไบต์ของเอาต์พุตของคุณตามอินพุตต่อไปนี้: +++++ [-] +++++ +++++ [ > +++++ ++ > ++ +++ ++++ + > +++ <<< - ] > ++ . H > + . e ++ +++ ++. l . l +++ . o > …

1
ตีกอล์ฟให้คุณเป็นดับเบิ้ลควินที่ดีกว่า
ราตรีสวัสดิ์ท่านสุภาพบุรุษและสุภาพสตรี คืนนี้ - เรามีรหัสท้าทาย การแข่งขันที่จะถูกกำหนดไม่ได้อยู่ในจำนวนคะแนน (a la Asteroids) แต่เพียงว่าคุณจะสามารถทำมันให้เสร็จ (a la Zelda) ได้หรือไม่ และเพื่อการเปรียบเทียบจำนวนไบต์ (เอ่อ ... แต่คุณบอกว่า ... ) ความท้าทายของคุณคือการเขียน quine เดียวที่รวบรวมทั้งในWhiteSpaceและภาษาอื่น ๆ ที่คุณเลือก ทั้งคู่ต้องมีเอาท์พุทที่เหมือนกันอย่างแน่นอน (ซึ่งเป็นควินก็เหมือนกันกับซอร์สโค้ด) ควินของคุณจะต้องมีความยาวมากกว่า 3 ไบต์ คะแนนของคุณคือขนาดของซอร์สโค้ดของคุณเป็นไบต์ เนื่องจากความท้าทายนี้เกี่ยวข้องกับ WhiteSpace โปรดหลีกเลี่ยงคำตอบของคุณเพื่อให้ชัดเจน - ควรอยู่ในรูปแบบ C คะแนนของคุณเป็นแหล่งต้นฉบับเป็นไบต์ไม่ใช่เวอร์ชันที่ใช้ Escape โชคดี.

30
เครื่องคิดเลขที่เพิ่มค่าถ่าน
งาน สร้างเครื่องคิดเลขที่ใช้สตริงจากไฟล์ stdin หรืออะไรก็ตามและเพิ่มค่าทั้งหมดของตัวอักษร ตัวอย่าง Input Hello World! Output 1085 กฎระเบียบ เครื่องคิดเลขต้องยอมรับการเข้ารหัส ASCII เพียงอย่างเดียว รหัสที่สั้นที่สุดชนะ หมายเหตุ เกี่ยวกับความคิดเห็นของ m.buettner ฉันต้องพูดว่าฉันไม่ได้คิดถึงส่วนของมัลติไบต์ ดังนั้นฉันจึงทิ้งมันไว้เป็นสิ่งโบนัสเช่นกัน เครื่องคิดเลขควรทำงานตามที่เขียนไว้ดังนั้นไม่จำเป็นต้องแก้ไขก่อนที่จะรวบรวมหรือตีความ โบนัส ขอบคุณSyntheticaนี่คือโบนัสอีกหนึ่งอย่าง โปรแกรมที่มีเอาต์พุตต่ำสุดเมื่อคุณใช้รหัสในขณะที่อินพุทชนะจะได้รับดาว ฉันไม่ต้องการแก้ไขโดยสมบูรณ์ หากคุณเขียนเพิ่มเติมเพื่อส่งออกค่า (ขวา) ใน UTF-8 คุณจะได้ดาว รหัสที่ทำงานได้เร็วที่สุดบนแล็ปท็อปของฉัน (Lenovo Yoga 13 Intel Core i5 3317U 1.7Ghz, 8GB RAM, 128GB SSD, Intel HD 4000, Windows 8) ได้รับดาว รหัสเว็บจะทำงานครั้งแรกภายใต้ …
18 code-golf 

30
ส่งคืนหมายเลขเวอร์ชันที่พลิกกลับ
เมื่อตัวเลขปรากฏบนเครื่องคิดเลขเป็นไปได้ที่จะพิจารณาการเปลี่ยนรูปของตัวเลขนั้น ๆ ตัวอย่างเช่นบนจอแสดงผลเจ็ดส่วน 2 จะแสดงดังนี้: และเมื่อพลิกในแนวนอนดูเหมือนว่า: ดังนั้นภาพสะท้อนในกระจกของ 2 คือ 5 ภารกิจในการท้าทายนี้คือการใช้ตัวเลขหนึ่งหลักและส่งกลับตัวเลขที่เป็นภาพสะท้อน (ถ้าเป็นไปได้) หากภาพสะท้อนของกระจกนั้นไม่เหมือนตัวเลขให้ส่งคืนตัวเลขที่หมุนไป 180 องศา (ถ้าเป็นไปได้) หากไม่ใช่กรณีเหล่านี้ให้ส่งคืน -1 นี่คือรายการอินพุตและเอาต์พุตแบบเต็มรูปแบบที่โปรแกรมของคุณต้องการจัดการ: Input Output 0 0 1 -1 2 5 3 -1 4 -1 5 2 6 9 7 -1 8 8 9 6 ในฐานะที่เป็นความท้าทายรหัส - กอล์ฟรหัสที่สั้นที่สุดชนะ!
18 code-golf  number 

3
Manufactoria: สร้างโปรแกรมการยอมรับที่ช้าที่สุดที่เป็นไปได้
เขียนโปรแกรมManufactoriaที่จะยอมรับเทปอินพุตเปล่า แต่อย่าทำอย่างรวดเร็ว! ฉันหมายถึงเขียนโปรแกรมอย่างรวดเร็ว แต่อย่าให้มันทำงานเร็ว ยิ่งโปรแกรมช้าลงเท่าใดก็ยิ่งดีตราบเท่าที่มันสิ้นสุดลงในที่สุด โปรแกรมตัวอย่างด้านล่างใช้เวลา 3:51 ("เวลารวม" ที่รายงานโดยเครื่องมือจำลอง) http://pleasingfungus.com/Manufactoria/?lvl=36&code=g12:5f3;r9:8f1;p12:9f3;c13:9f0;r11:9f0;r10:9f0;r9:9f1;b11:8f0;b10:8f1 ; R9: 7f2; C10: 7f2; c11: 7f2; c12: 7f3; Q12: 8f3; y13: 8f2; y14: 8f2; Y15: 8f1; Y15: 7f0; y14: 7f0; y13: 7f0; G12: 6f3; & CTM = Slow_Accepter!; Generate_the_slowest_possible_accepting_machine;:; 7; 3; 0 ; โปรแกรมของคุณเริ่มต้นด้วยเทปเปล่า มันจะต้องขีดเส้นขยุกขยิกประมาณเล็กน้อย คุณอาจทิ้งข้อมูลไว้ในเทปได้หากต้องการ โปรแกรมที่ช้าที่สุดในบอร์ด 7x7 Manufactoria …

12
ฉันรู้จักคุณ แต่คุณไม่รู้จักฉัน
คุณได้รับมอบหมายให้เขียนโปรแกรมสองโปรแกรม โปรแกรมต้องพิมพ์อะไรในปัจจัยการผลิตทั้งหมดยกเว้นเมื่อโปรแกรมBคือการป้อนข้อมูลในกรณีที่มันควรพิมพ์ โปรแกรมBต้องพิมพ์บนอินพุตทั้งหมดยกเว้นเมื่อโปรแกรมAเป็นอินพุตซึ่งในกรณีนี้ไม่ควรพิมพ์อะไรเลย11 เกณฑ์การให้คะแนน: +1 สำหรับแต่ละตัวละครจากทั้งสองโปรแกรม คะแนนต่ำสุดชนะ
18 code-golf  quine 

8
ประหยัดเงินด้วยการปัดเศษราคา
ในแคนาดาเงินจะไม่หมุนเวียนอีกต่อไป การจ่ายเงินสดจะถูกปัดเศษเป็น 5 เซนต์ที่ใกล้ที่สุด เงินสามารถบันทึกได้โดยแยกการซื้อ ตัวอย่างเช่นรายการ $ 1.02 สองรายการมีค่าใช้จ่าย $ 2.04 ซึ่งมีมูลค่าสูงถึง $ 2.05 แต่เมื่อซื้อสินค้าในการซื้อแยกต่างหากแต่ละราคาจะอยู่ที่ $ 1.00 รวมเป็น $ 2.00 อย่างไรก็ตามเมื่อซื้อสองรายการในราคา $ 1.03 ต่อชิ้นจะเป็นการดีกว่าที่จะซื้อในการซื้อครั้งเดียว อีกวิธีหนึ่งในการประหยัดเงินคือการใช้บัตรเครดิตเมื่อการปัดเศษไม่เอื้ออำนวยเนื่องจากการชำระเงินเครดิตจะไม่ถูกปัดเศษ หากเราต้องการสองรายการ $ 1.04 ราคารวมจะปัดขึ้นเป็น $ 2.10 ไม่ว่าเราจะแยกการซื้ออย่างไร ดังนั้นเราควรชำระเงินสำหรับรายการเหล่านี้ด้วยบัตรเครดิต เขียนฟังก์ชั่นหรือโปรแกรมที่ยอมรับรายการราคาเป็นจำนวนเต็มในเซนต์และส่งออกราคารวมต่ำสุดที่เป็นไปได้ (ในเซ็นต์) สำหรับรายการเหล่านั้นซึ่งสามารถทำได้ผ่านลำดับของการซื้อไม่ว่าจะเป็นเงินสดหรือเครดิต รหัสที่สั้นที่สุดชนะ กรณีทดสอบ [] : 0 [48] : 48 [92, 20] : 110 [47, 56, …
18 code-golf  number 

25
ใช้ประโยชน์สตริง
กำหนดสตริงให้ใช้ประโยชน์ โดยมูลค่าผมหมายถึงการเปลี่ยนแปลงconTeNT-lENgth Content-Lengthในตัวอย่างฉันแสดงสตริงที่มี 2 คำด้วย-เป็นขอบเขตคำ อย่างไรก็ตามฉันคาดว่าคุณจะเขียนโค้ดสำหรับสตริงที่มีจำนวนคำใด ๆ ที่คั่นด้วยอักขระตัวเดียวเป็นขอบเขต ขอบเขตนี้อาจเปลี่ยนแปลงไปตามสายอักขระ เงื่อนไข ใช้regular expressionsเป็นที่ไม่ได้รับอนุญาต อาจมีจำนวนคำใด ๆ ในประโยค (สตริง) แต่ละคำจะประกอบด้วยEnglishตัวอักษร[a-zA-Z]ของกรณีใด ๆ คำที่แตกต่างในประโยคจะถูกคั่นด้วยอักขระเดียว ตัวนี้จะเพียงเป็นหนึ่งในใด ๆ-, ., <space-character>, /, ,& #คุณสามารถสรุปได้อย่างปลอดภัยว่าประโยคนั้นจะไม่มีตัวละครอื่นยกเว้นตัวที่กล่าวถึง ขอบเขตของคำควรได้รับการเก็บรักษาไว้ในผลลัพธ์ รหัสที่สั้นที่สุดชนะ ตัวอย่างเช่นโปรแกรมของคุณควรเอาท์พุทสำหรับBegin/With.Type&ContentBeGin/wITH.tyPE&conTeNt Some test cases: "aGeNT ACcEpT/LEngTh-tYPe USeR raNgE.TyPe" "type&AgeNt/CC/COnteNt lEnGth#acCePT/AgeNt.RAnGe-Cc/contEnt/cODe" "cc/rEspoNCe.lEngtH#tYpE-witH&UsEr/bEgIN&uSer.AGEnT&begIn/aCCEPt/Cc" "lENgTH#USeR.tYpE/BeGiN&LENGth tYpe/ACCEpt#rANge/codE&AnD-ACCepT/ConTenT" "contENT/ACcEpT" "BeGin/wITH.tyPE&conTeNt" "Code.cc#User.lenGTh-USer-AND&tyPE TypE&leNgtH.tYPe usER.UseR&with" "RaNgE&COnTeNT WITh CoNTENT-TypE tyPe" …
18 code-golf  string 

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