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

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

2
กลยุทธ์บงการ
ฉันสามารถพบกับความท้าทายเกี่ยวกับรหัสสำหรับ Mastermind ได้เท่านั้นดังนั้นนี่เป็นเวอร์ชันที่ท้าทายรหัสที่ฉันอยากทำกับตัวเอง กลยุทธ์ที่ดีที่สุดสำหรับเกม Mastermind ปกติ MM (4,6) ถูกค้นพบโดย Koyama และ Lai ในปี 1993 โดยมีการเดา # โดยเฉลี่ย = 5625/1296 ~ 4.34 MM (5,8) ยังคงไม่ได้รับการแก้ไข แต่คาดว่าจะมีค่าเฉลี่ย # ของการเดา ~ 5.5 งานของคุณคือการสร้างกลยุทธ์ MM (5,8) นั่นคือสำหรับ 5 หลุมและ 8 สีครอบคลุมpow(8,5) = 32768โซลูชั่นที่แตกต่างที่เป็นไปได้ทั้งหมด เห็นได้ชัดว่ามันไม่จำเป็นต้องดีที่สุด คุณมีสองทางเลือก: โพสต์โปรแกรมกำหนดขึ้นที่สร้างกลยุทธ์ โปรแกรมจะต้องสามารถคอมไพล์ได้ / รันได้บน Windows 7, Mac OS X …

3
ประปา ASCII
Intro พิจารณากริดของตัวละครf A\/เช่น f f f A A / \ \ / A A \/ / \/ ที่อยู่: f หมายถึงก๊อกน้ำที่เทน้ำไหลลง A แยกสายน้ำด้านบนออกเป็นสองส่วนครึ่งทางซ้ายและครึ่งทางที่ถูกต้อง \ เลื่อนกระแสน้ำเหนือขึ้นไปทางขวาทีละหนึ่งหน่วย / เลื่อนกระแสน้ำข้างบนไปทางซ้ายทีละหนึ่งหน่วย การรวมกัน\/จะสร้างรางน้ำที่มีความจุไม่สิ้นสุดที่รวบรวมกระแสน้ำข้างบน [space] เป็นพื้นที่ว่างเปล่ากว่าน้ำที่สามารถเคลื่อนที่ผ่านได้ จากนี้เราสามารถจินตนาการเส้นทางที่น้ำ ( *) จะใช้เมื่อมันออกมาจากก๊อกน้ำและตกลงไปในรางหรือออกจากพื้นที่กริด: f f f <-- first second and third faucets * * *A* * *A*/ \* \*/ * …

11
แปลข้อความ ASCII เป็นอักษรเบรลล์
เขียนโปรแกรมที่แปลข้อความ ASCII เป็นอักษรเบรลล์เอาต์พุตที่ต้องการ: อินพุตอาจมาจาก stdin, บรรทัดคำสั่งหรือแหล่งอินพุตภายนอกอื่น ควรจดจำเอาต์พุตเป็นอักษรเบรลล์รูปแบบของเอาต์พุตจะขึ้นอยู่กับคุณ ตัวอย่างจะoเป็นจุดที่ยกขึ้นและ.สำหรับจุดที่ไม่ได้ยกขึ้น การแสดงรูปแบบต้นฉบับเดิมเช่น1-3-4ไม่สามารถยอมรับได้ ไม่จำเป็นต้องใช้การพันบรรทัดยาว ต้องการตัวอักษรและช่องว่าง 26 ตัวสำหรับการแก้ปัญหาขั้นต่ำ ควรละเว้นอักขระอินพุตทั้งหมดที่โซลูชันของคุณไม่สนับสนุน การให้คะแนนคือจำนวนอักขระในซอร์สโค้ด บทลงโทษและโบนัส ได้แก่ : +50 โทษสำหรับการใช้อักษรเบรลล์ Unicodeเป็นเอาท์พุท -50 โบนัสสำหรับการสนับสนุนตัวพิมพ์ใหญ่ตัวเลขและเครื่องหมายวรรคตอน -200 โบนัสสำหรับหนังสติ๊กสนับสนุนและเป็นหนึ่งในตัวอักษรหดตัวจากอังกฤษ (ชั้นประถมศึกษาปีที่ 2) อักษรเบรลล์ (จะทำให้สิ่งนี้เป็นความท้าทายที่แยกจากกันเนื่องจากเป็นปัญหาที่แตกต่างกัน) ตัวอย่างการร้องขอและเอาต์พุต (โซลูชันขั้นต่ำ): $ braille Hello world o . o . o . o . o . . . . o o …
19 code-golf 

4
ป่าไม้ - ระบบนิเวศจำลอง
บันทึก ปัญหานี้เกิดขึ้นจากเธรด reddit นี้ (การแจ้งเตือนสปอยเลอร์!) และฉันได้ทำการปรับให้เหมาะสมกับรูปแบบของไซต์นี้ เครดิตทั้งหมดไปที่ reddit ผู้ใช้ "Coder_d00d" ในปัญหานี้เราจะจำลองฟอเรสต์ สำหรับป่าจำลองนี้เราจะจัดการกับ 3 ด้าน ต้นไม้ที่สามารถเป็นต้นไม้ต้นอ่อนต้นไม้หรือต้นไม้อาวุโส Lumberjacks (เขาตัดต้นไม้เขากินอาหารกลางวันและไปที่ Lava-try) Bears (เขาขยี้คนตัดไม้ที่มีกลิ่นเหมือนแพนเค้ก) คำเตือนล่วงหน้า: กฎเหล่านี้ส่วนใหญ่อาจไม่สมบูรณ์แบบ ดูพวกเขาเป็นแนวทางและถ้าคุณต้องการปรับแต่งอะไรเล็กน้อยที่ดี (อัตราการวางไข่ได้รับการชี้ให้เห็นว่าเป็นปัญหาให้ดูคำตอบของkuroi nekoเป็นตัวอย่างของสิ่งนี้ รอบเวลา: การจำลองจะจำลองเป็นเดือน คุณจะต้องทำล่วงหน้าด้วย "เห็บ" "ขีด" แต่ละอันแทนเดือน ทุก 12 "เห็บ" หมายถึงปี ป่าของเราจะเปลี่ยนแปลงและเปลี่ยนแปลงอย่างต่อเนื่อง เราจะบันทึกความคืบหน้าของป่าของเราและวิเคราะห์สิ่งที่เกิดขึ้นกับมัน ป่าไม้: ป่านั้นจะเป็นป่าสองมิติ เราจะต้องการอินพุตของ N เพื่อแสดงขนาดของฟอเรสต์ในกริดที่มีขนาด N x N ในแต่ละสถานที่คุณสามารถถือต้นไม้หมีหรือไม้แปรรูป พวกเขาสามารถครอบครองจุดเดียวกันแต่บ่อยครั้งที่เหตุการณ์เกิดขึ้นเมื่อพวกเขาครอบครองจุดเดียวกัน ป่าของเราจะวางไข่แบบสุ่มตามขนาด ตัวอย่างเช่นหากค่าของคุณเป็น = …

29
ทวีคูณตัวเลขทั้งหมดในสตริง
ผู้ชนะ: Chilemagicขนาดใหญ่ 21 ไบต์! คุณสามารถส่งคำตอบของคุณต่อไปได้ แต่คุณจะไม่สามารถชนะได้อีกต่อไป โพสต์ต้นฉบับเก็บไว้: เป้าหมายของคุณคือค้นหาตัวเลขทั้งหมดในสตริงและคูณแต่ละค่าด้วยการป้อนค่าโดยผู้ใช้ คุณไม่จำเป็นต้องกังวลเรื่องทศนิยม ผู้ใช้จะใส่ตัวเลขและสตริง ผู้ใช้จะต้องพิมพ์ตัวเลขและสตริงในบางจุดอย่างไรก็ตามวิธีการที่โปรแกรมอ่านไม่สำคัญ มันอาจจะเป็นกับ stdin อ่านไฟล์ข้อความ ฯลฯ อย่างไรก็ตามผู้ใช้จะต้องกดปุ่ม 9 บนแป้นพิมพ์ของพวกเขา (ตัวอย่าง) ในบางจุด สิ่งใดก็ตามที่สามารถคอมไพล์และรันได้นั้นยอมรับได้ ตัวอย่าง: อินพุตประโยค: 1 นี้คือ 22a 3352 ส่ง 50 ใส่ตัวเลข: 3 ผลลัพธ์: 3 นี้คือ 66a 10056 การส่ง 150 การประกวดนี้จะสิ้นสุดใน 6 กันยายน 2014 (7 วันจากการโพสต์) นี่คือรหัสกอล์ฟดังนั้นรหัสที่สั้นที่สุดชนะ
19 code-golf 

20
สร้างหมายเลข Ulam
ได้รับจำนวนเต็มn(ที่n < 10001) เป็น input เขียนโปรแกรมที่ออกจะเป็นครั้งแรกที่ตัวเลขลามn หมายเลข Ulam ถูกกำหนดดังนี้: U 1 = 1, U 22 = สำหรับn > 2U nเป็นจำนวนเต็มที่น้อยที่สุดซึ่งมากกว่า U n-1นั่นคือผลรวมของคำสองคำที่แตกต่างกันก่อนหน้านี้ในทางเดียว ตัวอย่างเช่น U 3คือ3(2 + 1), U 4คือ4(3 + 1) (โปรดทราบว่า (2 + 2) ไม่นับเป็นเงื่อนไขที่ไม่ชัดเจน) และ U 5คือ6(U 5ไม่ใช่ 5 เนื่องจาก 5 สามารถแสดงเป็น 2 + 3 หรือ 4 + …

6
ถึงตัวจับเมื่อทุกอย่างในบล็อคการลองถูกจับไปแล้ว
สิ่งนี้ จำกัด เฉพาะ Java และ C # ด้วยไวยากรณ์ที่ฉันเดา ในปริศนาการเขียนโปรแกรมนี้คุณจะต้องสร้างExceptions ที่สามารถถูกจับได้ แต่จะถูกโยนอีกครั้งในตอนท้ายของบล็อกการจับ try { while(true) try { // you are only allowed to modify code between this try { } brackets } catch(Exception ex2) { } } catch(Exception ex1) { // your goal is to reach this catch block by modifying …

5
ไขปริศนาของไอน์สไตน์
Einstein เขียนปริศนา เขาบอกว่า 98% ของโลกไม่สามารถแก้ไขได้ ฉันไขปริศนานี้ได้ในเวลาประมาณ 25 นาทีขณะที่อยู่บนรถไฟเพื่อทำงาน มันเป็นเพียงแค่การหักเงิน ปัญหาลับสมอง มี 5 บ้านใน 5 สีที่แตกต่างกันในแถว ในแต่ละบ้านมีบุคคลที่มีสัญชาติแตกต่างกัน เจ้าของ 5 คนดื่มเครื่องดื่มบางประเภทสูบบุหรี่ยี่ห้อหนึ่งและรักษาสัตว์เลี้ยง เจ้าของไม่มีสัตว์เลี้ยงตัวเดียวกันสูบซิการ์ยี่ห้อเดียวกันหรือดื่มเครื่องดื่มชนิดเดียวกัน คำถาม: ใครเป็นเจ้าของปลา วิธีแก้ปริศนา Einstein นี้ให้คำใบ้ 15 คำ: ชาวอังกฤษอาศัยอยู่ในบ้านสีแดง ชาวสวีเดนเลี้ยงสุนัขเป็นสัตว์เลี้ยง ชาวเดนมาร์กดื่มชา บ้านสีเขียวอยู่ทางด้านซ้ายของทำเนียบขาว เจ้าของบ้านสีเขียวดื่มกาแฟ เจ้าของที่สูบบุหรี่พอลมอลล์จะดักนกไว้ เจ้าของบ้านสีเหลืองสูบบุหรี่ Dunhill เจ้าของอาศัยอยู่ในบ้านกลางดื่มนม ชาวนอร์เวย์อาศัยอยู่ในบ้านหลังแรก เจ้าของที่สูบบุหรี่ Blends อาศัยอยู่ถัดจากคนที่เลี้ยงแมว เจ้าของที่ดูแลม้าอยู่ข้างๆผู้ที่สูบ Dunhill เจ้าของที่สูบบุหรี่ Bluemasters ดื่มเบียร์ เจ้าชายเยอรมันสูบบุหรี่ ชาวนอร์เวย์อาศัยอยู่ข้างๆบ้านสีน้ำเงิน เจ้าของที่สูบบุหรี่ Blends ชีวิตถัดจากคนที่ดื่มน้ำ …
19 code-golf 

3
สั้นที่สุด a -> b -> ฟังก์ชัน (a -> b) ใน Haskell
ฉันได้รับคำถามต่อไปนี้จากการทดสอบ: เขียนฟังก์ชั่นที่มีประเภทดังต่อไปนี้f และไม่ควรผูกมัดในความหมายใด ๆ ยิ่งรหัสสั้นยิ่งดีa -> b -> (a -> b)ab f a b = \x -> snd ([a,x],b)ฉันมาด้วย คุณสามารถหาบางอย่างที่สวยกว่า? ปัจจุบันผู้ชนะคือ: f _=(.f).const

3
Ahhhh! สัตว์เดรัจฉานอยู่ที่นี่แล้ว!
ดังที่เราได้เรียนรู้จาก IBM PC AT, YouTube (ดูวิดีโอ) , Wikipedia (ดูบทความ)และ Sesame Street: ตัวอักษรHเป็นตัวอักษรที่ไร้ความปราณีที่สุดของตัวอักษร ! (แม้ว่าจริง ๆ แล้วประกอบด้วยสององค์ประกอบในรหัสหน้า 437 ที่จริงแล้วมันไร้ความปราณียิ่งกว่านั้น) เหมือนเอเลี่ยนในเอ่อ ... เอ่อ ... เอเลี่ยนสัตว์ร้ายไล่ตามทุกคนที่กล้าเข้ามาใกล้ไข่ของพวกมัน ไม่มีเหตุผลกับพวกเขา คุณจะต้องสควอชพวกเขาหากไม่ให้ตาย สำหรับสถานการณ์นี้เราจะสมมติว่าคุณยังอยู่กับชีวิตสุดท้ายของคุณและคุณได้พบกับ Beasts ธรรมดาในภูมิประเทศที่ไม่มีไข่ คุณไม่มีปุ่มกดตัวเลขและสามารถเลื่อนขึ้น / ลง / ซ้าย / ขวาได้โดยตรง ... แต่สัตว์มีปุ่มเดียวและสามารถเคลื่อนที่ในแนวทแยงมุมได้ ตัวเลือกการเคลื่อนที่ของสัตว์เดรัจฉานในตัวเลือกของมันจะเป็นสิ่งที่ช่วยลดระยะห่างจากผู้เล่นให้เหลือน้อยที่สุด ถ้าระยะทางเท่ากันแล้วการแตกไทจะทำได้โดยการเลือกซ้าย + ขึ้นไปทางขวา + ลง แต่นี่คือเมทริกซ์ disambiguation ที่ชัดเจนเกี่ยวกับมัน ... จำนวนต่ำสุดที่จะทำให้ไทเบรค: 1 3 …
19 code-golf  game  maze 

29
กำหนดชัยชนะใน Tictactoe
ลองเล่นโค้ดกอล์ฟกัน! ได้รับสถานะบอร์ด tic-tac-toe (ตัวอย่าง :) |x|x|o| |x|o|x| |o|o|x| ตรวจสอบว่าเกมเป็นหรือ รหัสของคุณควรส่งออกตัวเลือกใด ๆ เหล่านี้เมื่อได้รับสถานะ เกมดังกล่าวข้างต้นควรจะออกwinlosecatlose เพื่อให้ชัดเจน: การชนะหมายถึง 3 xs ใด ๆในแถว (แนวทแยง, แนวนอน, แนวตั้ง) การสูญเสียคือ 3 oวินาทีในขณะที่catเกมไม่มีใครอยู่ติดกัน เพื่อให้สิ่งต่าง ๆ น่าสนใจคุณจะต้องกำหนดโครงสร้างข้อมูลเข้าของคุณสำหรับสถานะที่คุณต้องอธิบาย ตัวอย่างเช่นxxoxoxooxเป็นสถานะที่ถูกต้องตามที่เห็นด้านบนซึ่งอักขระแต่ละตัวถูกอ่านจากซ้ายไปขวาบนลงล่าง [['x','x','o'],['x','o','x'],['o','o','x']]เป็นเกมในอาเรย์หลายมิติอ่านในทำนองเดียวกัน ในขณะที่0x1a9ซึ่งเป็นฐานสิบหกสำหรับ110101001การทำงานอาจจะเป็นการบีบอัดที่เหมาะสมที่1สามารถจัดการสำหรับxและสามารถจัดการสำหรับ0o แต่นั่นเป็นเพียงความคิดบางอย่างฉันแน่ใจว่าคุณอาจมีของคุณเองมากมาย กฎพื้นฐาน: โปรแกรมของคุณจะต้องสามารถยอมรับสถานะใด ๆ ที่ทำงานได้ รูปแบบการป้อนข้อมูลจะต้องสามารถเป็นตัวแทนของรัฐใด ๆ "สถานะชนะต้องถูกกำหนดจากกระดาน" สมมติว่าบอร์ดสมบูรณ์ Winก่อนloseเช่นในกรณี 'xxxoooxxx' จำนวนตัวละครต่ำสุดชนะ
19 code-golf  game 

2
เอกพจน์หรือพหูพจน์?
นี่คือรายการคำนามภาษาอังกฤษ 30 คำในรูปเอกพจน์และพหูพจน์ งานของคุณคือการเขียนสำนวนปกติที่สั้นที่สุดที่ตรงกับคำนามทั้งหมดในรูปแบบเดียวและไม่มีใครในรูปแบบอื่น ๆ (ง่าย ๆ คำนามภาษาอังกฤษทั้งหมดลงท้ายsด้วยพหูพจน์ใช่ไหม?) SINGULAR PLURAL --------- -------- car cars boat boats man men woman women omen omens bus buses cactus cacti spy spies pie pies louse lice mouse mice amice amices goose geese creese creeses person people child children siren sirens ox oxen foot feet …

3
วงกลมสีแดงด้วยมือเปล่า
มากกว่าในhttp://meta.stackoverflow.comเรามีมส์ของเราเอง หนึ่งในนั้นคือวงกลมสีแดงด้วยมือเปล่า ดูโพสต์นี้ : ดังนั้นความท้าทายคือ คุณวาดวงกลมสีแดงด้วยมือเปล่าด้วยรหัสได้ไหม ข้อ จำกัด เพิ่มเติม: คุณจะถ่ายภาพเป็นอินพุตและคุณต้องส่งภาพออกโดยเพิ่มวงกลมสีแดงด้วยมือเปล่า จะต้องคาดเดาได้เช่นภาพอินพุตเดียวกันจะต้องส่งออกผลลัพธ์เดียวกัน คุณสามารถใช้การสุ่มได้ แต่ผลลัพธ์จะต้องสอดคล้องกับอินพุตเดียวกัน ผลลัพธ์จะต้องเป็นรูปแบบเดียวกับอินพุตยกเว้นวงกลม (ไม่มีการดัดแปลงอื่น ๆ ) วงกลมสีแดงด้วยมือเปล่าจะต้องดูด้วยมือเปล่า (ไม่มีวงกลมที่สมบูรณ์แบบ!) เป็นสีแดง (ชัด) และโดยทั่วไปจะมีลักษณะเป็นวงกลม นี่คือการประกวดความนิยมดังนั้นคำตอบของผู้ที่โหวตมากที่สุดเมื่อต้นเดือนมีนาคม 2014 จะเป็นผู้ชนะ ไม่มีเป้าหมายที่เฉพาะเจาะจงนอกจาก "วงกลมสีแดงด้วยมือเปล่า" ดังนั้นจงสร้างสรรค์ให้มากที่สุดเท่าที่จะทำได้เพื่อให้คุณได้รับการโหวตมากที่สุด! (เพื่อให้เป็นกลางที่สุดเท่าที่จะทำได้ฉันจะถอนคำตอบใด ๆ ที่เป็นไปตามกฎ)

5
2048 ท้าทายบอท
เราทำการโคลนนิ่ง 2048 วิเคราะห์ 2048 แล้ว แต่ทำไมเรายังไม่เล่นเลย เขียนโค้ดจาวาสคริปต์ 555 ไบต์เพื่อเล่น 2048 โดยอัตโนมัติคะแนนที่ดีที่สุดหลังจากหนึ่งชั่วโมงจะถูกนับ (ดูคะแนนด้านล่าง) ติดตั้ง: ไปที่2048และเรียกใช้: a = new GameManager(4, KeyboardInputManager, HTMLActuator, LocalStorageManager); a เป็นวัตถุในการควบคุมเกม กฎ: หลังจากตั้งค่าคุณสามารถเรียกใช้จาวาสคริปต์ได้ที่ 555 ไบต์จากคอนโซลควบคุมเกม ซอร์สโค้ดของเกมสามารถพบได้ที่นี่ (รวมถึงความคิดเห็น) ผู้ใช้อาจทำสิ่งต่าง ๆ ที่เป็นไปได้เท่านั้น: a.move(n) เพื่อเรียกการกระทำที่สำคัญใน 4 ทิศทางใด ๆ 0: ขึ้น, 1: ขวา, 2: ลง, 3: ซ้าย a.restart() เพื่อเริ่มเกมใหม่ อนุญาตให้เริ่มต้นใหม่ได้ระหว่างกลางเกม a.grid.cellsข้อมูลเกี่ยวกับสถานะของเกมที่สามารถพบได้ใน ข้อมูลนี้เป็นแบบอ่านอย่างเดียว …

10
The Note of Destiny - วางโน้ตไว้บนพนักงาน
การเปิดเผยของซอมบี้ได้มาแล้วและโลกก็จะสิ้นสุดลง ทันใดนั้นมีคนค้นพบสูตรที่ใช้เวลาชั่วโมงนาทีและวันปัจจุบันและแยกโน้ตที่สมบูรณ์แบบเพื่อเล่นบนเปียโนที่จะฆ่าซอมบี้ทุกตัวที่ได้ยินทันที น่าเสียดายที่มีผู้เล่นเปียโนเพียงคนเดียวที่เหลืออยู่ในโลกนี้และเขาลืมวิธีการอ่านโน้ต แต่เขาก็ยังรู้วิธีอ่านแผ่นโน้ตเพลง แน่นอนว่านี่เป็นสิ่งที่ไวต่อเวลามากดังนั้นจึงเป็นเรื่องธรรมดาที่คอมพิวเตอร์จะใช้คอมพิวเตอร์ 1 ความท้าทายของคุณคือการจดบันทึกเช่นGและส่งออกบันทึกย่อที่วางไว้บนเจ้าหน้าที่ (ในเสียงแหลมโน๊ต) เช่นนี้: ----- ----- | ---|- | --O-- ----- รายละเอียด: คุณต้องส่งออกพนักงานของสายการสลับของ-----(5 ขีดกลาง) และบรรทัดว่าง จะมี-----ทั้งหมด5 s หมายเหตุจะต้องซ้อนทับทับบนพนักงานนี้ อินพุตจะระบุตำแหน่งของบันทึกย่อ อินพุตจะเป็น: ตัวเลือกHหรือLระบุ "สูง" หรือ "ต่ำ" จดหมายจากAถึงGโดยระบุระดับเสียง ตัวเลือก#หรือbระบุคมหรือแบน "note" ถูกกำหนดเป็น: หนึ่งO(เมืองหลวง O) จัดอยู่ตรงกลางของพนักงานซึ่งอยู่ในสถานที่ของบันทึก (บรรทัดบนสุดคือHF(สูง F) และบรรทัดล่างคือE(ปกติ E)) สาม|s (แถบแนวตั้ง), ก้านซึ่งจะเป็น: หนึ่งช่องว่างทางด้านซ้ายของบันทึกย่อและไปด้านล่าง (เริ่มต้นหนึ่งช่องว่างด้านล่างของบันทึกย่อ) หากบันทึกย่ออยู่ในบรรทัดกลาง ( B) หรือสูงกว่าหรือ หนึ่งช่องทางด้านขวาของบันทึกย่อและขึ้นไปข้างบน …

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