คำถามติดแท็ก code-golf

Code-golf เป็นการแข่งขันเพื่อแก้ไขปัญหาเฉพาะในส่วนที่น้อยที่สุดของซอร์สโค้ด

13
บัฟเฟอร์กันน้ำล้น
พื้นหลัง โปรแกรมเมอร์ทุกวันนี้ดูเหมือนจะไม่สามารถทำให้บัฟเฟอร์ตรงได้! แหล่งที่มาของข้อผิดพลาดทั่วไปพยายามที่จะใช้ดัชนีอาร์เรย์ที่มีขนาดใหญ่เกินไปสำหรับบัฟเฟอร์ งานของคุณคือการใช้บัฟเฟอร์ที่ดัชนีขนาดใหญ่จะลดลงเป็นขนาดที่บัฟเฟอร์สามารถจัดการได้ เนื่องจากฉันตัดสินใจว่าสิ่งที่ดีที่สุดสำหรับทุกคนคุณจะใช้บัฟเฟอร์นี้กับข้อมูลจำเพาะที่แม่นยำของฉัน ภาพรวม คุณมีบัฟเฟอร์แบบแทรกเท่านั้นที่มีขนาดโตขึ้นเมื่อองค์ประกอบถูกเพิ่มเข้าไป บัฟเฟอร์มีค่าดัชนีเป็นศูนย์และทำดัชนีโมดูโลขนาดปัจจุบัน กฎพิเศษสำหรับความท้าทายนี้คือ: เพื่อแทรกรายการที่ดัชนีฉันหมายถึงการคำนวณเจ , j = i % buffer.length()และแทรกรายการใหม่หลังจากที่jthรายการในรายการ กรณีพิเศษเท่านั้นคือถ้าบัฟเฟอร์ว่างเปล่าเนื่องจากเลขศูนย์ modulo ไม่ทำงาน ดังนั้นหากบัฟเฟอร์ปัจจุบันว่างรายการใหม่จะเป็นดัชนี0 หากบัฟเฟอร์มีเพียงหนึ่งไอเท็มคุณจะแทรกหลังจากไอเท็ม0เสมอ นี่เป็นเพียงตัวอย่างเดียวของกรณีทั่วไป หากบัฟเฟอร์มี 6 รายการ: [4, 9, 14, 8, 5, 2]และคุณได้รับคำสั่งให้แทรกรายการใหม่10ที่ดัชนี15คุณจะพบว่า15 % 6 == 3จากนั้นแทรกรายการใหม่10หลังจาก8ที่ดัชนี3ซึ่งให้บัฟเฟอร์ที่เป็นผลลัพธ์ของ [4, 9, 14, 8, 10, 5, 2] ปัญหา เขียนฟังก์ชั่นหรือโปรแกรมที่ใช้ในรายการสั่งซื้อจำนวนเต็มบวกและดัชนีจำนวนเต็มบวกที่จะแทรก เริ่มต้นด้วยบัฟเฟอร์ที่ว่างเปล่าและเพิ่มจำนวนเต็มที่ระบุไปยังบัฟเฟอร์ที่ดัชนีที่สอดคล้องกัน เอาต์พุตรายการลำดับของจำนวนเต็มที่อยู่ในบัฟเฟอร์หลังจากทำการแทรกที่ระบุทั้งหมดแล้ว นี่คือความท้าทายของรหัส - กอล์ฟดังนั้นรหัสที่สั้นที่สุดชนะ แนวทางการป้อนข้อมูล …
23 code-golf 

17
ใช้นาฬิกาจับเวลา
ติดตั้งนาฬิกาจับเวลาระบบดิจิตอลอย่างง่ายซึ่งจะแสดงเวลาที่ผ่านไปเป็นวินาทีและนาทีตามที่อธิบายไว้ด้านล่าง สิ่งสำคัญ โปรดอ่านทั้งส่วนแสดงผลและส่วนควบคุม ! แสดง เวลาที่ผ่านไปควรแสดงในMM:SSรูปแบบโดยแทนที่สตริงเวลาที่แสดงก่อนหน้านี้ "แทนที่" (ล้างทั้งหมดหรือบางส่วนของหน้าจอได้รับอนุญาตด้วย) นาฬิกาจับเวลาจะต้องอัปเดตอย่างน้อยทุกวินาที ตัวอย่าง: 0 นาที 0 วินาที 00:00 0 นาที 33 วินาที 00:33 1 นาที 50 วินาที 01:50 เริ่มแรกคุณสามารถเริ่มต้นด้วย '00: 00 'หรือด้วยค่าอื่น ๆ ในช่วง [00: 00-59: 59] เมื่อนาฬิกาจับเวลาของคุณมาถึง59:59มันควรรีเซ็ตเป็น00:00และดำเนินการต่ออีกครั้ง คุณสามารถใช้ฐานอื่น (แทนทศนิยม) หรือแม้แต่ระบบตัวเลขอื่นหากคุณต้องการตราบใดที่คุณทำตามรูปแบบทั่วไป ตัวอย่างเช่น13:03สามารถแสดงเป็น: ทศนิยม 13:03 เลขฐานสิบหก 0D:03 Base64 N:D ฐานจินตภาพ 10101:3 ตัวเลขโรมัน XIII:III ระวังว่าหากคุณใช้ระบบ …

16
กอล์ฟถักเปียตัวเลขการเติบโต
ถักเปียคำอธิบาย ในการถักเปียนี้เมื่อ strand ข้ามผ่านด้านบนของ strand อื่นมันจะเพิ่มมูลค่าของ strand อื่น ๆ ให้กับตัวเองและค่าอื่น ๆ ทั้งหมดของ strand ผ่าน การถักเปียมีสามเส้นและแต่ละเส้นเริ่มต้นที่ 1 ครอสโอเวอร์แรกคือการข้ามเส้นด้านซ้ายสุดเหนือเส้นกลาง ครอสโอเวอร์ถัดไปคือการข้ามฝั่งขวาสุดข้ามเส้นกลางใหม่ (ก่อนหน้านี้คือเกลียวด้านซ้ายสุด) ครอสโอเวอร์สองขั้นตอนเหล่านี้ซ้ำ ในคำอื่น ๆ ครอสโอเวอร์แรกคือและที่สองคือ[a, b, c] -> [b, a+b, c] [a, b, c] -> [a, b+c, b]การใช้กฎเหล่านี้เป็นหกระดับแรกของการถักเปีย: 1,1,1 1,2,1 1,3,2 3,4,2 3,6,4 6,9,4 งานของคุณ เขียนโปรแกรมหรือฟังก์ชั่นกอล์ฟที่รับจำนวนเต็มเป็นระดับถักเปียและส่งออกค่าสามค่าสำหรับระดับถักเปียนั้น คุณต้องระบุว่าระดับของคุณเป็นศูนย์หรือแบบอิง อินพุตและเอาต์พุตอาจมาในรูปแบบที่เหมาะสมและอนุญาตให้ใช้พื้นที่สีขาวต่อท้าย กรณีทดสอบ (1-based) 1 -> …

9
Quine ที่เพิ่มขึ้น
งานของคุณคือการเขียนโปรแกรมหรือฟังก์ชั่นที่ส่งออกอักขระตัวแรกของซอร์สโค้ดของมันแล้วตัวที่สองจากนั้นก็ตัวที่สาม ... ในแต่ละครั้งที่มันถูกเรียกใช้ ตัวอย่างเช่นหากโปรแกรมของคุณเป็นfooภาษาbarในไฟล์baz.barคุณควรจะได้ผลลัพธ์ที่คล้ายกับนี้: λ bar baz.bar f λ bar baz.bar o λ bar baz.bar o โปรแกรมของคุณสามารถทำอะไรก็ได้เมื่อพิมพ์ซอร์สโค้ดเสร็จแล้ว คุณสามารถแก้ไขซอร์สโค้ดสำหรับไฟล์ได้ แต่จำไว้ว่าซอร์สโค้ดที่จะพิมพ์นั้นเป็นซอร์สโค้ดต้นฉบับ นี่คือรหัสกอล์ฟดังนั้นโปรแกรมที่สั้นที่สุดในหน่วยไบต์ชนะ

15
พูดตามฉัน!
รับสตริงเป็นอาร์กิวเมนต์ส่งออกความยาวของสตริงย่อยที่ซ้ำกันที่ยาวที่สุดที่ไม่ซ้ำซ้อนกันหรือศูนย์หากไม่มีสตริงดังกล่าว คุณสามารถสมมติว่าสตริงอินพุตไม่ว่างเปล่า ตัวอย่าง abcdefabc: ซับสตริงabcซ้ำที่ตำแหน่ง 1 และ 7 ดังนั้นโปรแกรมควรเอาต์พุต3 abcabcabcabcab: abcabcหรือbcabcaหรือcabcabมีการทำซ้ำเพื่อให้โปรแกรมควรเอาท์พุท6 (สตริงย่อยabcabcabcabซ้ำแล้วซ้ำอีก แต่เหตุการณ์ที่เกิดขึ้นทับซ้อนกันดังนั้นเราจึงไม่ยอมรับมัน) aaaaaaa: aaaถูกทำซ้ำที่ตำแหน่ง 1 และ 4 ตัวอย่างเช่นดังนั้นโปรแกรมควรเอาต์พุต3 abcda: aซ้ำแล้วซ้ำอีกดังนั้นโปรแกรมควรจะออก1 xyz: ไม่มีสตริงซ้ำแล้วซ้ำอีก→ 0 ababcabcabcabcab: ควรกลับ6 นี่คือโค้ดกอล์ฟซึ่งมีจำนวนน้อยที่สุดที่จะชนะ
23 code-golf  string  code-golf  code-golf  kolmogorov-complexity  primes  code-golf  kolmogorov-complexity  hexadecimal  code-golf  code-golf  string  code-golf  string  random  code-golf  array-manipulation  code-golf  ascii-art  kolmogorov-complexity  random  code-golf  array-manipulation  code-golf  stateful  code-golf  hello-world  code-golf  string  code-golf  interpreter  lisp  code-golf  restricted-source  quine  palindrome  code-golf  ascii-art  random  generation  challenge-writing  ascii-art  random  polyglot  maze  answer-chaining  string  cops-and-robbers  whitespace  code-golf  string  cops-and-robbers  whitespace  code-golf  number  sequence  code-golf  date  code-golf  ascii-art  decision-problem  code-golf  combinatorics  chemistry  code-golf  kolmogorov-complexity  source-layout  radiation-hardening  code-golf  ascii-art  path-finding  maze  code-golf  string  ascii-art  game  animation  code-golf  string  ascii-art  code-golf  ascii-art  kolmogorov-complexity  code-golf  restricted-source  new-years 

1
Conundrum ค่อนข้างยากที่จะแก้ไข
เขียนโปรแกรมเพื่อวาดแผนภาพ 2 มิติของปมโดยขึ้นอยู่กับโครงสร้างของปม ปมคือสิ่งที่ฟังดูเหมือน: เป็นเชือกที่ผูกไว้ ในวิชาคณิตศาสตร์แผนภาพปมแสดงให้เห็นว่าชิ้นส่วนของเชือกข้ามหรือใต้ตัวเองเพื่อสร้างปม ตัวอย่างไดอะแกรมแสดงปมด้านล่าง: มีตัวแบ่งในบรรทัดที่เชือกข้ามตัวเองได้ อินพุต: อินพุตที่อธิบายถึงปมคืออาร์เรย์ของจำนวนเต็ม ปมที่เชือกข้ามตัวมันเองnครั้งสามารถแสดงเป็นอาร์เรย์ของจำนวนเต็มnจำนวนโดยแต่ละค่าในช่วง [0, n-1] ขอเรียกอาร์เรย์นี้K ในการรับอาร์เรย์ที่อธิบายถึงปมให้ระบุหมายเลขแต่ละเซ็กเมนต์ 0 ถึง n-1 ส่วนที่ 0 ควรนำไปสู่ส่วนที่ 1 ซึ่งควรนำไปสู่ส่วนที่ 2 ซึ่งควรนำไปสู่ส่วนที่ 3 และต่อ ๆ ไปจนกว่าส่วนที่ n-1 จะวนกลับมาและนำไปสู่ส่วนที่ 0 ส่วนจะสิ้นสุดลงเมื่อส่วนอื่น ๆ แสดงโดยตัวแบ่งในบรรทัดในแผนภาพ) ลองมาหาเงื่อนที่ง่ายที่สุด - ปมพระฉายาลักษณ์ หลังจากที่เราได้นับเซกเมนต์แล้วเซกเมนต์ 0 จะสิ้นสุดลงเมื่อเซกเมนต์ 2 ตัดกัน ส่วนที่ 1 สิ้นสุดลงเมื่อส่วนที่ 0 ข้ามไป และส่วนที่ 2 …

5
สร้างชิป QFP ให้ฉัน!
สร้างชิป QFP ให้ฉัน! จากกล่องทราย! QFP เป็นรูปแบบของฟอร์มแฟคเตอร์สำหรับอุปกรณ์ไฟฟ้าที่หมุดออกมาด้านข้างของชิป นี่คือรูปภาพขององค์ประกอบ QFP ทั่วไป: คุณจะเห็นได้ว่าสูตรทั่วไปนั้นมี 4 ด้านของจำนวนพินเท่ากัน ความท้าทายของคุณคือการสร้างโปรแกรมที่ใช้จำนวนเต็มซึ่งแสดงถึงจำนวนพินที่ด้านหนึ่งและสร้างองค์ประกอบ ASCII QFP ด้วยหมายเลขที่มีหมายเลข การป้อนข้อมูล: เลขจำนวนเต็มเดียวซึ่งแทนจำนวนพินที่ด้านหนึ่ง เอาท์พุท: ชิป ASCII QFP ที่มี pinout ที่เหมาะสม ตัวอย่าง: การป้อนข้อมูล: 1 4 ┌┴┐ 1┤├3 └┬┘ 2 การป้อนข้อมูล: 2 87 ┌┴┴┐ 1┤├6 2┤├5 └┬┬┘ 34 การป้อนข้อมูล: 12 444444444333 876543210987 ┌┴┴┴┴┴┴┴┴┴┴┴┴┐ 1┤├36 2┤├35 3┤├34 4┤├33 …

16
สับเปลี่ยนแถวที่ขาด
อาร์เรย์แบบ ragged เป็นอาร์เรย์ที่แต่ละองค์ประกอบเป็นอาร์เรย์จำนวนเต็มบวกที่ไม่ทราบจำนวน ตัวอย่างเช่นต่อไปนี้เป็นอาร์เรย์ ragged: [[1,2,3],[4],[9,10]] Shape: 3,1,2 [[1],[2],[3]] Shape: 1,1,1 [[1,2,3,4,5,6,8]] Shape: 7 ต่อไปนี้ไม่ใช่ ragged arrays: [1] Each element will be an array [] The array will contain at least 1 element [[1,2,3],[]] Each subarray will contain at least 1 integer คุณต้องใส่อาเรย์แบบ ragged และส่งกลับอาเรย์แบบ ragged ด้วยจำนวนเต็มแบบสับ อาร์เรย์เอาต์พุตต้องมีรูปร่างเดียวกับอาร์เรย์อินพุต เรากำหนดรูปร่างของอาร์เรย์เป็นความยาวของแต่ละ subarray …

8
จำนวนลำดับการเรียงต่อเนื่องแบบ monotonic น้อยที่สุด
คำอธิบายการท้าทาย subsequence เนื่องเป็นลำดับของตัวเลข[a1, a2, ..., an]ดังกล่าวว่า a1 <= a2 <= ... <= ana1 >= a2 >= ... >= anหรือ [1, 3, 3, 7, 9, 13, 13, 100]เป็นลำดับ (ไม่ลด) monotonic เช่นเดียวกับ[9, 4, 4, 3, 0, -10, -12](อันนี้ไม่เพิ่มขึ้น) แต่[1, 3, 6, 9, 8]ไม่ รับรายการจำนวนเต็ม (ในรูปแบบที่เหมาะสม) ส่งออกจำนวนที่น้อยที่สุดNซึ่งลำดับของจำนวนเต็มเหล่านี้สามารถแบ่งออกเป็นNลำดับแบบโมโนโทนิก ตัวอย่าง [1, 3, 7, 5, 4, …

14
วิธีการวาดจุดหลอมเหลว
ช่างแกะสลักได้รับมอบหมายให้สร้างประติมากรรมน้ำแข็งสำหรับพิพิธภัณฑ์ใหม่ในกรีนแลนด์ เขาได้รับข้อมูลจำเพาะจากหัวหน้าของเขาซึ่งประกอบด้วยตัวเลขสองตัว: [s, m] หรือขนาดและละลาย ขนาดต้องเป็นเลขคี่ เขาได้รับภาพถ่ายของหยาดน้ำแข็งจริงบางภาพ: vvvvv [5, 0] vvv v vvvvvvv [7, 0] vvvvv vvv v vvvvvvv [7, 2] vvvvv vvvvvvv [7, 3] vvv [3, 1] เขาต้องการโปรแกรมเพื่อช่วยในการวาด ภาษาใด ๆ ที่ได้รับอนุญาต โปรแกรมจำเป็นต้องใช้ใน S และ M วิธีการอินพุตใด ๆ ที่ยอมรับได้ จากนั้นคุณจะต้องพิมพ์การแสดงภาพ ASCII ของมัน S คือจำนวนvs บนเลเยอร์แรก M คือจำนวนเลเยอร์ที่ถูกตัดออกจากด้านล่าง นี่คือรหัสกอล์ฟเพื่อให้เป็นปกติการแข่งขันครั้งนี้จะไบต์ตาม ช่องว่างจะนับสำหรับการนับไบต์ ไบต์ที่น้อยที่สุดชนะ …

7
ระยะห่างระหว่างสองจุดที่เดินทางบนกราฟกราฟขั้วโลก
คำอธิบายปัญหาโดยย่อ เขียนโปรแกรมเพื่อค้นหาระยะห่างต่ำสุดระหว่างจุดสองจุดที่เดินทางบนแสงที่เปล่งออกมาจากแหล่งกำเนิดและวงกลมที่อยู่กึ่งกลางแหล่งกำเนิด คำอธิบายของสถ ทีนี้ลองจินตนาการว่าเราอยู่บนเครื่องบินและบนเครื่องบินนี้เราได้รับอนุญาตให้เดินทางด้วยวิธีพิเศษเท่านั้น เราได้รับอนุญาตให้เดินทางกับรังสีใด ๆ ที่เล็ดลอดออกมาจากแหล่งกำเนิด เราสามารถเดินทางบนวงกลมใดก็ได้ที่อยู่ตรงกลางเป็นวงกลม ตอนนี้เป้าหมายของเราคือการเดินทางจากจุดหนึ่งบนเครื่องบินลำนี้ไปอีกจุดหนึ่ง อย่างไรก็ตามเราไม่สามารถเดินทางในเส้นทางแบบยุคลิดอย่างง่ายเราสามารถทำสิ่งนี้ได้ก็ต่อเมื่อจุดที่เกิดขึ้นตกกระทบกับรังสีจากจุดศูนย์กลาง เราสามารถเดินทางกับอันนี้เพราะมันตกอยู่บนหนึ่งในรังสีของเรา นอกจากนี้เรายังสามารถเดินทางบนวงกลมที่มีศูนย์กลางที่จุดกำเนิด ตัวอย่าง นี่คือความท้าทาย: เราต้องได้จากจุดหนึ่งไปอีกจุดหนึ่งในเส้นทางที่สั้นที่สุด; บ่อยครั้งที่นี่คือการรวมกันของการเดินทางในวงกลมและรังสี อย่างไรก็ตามนี่มันอาจเดินทางด้วยรังสีสองดวง บางครั้งมีสองเส้นทางที่เดินทางในระยะทางต่ำสุด ปัญหา ความท้าทายของคุณคือการเขียนโปรแกรมที่เมื่อได้รับสองคะแนนจะให้ระยะห่างขั้นต่ำระหว่างพวกเขาหากเราปฏิบัติตามกฎเหล่านี้ อินพุตสามารถกำหนดได้ทั้งในรูปแบบสี่เหลี่ยมหรือโพลาร์และเอาต์พุตควรเป็นหนึ่งหมายเลขคือระยะห่างระหว่าง กรณีทดสอบ (พร้อมอินพุตสี่เหลี่ยมผืนผ้า) (1,1) (1,-1) -> ~ 2.22144 (0,0) (1, 1) -> ~ 1.41421 (1,0) (-0.4161 , 0.90929) -> ~ 2 (1,1) (1, 0) -> ~ 1.19961 (1,2) (3, 4) …

26
จำนวนเฉพาะด้วยจำนวนบิตที่สำคัญ
งาน ค้นหาจำนวนเต็มที่ไม่เป็นลบทั้งหมดจนถึงและรวมถึงจำนวนเต็มบวกที่ไม่เป็นศูนย์ที่กำหนดnที่มีความสำคัญและนับ1'sและ0'sในการเป็นตัวแทนของพวกเขาไบนารี (ไม่มีเลขศูนย์นำ) มีความสำคัญมากเกินไป นี่คือห้าช่วงแรกเช่นนั้น 17, 19, 37, 41, 79 10001, 10011, 100101, 101001, 1001111 คำอธิบายและกฎ ยอมรับวิธีการเริ่มต้นของ I / Oวิธีการได้รับการยอมรับ คำตอบอาจเป็นโปรแกรมหรือฟังก์ชั่น หากไม่มีช่วงเวลาดังกล่าวให้ส่งออกขยะหรือไม่มีอะไร ช่องโหว่มาตรฐานเป็นสิ่งต้องห้าม 2 3 5 7ไม่ได้ทำให้มันอยู่ในรายการเพราะในจำนวนที่เป็นตัวแทนของพวกเขาเกิดขึ้น0'sและ1'sไม่ได้เป็นจำนวนเฉพาะ ลองพิจารณาดูว่า7ใครเป็นตัวแทนไบนารีอยู่111ที่นี่0เกิดขึ้นที่ศูนย์ครั้งและศูนย์ไม่สำคัญ อนุญาตให้มีบิวด์อิน รหัสที่สั้นที่สุดในหน่วยไบต์ชนะ! กรณีทดสอบ 10 [] 100 [17, 19, 37, 41, 79] 150 [17, 19, 37, 41, 79, 103, 107, 109, 131, 137] …

9
ปัญหาการเดินทางฟักทอง
พื้นหลัง: แจ็คเป็นฟักทองที่สนุกกับการหลอกประชาชนในหมู่บ้านใกล้กับฟักทองของเขาทุกวันฮาโลวีน อย่างไรก็ตามทุกปีหลังจากที่มีคนจุดเทียนอยู่ข้างในเขาเขามีเวลา จำกัด ในการทำให้ทุกคนก่อนที่เทียนจะไหม้จึงไม่สามารถหลอกชาวบ้านได้อีกเพราะไม่มีใครเห็นเขาได้ ในช่วงหลายปีที่ผ่านมาเขาสามารถหลอกหมู่บ้านได้เพียงเล็กน้อยเนื่องจากการตัดสินใจที่ไม่ดีของเขา แต่ตอนนี้เขามีคุณเพื่อช่วยเขาเขาจะสามารถสะกดหมู่บ้านได้มากเท่าที่จะเป็นไปได้! งาน: รับรายชื่อที่ตั้งหมู่บ้านและอายุการใช้งานของเทียนส่งออกจำนวนหมู่บ้านสูงสุดที่แจ็คสามารถเยี่ยมชมได้ คุณไม่จำเป็นต้องพิมพ์เส้นทางเอง การป้อนข้อมูล: อายุการใช้งานของแท่งเทียนและรายการที่ตั้งหมู่บ้านในระบบพิกัดคาร์ทีเซียน แจ็คแพทช์ฟักทองมีต้นกำเนิดจากจะอยู่ที่ 0,0 คุณสามารถจัดรูปแบบอินพุตได้ตามที่คุณต้องการ เพื่อให้การเคลื่อนไหวของแจ็คง่ายขึ้นเขาสามารถเคลื่อนที่ในแนวนอนแนวตั้งหรือแนวทแยงมุมซึ่งหมายความว่าเทียนของเขาจะสูญเสีย 1 หรือ 1.5 (เขาใช้แนวทแยงมุมอีกต่อไป) หน่วยชีวิตทุกการเคลื่อนไหว เทียนไหม้เมื่ออายุการใช้งานน้อยกว่าหรือเท่ากับ 0 เอาท์พุท: จำนวนเต็มเท่ากับจำนวนหมู่บ้านสูงสุดที่แจ็คสามารถเยี่ยมชมได้ก่อนที่เทียนจะไหม้ กฎ: นี่คือcode-golfดังนั้นรหัสที่สั้นที่สุดในหน่วยไบต์ชนะ ไม่อนุญาตช่องโหว่มาตรฐาน กรณีทดสอบ: // Format [lifespan] [list of village coordinates] -> [maximum visit-able villages] 4 -1,0 1,0 2,0 3,0 4,0 5,0 -> 3 4 …

1
แสดงมุมมองจากบนลงล่างของหลังคาสะโพกใน ASCII
ก่อนคำศัพท์บางคำ ( แหล่งที่มา ): ปั้นหยาเป็น (quoting วิกิพีเดีย) "ประเภทของหลังคาที่ทุกทิศทุกทางลาดชันลงไปผนังมักจะมีความลาดชันค่อนข้างอ่อนโยน" ความลาดชันเป็นพื้นผิวระนาบที่เป็นส่วนหนึ่งของหลังคา สันเขาเป็นขอบที่ทั้งสองตรงข้ามกับหลังคาลาด สะโพกเป็นขอบนูนที่มีความลาดเอียงสองด้านของผนังตั้งฉาก หุบเขาเป็นขอบเว้าที่มีเนินเขาสองลูกอยู่ในแนวกำแพงตั้งฉาก สะโพกและหุบเขาจะถูกเรียกรวมกันเป็นขอบแนวทแยงมุม อินพุตที่เป็นไปได้: ** * *** ******** ** * ** ผลลัพธ์ที่สอดคล้องกัน: +-------+ +---+ +-----------+ |\ /| |\ /| |\ /| | \ / | | V | | \ ^---< | | \ / | | | | | …

2
หนูกับไดนาไมท์
คุณเป็นหนู เพื่อนของคุณถูกจับและหมดสติและถูกขังอยู่ในเขาวงกตที่มีทางเข้า / ทางออกเดียวเท่านั้น คุณมีแผนที่ที่สมบูรณ์แบบของเขาวงกตดังนั้นคุณจึงสามารถวางแผนการแก้ปัญหาเพื่อเร่งรีบและพาพวกมันทั้งหมดไปสู่ความปลอดภัย อย่างไรก็ตามเขาวงกตได้รับการปกป้องด้วยระบบรักษาความปลอดภัยที่จะเปิดการแจ้งเตือนหากถึงเกณฑ์1000ทำให้คุณถูกจับและล้มเหลวในภารกิจกู้ภัยของคุณ จากการตรวจสอบก่อนหน้าของเขาวงกตของคุณแต่ละตารางคุณก้าว (เช่นการเคลื่อนไหวในแนวนอนหรือแนวตั้ง - หนูไม่สามารถเคลื่อนที่ในแนวทแยงมุม ) เพิ่ม1ไปยังเคาน์เตอร์ของระบบรักษาความปลอดภัย อย่างไรก็ตามหากคุณกำลังแบกน้ำหนัก (ทั้งบล็อกของไดนาไมต์หรือเพื่อนของเมาส์ที่ไม่รู้สึกตัว) มันเพิ่มแทน2เพราะมันตรวจจับแรงกดดันเพิ่มเติม จัตุรัสทางเข้า / ทางออกไม่มีระบบรักษาความปลอดภัยนี้ดังนั้นจึงไม่เพิ่มลงในตัวนับ คุณมีไดนาไมต์จำนวนไม่ จำกัด ที่คุณนำมาที่ทางเข้าดังนั้นคุณสามารถระเบิดกำแพงทั้งหมดเพื่อปลดปล่อยเพื่อนของคุณ แต่คุณต้องระมัดระวังในการทำเช่นนี้เนื่องจากการระเบิดแต่ละครั้งจะเพิ่ม50ความกดดันจากการสั่นสะเทือน นอกจากนี้คุณสามารถพกพาได้ครั้งละหนึ่งอย่างเท่านั้นไม่ว่าจะเป็นหนึ่งเม้าส์หรือหนึ่งบล็อกไดนาไมต์ เนื่องจากบล็อกไดนาไมต์แต่ละอันสามารถทำให้เกิดการระเบิดได้เพียงพื้นที่เดียวเท่านั้นซึ่งหมายความว่าหากมีหลายกำแพงติดต่อกันคุณจะต้องเดินทางด้วยมือเปล่ากลับไปที่ทางเข้าเพื่อคว้ามากขึ้น ตัวอย่างการทำงานผ่าน สมมติว่าเขาวงกตของเรามีลักษณะดังนี้: ###### #M# E# ###### ฉันจะใช้cสำหรับเคาน์เตอร์ เราเริ่มต้นที่Entrance เลื่อนไปทางซ้ายหนึ่งตารางขณะถือไดนาไมต์c=2. เราระเบิดวัตถุระเบิดเพื่อระเบิดกำแพง, c=52. เราเลื่อนสี่เหลี่ยมสองช่องไปทางซ้ายมือเปล่าเพื่อรับc=54และตอนนี้เรากำลังยืนอยู่บนสี่เหลี่ยมของเมาส์ เราหยิบเพื่อนของเราขึ้นมาแล้วขยับ 3 สี่เหลี่ยมกลับไปที่Exit แต่จตุรัสสุดท้ายไม่นับเพราะไม่มีเซ็นเซอร์เลยนั่นเป็นเพียง 2 สี่เหลี่ยมที่มีบางอย่างอยู่ด้านหลังของเรา นั่นหมายความว่าเมื่อเราไปถึงทางออกด้วยเมาส์สุดท้ายc=58ซึ่งน้อยกว่า1000ดังนั้นภารกิจจึงสำเร็จ ท้าทาย ด้วยการป้อนข้อมูลในเขาวงกตเอาท์พุทไม่ว่าคุณจะเป็นฮีโร่ของเมาส์สามารถช่วยเหลือหนูที่ติดกับดักทั้งหมดภายใต้ข้อ จำกัด ที่ระบุไว้ข้างต้นหรือว่าภารกิจนั้นล้มเหลว อินพุต เขาวงกต 2 …

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