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

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

8
วรรณพันธ์
Fannkuchเป็นโปรแกรมมาตรฐานคลาสสิก ชื่อนี้มาจากภาษาเยอรมัน "Pfannkuchen" - แพนเค้ก - สำหรับความคล้ายคลึงของอัลกอริทึมในการพลิกกองแพนเค้ก ลำดับหมายเลข Fannkuch ถูกสร้างขึ้นดังนี้: ใช้การเรียงสับเปลี่ยนของ {1 ..... n} ตัวอย่างเช่น: {4,2,1,5,3} นำองค์ประกอบแรกมาที่นี่ 4 และกลับลำดับขององค์ประกอบ 4 รายการแรก: {5,1,2,4,3} ทำซ้ำจนกว่าองค์ประกอบแรกจะเป็น 1 ดังนั้นการพลิกจะไม่เปลี่ยนแปลงอะไรอีก: {3,4,2,1,5}, {2,4,3,1,5}, {4,2,3 1,5}, {1,3,2,4,5} คุณต้องเขียนโปรแกรมหรือฟังก์ชั่นซึ่งคำนวณลำดับ Fannkuch เหมือนสำหรับสตริงของตัวอักษร แทนที่จะใช้ตัวเลขเพื่อระบุองค์ประกอบของรายการที่จะพลิกแต่ละครั้งตำแหน่งของตัวอักษรในตัวอักษรควรใช้ ตัวอย่างเช่นผู้นำcจะระบุว่าคุณควรกลับลำดับของ 3 องค์ประกอบแรกในขณะที่ผู้นำaชี้ให้เห็นว่าลำดับเสร็จสมบูรณ์ อินพุต อินพุตจะถูกจัดเตรียมเป็นสตริงผ่าน stdin หรือเป็นอาร์กิวเมนต์ของฟังก์ชัน สตริงจะมีตัวอักษรตัวพิมพ์เล็กระหว่าง 1 ถึง 26 ตัว สตริงจะไม่มีตัวอักษรที่มีดัชนีเทียบเท่าจะทำให้อัลกอริทึม Fannkuch พลิกองค์ประกอบมากกว่าที่มีอยู่ เอาท์พุต …

1
ปัญหาการจำนำที่หายไป
ปัญหาการจำนำที่หายไป หลังจากเกมหมากรุกสิ้นสุดลงเบี้ยที่รอดตายก็ถูกทิ้งไว้เบื้องหลังแนวศัตรู มาช่วยเขาหาทางกลับบ้านให้เร็วที่สุด ปัญหาเดิมอธิบายกระดาน "หมากรุก" nXn และฟังก์ชั่นf: {1,..,n-1}X{1,..,n}X{-1,0,1} => R+ของน้ำหนัก เป้าหมายคือการหาเส้นทางที่ดีที่สุดจากบางช่องในแนว buttom ไปยัง square อื่น ๆ ใน top line ซึ่งการเคลื่อนไหวที่เป็นไปได้คือ: left-up, up, right-up และคุณไม่สามารถออกจากกระดานได้ ปัญหาค่อนข้างง่ายในการแก้ปัญหาใน O (n ^ 2) โดยใช้การเขียนโปรแกรมแบบไดนามิก แต่นี่คือ codegolf และเราไม่สนใจสิ่งที่ไร้ประโยชน์เช่นความซับซ้อนของเวลาทำงาน ... ปัญหา อินพุต:อาร์เรย์ 3 มิติ (หรือคอลเลกชันอื่น ๆ ที่คุณเลือกได้รับผ่าน stdin หรือเป็นอาร์กิวเมนต์ของฟังก์ชัน) สอดคล้องกับกระดานหมากรุกทั่วไปขนาด: 7X8X3 (#linePasses X #rowSize X #movePerPass) …
14 code-golf  chess 

11
ล้างสระว่ายน้ำ . . ด้วยถ้วยเดี่ยวสีแดงเท่านั้น
คุณมีสระว่ายน้ำที่เต็มไปด้วยน้ำ คุณต้องล้างมัน แต่คุณไม่สามารถคิดวิธีที่มีประสิทธิภาพได้ ดังนั้นคุณตัดสินใจที่จะใช้ถ้วยเดี่ยวสีแดงของคุณ คุณจะเติมถ้วยซ้ำ ๆ จนหมดแล้วเททิ้งไว้ข้างนอกสระ ท้าทาย ใช้เวลาในการล้างสระว่ายน้ำนานเท่าไหร่ อินพุต [shape of pool] [dimensions] [shape of cup] [dimensions] [speed] shape of poolจะเป็นหนึ่งในสายเหล่านี้: circle, หรือtriangle rectangleโปรดทราบว่าสิ่งเหล่านี้จริงอ้างถึงรูปร่าง 3 มิติ: ทรงกระบอก, ปริซึมสามเหลี่ยมและปริซึมสี่เหลี่ยม dimensions จะแตกต่างกันไปขึ้นอยู่กับรูปร่าง แวดวง: [radius] [height]. ปริมาณ = π r 2ชม [base] [height] [length]สามเหลี่ยม: ปริมาตร = 1/2 (bh) * ความยาว สี่เหลี่ยมผืนผ้า: [width] …

7
คำอธิบายไบนารีแบบเรียกซ้ำ
คำอธิบายไบนารีแบบเรียกซ้ำ เร็ว ๆ นี้ผมทำผลงานแรกของฉันที่จะ OEIS โดยการขยายและเพิ่มเป็นขแฟ้มลำดับA049064 ลำดับเริ่มต้นด้วย0จากนั้นค่าถัดไปจะได้รับจากการให้ "คำอธิบายไบนารี" ของรายการสุดท้าย ตัวอย่างเช่นเทอมที่สองจะเป็น10เพราะมีหนึ่ง0ในองค์ประกอบแรก ระยะที่สามจะเป็น1110เพราะมีผู้หญิงคนหนึ่งและเป็นหนึ่งใน1 ที่สี่จะเป็น0 11110เพราะมีสาม( 11ในไบนารี!) และหนึ่ง1 0ด้านล่างคือการแยกคำที่ห้าเพื่อทำให้กระบวนการนี้ชัดเจน: > 11110 > 1111 0 (split into groups of each number) > 4*1 1*0 (get count of each number in each group) > 100*1 1*0 (convert counts to binary) > 100110 (join each group …
14 code-golf 

2
การแข่งขันกอล์ฟ GOLF CPU: พาร์ติชั่นอันดับหนึ่ง
ความท้าทายนี้เป็นครั้งแรกของซีรีส์ของน้อยดำเนินงานปัญหาที่ควรจะเขียนในCPU GOLF คุณสามารถหาคนต่อไปที่นี่ พาร์ติชันของตัวเลขเป็นรายการตัวเลขที่เพิ่มขึ้นถึงN พาร์ทิชันที่สำคัญคือรายการของตัวเลขที่สำคัญที่เพิ่มขึ้นเป็นNN N ≥ 2สำหรับความท้าทายนี้คุณจะได้รับจำนวนเต็มเดียว Nคุณจำเป็นต้องสร้างพาร์ทิชันที่สำคัญที่สั้นที่สุดที่เป็นไปได้ หากมีหลายพาร์ติชันที่เป็นไปได้คุณสามารถพิมพ์พาร์ทิชันเหล่านั้นได้ ตัวอย่าง: 9: [2, 7] 12: [5, 7] 95: [89, 3, 3] 337: [337] 1023749: [1023733, 13, 3] 20831531: [20831323, 197, 11] โปรแกรมของคุณควรจะเขียนในGOLF CPU สำหรับอินพุต / เอาต์พุตคุณสามารถใช้ STDIO หรือรีจิสเตอร์ รายการสามารถอยู่ในลำดับใดก็ได้และหากคุณใช้ STDOUT สามารถคั่นด้วยช่องว่างหรือเครื่องหมายจุลภาค (ไม่ต้องใช้วงเล็บ) เห็นได้ชัดว่าการเข้ารหัสฮาร์ดไดร์ฟไม่ได้รับอนุญาตและไม่ได้เข้ารหัสฮาร์ดโค้ดมากกว่าสองสามช่วงแรก นี่เป็นปัญหาการดำเนินงานที่น้อยที่สุดดังนั้นคำตอบที่แก้ตัวอย่างข้างต้นด้วยจำนวนรอบที่น้อยที่สุดจะเป็นผู้ชนะ!

7
ค้นหาดีเทอร์มิแนนต์สูงสุดสำหรับเมทริกซ์ Toeplitz แต่ละขนาด
สำหรับค่าคงที่ n ให้พิจารณาเมทริกซ์ n โดย n Toeplitzด้วยรายการที่เป็น 0 หรือ 1 จุดมุ่งหมายคือการค้นหาดีเทอร์มิแนนต์สูงสุดสำหรับเมทริกซ์ Toeplitz ทั้งหมด งาน สำหรับแต่ละnจาก 1 ขึ้นไปเอาท์พุทดีเทอร์มิแนนต์สูงสุดสำหรับเมทริกซ์ Toeplitz ทั้งหมดด้วยรายการซึ่งเป็น 0 หรือ 1 ควรมีเอาต์พุตหนึ่งตัวต่อnซึ่งควรมีดีเทอร์มิแนนต์สูงสุดและเมทริกซ์ตัวอย่างที่มาถึง คะแนน คะแนนของคุณใหญ่ที่สุดnรหัสของคุณไปถึงภายใน 2 นาทีบนคอมพิวเตอร์ของฉัน ชี้แจงน้อยรหัสของคุณสามารถทำงานเป็นเวลา 2 นาทีในทั้งหมดนี้ไม่ได้ 2 nนาทีต่อ เบรกเกอร์ หากสองรายการได้รับnคะแนนเท่ากันผลงานที่ชนะจะเป็นรายการที่ได้คะแนนสูงสุดnในเวลาอันสั้นบนเครื่องของฉัน หากผลงานที่ดีที่สุดสองรายการเท่ากันในเกณฑ์นี้เช่นกันผู้ชนะจะได้รับคำตอบก่อน ภาษาและห้องสมุด คุณสามารถใช้ภาษาและไลบรารี่ที่คุณต้องการได้ฟรี ฉันจะต้องสามารถเรียกใช้รหัสของคุณดังนั้นโปรดรวมคำอธิบายแบบเต็มสำหรับวิธีการเรียกใช้ / รวบรวมรหัสของคุณใน linux ถ้าเป็นไปได้ทั้งหมด My Machineเวลาของฉันจะทำงานบนเครื่องของฉัน นี่คือการติดตั้ง Ubuntu มาตรฐานบนโปรเซสเซอร์ AMD FX-8350 Eight-Core …

3
โพลีโอมิโนเส้นรอบวงสูงสุด
นี่คือรหัสกอล์ฟ ผู้ชนะคือรหัสที่ถูกต้องและมีจำนวนไบต์น้อยที่สุด ท้าทาย รับอินพุตMและN , ความกว้างและความสูงของตารางสี่เหลี่ยมของสี่เหลี่ยม, ส่งออกรูปหลายเหลี่ยมที่ตรงตามต่อไปนี้: ขอบรูปหลายเหลี่ยมสร้างขึ้นจากขอบสี่เหลี่ยมเท่านั้น:ไม่มีขอบทแยงมุม - ทั้งหมดเป็นแนวตั้งหรือแนวนอน รูปหลายเหลี่ยมไม่มีรู:สี่เหลี่ยมด้านนอกของรูปหลายเหลี่ยมนั้นอาจถึงได้โดยขั้นตอนมุมฉากบนสี่เหลี่ยมนอกรูปหลายเหลี่ยมเริ่มจากสี่เหลี่ยมนอกรูปหลายเหลี่ยมบนขอบเขตด้านนอกของรูปสี่เหลี่ยมผืนผ้า รูปหลายเหลี่ยมนั้นไม่มีจุดตัดเอง:จากการที่ขอบจตุรัสพบกันที่จุดยอดไม่เกิน 2 อาจเป็นส่วนหนึ่งของเส้นรอบวงรูปหลายเหลี่ยม รูปหลายเหลี่ยมถูกเชื่อมต่อ:สี่เหลี่ยมใด ๆ ในรูปหลายเหลี่ยมจะต้องสามารถเข้าถึงได้จากตารางอื่น ๆ ในรูปหลายเหลี่ยมผ่านขั้นตอนมุมฉากที่อยู่ภายในรูปหลายเหลี่ยม รูปหลายเหลี่ยมมีขอบเขตสูงสุดที่เป็นไปได้:ตามสูตรที่แสดงด้านล่าง รหัสของคุณจะต้องใช้กับMและN ได้ตั้งแต่ 1 ถึง 255 สูตรสำหรับปริมณฑลสูงสุด ความท้าทายที่นี่คือการค้นหาความสามารถในการเล่นกอล์ฟของรูปหลายเหลี่ยมที่มีขอบเขตสูงสุด ขอบเขตสูงสุดนั้นถูกกำหนดโดยสูตรเสมอ: สิ่งนี้เป็นจริงเพราะในขอบเขตสูงสุดทุกจุดสุดยอดของรูปสี่เหลี่ยมจัตุรัสจะต้องอยู่บนเส้นรอบวง สำหรับจำนวนจุดยอดที่เป็นไปไม่ได้นี้เป็นไปไม่ได้และสิ่งที่ดีที่สุดที่สามารถบรรลุได้คือจุดยอดหนึ่งที่น้อยกว่า (เนื่องจากเส้นรอบวงอยู่เสมอ) เอาท์พุต แสดงรูปร่างเป็นสตริงของอักขระที่คั่นด้วยบรรทัดใหม่ ( แถวNของอักขระM ทั้งหมด ) ที่นี่ฉันกำลังใช้พื้นที่สำหรับสี่เหลี่ยมนอกรูปหลายเหลี่ยมและ '#' สำหรับกำลังสองภายในรูปหลายเหลี่ยม แต่คุณสามารถใช้อักขระสองตัวที่แตกต่างกันได้โดยให้ความหมายสอดคล้องกับอินพุตทั้งหมด คุณสามารถรวมบรรทัดใหม่ชั้นนำได้หนึ่งรายการและขึ้นบรรทัดใหม่ต่อท้ายหนึ่งรายการ หากคุณต้องการคุณสามารถส่งออกแถวM ที่มีอักขระทั้งหมดNตัวและคุณอาจเลือกMเอาต์พุต by Nสำหรับอินพุตบางตัวและเอาต์พุตNโดยMสำหรับผู้อื่น ตัวอย่าง ไม่ถูกต้องเนื่องจากมีรู: ### # …
14 code-golf  grid 

2
การระเบิดบนกระดานหมากรุก
Atomic Chessเป็นเกมหมากรุกที่สนุกมากซึ่งการจับทุกครั้งทำให้เกิด "การระเบิด", การทำลายชิ้นส่วนที่ถูกจับ, ชิ้นส่วนที่จับได้และไม่ได้จำนำในรัศมี 1 สแควร์ เป้าหมายของการท้าทายนี้ไม่ใช่เพื่อเล่นเกมหมากรุกปรมาณูทั้งเกม แต่เพื่อจำลองสิ่งที่เกิดขึ้นเมื่อมีการเคลื่อนไหวเกิดขึ้น ข้อจำกัดความรับผิดชอบ: ไม่รวมเอฟเฟกต์เสียงการระเบิด อินพุต ตำแหน่งของคณะกรรมการจะได้รับในForsyth-Edwards Notation (หรือที่รู้จักกันทั่วไปว่า FEN) แต่มีเพียงฟิลด์แรกเท่านั้น ตัวอย่างเช่นอินพุตของ: rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR แสดงถึงตำแหน่งเริ่มต้น: สิ่งนี้จะต้องดำเนินการเป็นสตริงหรือเทียบเท่าภาษาของคุณ มันรับประกันว่าถูกต้อง; ตัวอย่างเช่นคุณไม่ต้องสนใจว่ามีสิบราชาหรือไม่มีกษัตริย์เลย นอกจากนี้คุณยังจะได้รับการย้ายที่คุณจะต้องจำลองซึ่งจะแสดงเป็นชื่อตารางสองชื่อ: สี่เหลี่ยมที่ชิ้นส่วนที่จะย้ายคือและสี่เหลี่ยมก็จะย้ายไป ตัวอย่างเช่นการขยับตัวรับจำนำของกษัตริย์สองช่องไปข้างหน้าในภาพด้านบนจะแสดงเป็น: e2e4 สิ่งนี้จะต้องถูกนำมาเป็นสตริง ย้ายจะเป็นที่ถูกต้องและคุณไม่จำเป็นต้องสนับสนุนcastling คุณจำเป็นต้องรองรับผู้ที่เดินทางไปไหนมาไหนซึ่งจะอธิบายรายละเอียดเพิ่มเติมในส่วนถัดไป เอาท์พุต ผลลัพธ์ของโปรแกรมของคุณควรอยู่ในรูปแบบบางส่วน -FEN เหมือนกับอินพุตโดยมีการย้ายที่ระบุ (และชิ้นส่วนใด ๆ จะระเบิดหากจำเป็น) กฎที่แน่นอนสำหรับการระเบิดคือ - เมื่อจับชิ้นส่วน: เอาชิ้นส่วนที่ถูกจับ (ซึ่งมักจะเป็นชิ้นส่วนในตารางที่สองชื่อในการป้อนข้อมูลยกเว้นเมื่อจับเป็นการกิน ) นำชิ้นส่วนที่กำลังจับภาพออก (ซึ่งจะเป็นชิ้นส่วนของสี่เหลี่ยมจัตุรัสแรกที่มีชื่ออยู่ในอินพุต) ลบทุกชิ้นนั่นคือ: ตั้งอยู่บนหนึ่งใน 8 สี่เหลี่ยมรอบหนึ่งที่จับภาพที่เกิดขึ้น (สำหรับการกินนี้เป็นตารางที่จำนำจับจะอยู่ถ้ามันไม่ระเบิด) …
14 code-golf  chess 

14
ใช้ FuzzyFinder
แรงบันดาลใจจากการเชื่อมโยงนี้ผมพบว่าเมื่อ Reddit FuzzyFinder เป็นคุณสมบัติของเครื่องมือแก้ไขข้อความหลายตัว เมื่อคุณเริ่มพิมพ์เส้นทางของไฟล์SFuzzyFinder จะเริ่มต้นและแสดงไฟล์ทั้งหมดในไดเรกทอรีปัจจุบันที่มีสตริงที่คุณป้อนเรียงลำดับตามตำแหน่งของSไฟล์ งานของคุณคือการใช้เครื่องมือค้นหาฟัซซี่ ควรเป็นโปรแกรมหรือฟังก์ชั่นที่รับ (ผ่าน stdin, ฟังก์ชั่นอาร์กิวเมนต์หรือบรรทัดคำสั่ง) สตริงSและรายการของสตริงL, จัดรูปแบบตามที่คุณต้องการและส่งกลับหรือพิมพ์ผลลัพธ์ของการเรียกใช้โปรแกรมค้นหาฟัซซี่ การค้นหาควรคำนึงถึงขนาดตัวพิมพ์ ผลลัพธ์ที่Sอยู่ในตำแหน่งเดียวกันในหลาย ๆ สายอาจจะเรียงลำดับตามที่คุณต้องการ ตัวอย่าง: Input: mig, [imig, mig, migd, do, Mig] Output: [mig, migd, imig] OR [migd, mig, imig] นี่คือรหัสกอล์ฟดังนั้นทางออกที่สั้นที่สุดชนะ
14 code-golf 

4
บรรจุไม้ชิ้น
มีไม้สองชิ้น ทั้งสองประกอบด้วยตัวตรงและบล็อคเสริมบางส่วนใต้ร่างกาย ตัวอย่างชิ้นส่วนที่มีบล็อกเพิ่มเติมที่ตำแหน่ง (0 ที่จัดทำดัชนีไว้) ตำแหน่ง 0,4,7,9,10: XXXXXXXXXXX X X X XX ชิ้นส่วนสามารถแสดงเป็น01ลำดับเลขฐานสองที่มีiอักขระ th แสดงว่ามีบล็อกที่iตำแหน่ง th 10001001011ตัวอย่างด้านบนสามารถแสดงเป็น เราสามารถรวมสองชิ้นเข้าด้วยกันโดยการพลิกชิ้นที่สองในแนวตั้ง (และอาจพลิกในแนวนอนด้วย) หลังจากการพลิกเราสามารถหาการจัดตำแหน่งที่สามารถรวมสองชิ้นเข้าด้วยกันเพื่อให้มีความสูง 3 Two example pieces: XXXXXXXXXXX XXXXXXXX X X X XX XXX Second piece flipped vertically and horizontally: XXXXXXXXXXX X X X XX XXX XXXXXXXX Pieces put together: XXXXXXXXXXX XXXXX X …

5
กำหนดขนาดของสี่เหลี่ยมผืนผ้าที่หมุน
ตัวอย่างสแต็กนี้วาดสี่เหลี่ยมสีขาวที่มีนามแฝงบนพื้นหลังสีดำที่กำหนดพารามิเตอร์สำหรับขนาดตำแหน่งมุมและขนาดกริด: <style>html *{font-family:Consolas,monospace}input{width:24pt;text-align:right;padding:1px}canvas{border:1px solid gray}</style><p>grid w:<input id='gw' type='text' value='60'> grid h:<input id='gh' type='text' value='34'> w:<input id='w' type='text' value='40'> h:<input id='h' type='text' value='24'> x:<input id='x' type='text' value='0'> y:<input id='y' type='text' value='0'> θ:<input id='t' type='text' value='12'>° <button type='button' onclick='go()'>Go</button></p>Image<br><canvas id='c'>Canvas not supported</canvas><br>Text<br><textarea id='o' rows='36' cols='128'></textarea><script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script><script>function toCart(t,a,n,r){return{x:t-n/2,y:r/2-a}}function vtx(t,a,n){return{x:n.x+t*Math.cos(a),y:n.y+t*Math.sin(a)}}function sub(t,a){return{x:t.x-a.x,y:t.y-a.y}}function dot(t,a){return t.x*a.x+t.y*a.y}function inRect(t,a,n,r){var …

1
กำหนดเวลาหยุด 4 ทิศทาง
มีรถยนต์หลายคันเรียงกันที่ป้ายหยุดรถ 4 ทิศทางที่รอดำเนินการต่อ ทุกคนสับสนว่าใครจะไปต่อใครจะไปทางไหน ฯลฯ เห็นได้ชัดว่าไม่ดี งานของคุณคือกำหนดเวลาการรับส่งข้อมูลที่ป้ายหยุดในแบบที่ดีที่สุด คุณได้รับเป็นคำขอเข้าสาย 4 ของคำขอเลี้ยวหนึ่งอันสำหรับแต่ละทิศทางของทั้งสี่ทิศทาง แต่ละคำขอมีทั้งLซ้ายขวาSหรือRขวา LLSLRLS SSSRRSRLLR LLRLSR RRRLLLL แถวแรกคือแถวที่ทางเข้าทิศเหนือถึงสี่แยก รถคันแรกในแนวต้องการเลี้ยวซ้าย (นั่นคือออกจากตะวันออก) แถวถัดมาเป็นทางเข้าตะวันออก, ใต้และตะวันตก ดังนั้นรถคันแรกที่มาจากทางตะวันตกต้องการที่จะออกจากทางทิศใต้ การจราจรเคลื่อนที่เป็นขั้นตอน ในแต่ละขั้นตอนคุณต้องเลือกชุดย่อยของรถยนต์ที่ส่วนหัวของเส้นเพื่อดำเนินการต่อ รถยนต์ที่เลือกต้องไม่รบกวนซึ่งกันและกัน รถสองคันรบกวนถ้าพวกเขาออกจากทิศทางเดียวกันหรือถ้าพวกเขาต้องข้ามเส้นทางของกันและกัน (กำหนดกฎการขับขี่ทางขวามือมาตรฐาน) ดังนั้นรถสองคันที่ตรงกันข้ามซึ่งทั้งคู่ปรารถนาจะไปทางตรงอาจไปในขั้นตอนเดียวกัน ดังนั้นรถ 4 คันทุกคนอาจต้องการเลี้ยวขวา รถสองฝั่งตรงข้ามทั้งคู่สามารถเลี้ยวซ้ายพร้อมกันได้ งานของคุณคือการจัดตารางทางแยกในขั้นตอนต่อเนื่องขั้นต่ำ สำหรับแต่ละขั้นตอนให้ส่งสัญญาณออกตามทิศทางเข็มทิศของรถยนต์ที่เข้ามา สำหรับตัวอย่างข้างต้นกำหนดการน้อยที่สุดคือ 14 ขั้นตอน กำหนดการขั้นต่ำหนึ่งอย่างคือ: N [L from North] E [S from East] E [S from East] E …
14 code-golf 

9
KOTH อสมมาตร: จับแมว (Cat Thread)
KOTH อสมมาตร: จับแมว UPDATE : ไฟล์ gist-update แล้ว (รวมถึง submisisons ใหม่) เนื่องจาก Controller.java ไม่พบข้อยกเว้น (ข้อผิดพลาดเท่านั้น) ตอนนี้มันตรวจจับข้อผิดพลาดและข้อยกเว้นแล้วพิมพ์ออกมา ความท้าทายนี้ประกอบด้วยสองหัวข้อนี้เป็นหัวข้อแมวด้ายจับที่สามารถพบได้ที่นี่ ควบคุมสามารถดาวน์โหลดได้ที่นี่ นี่คือความไม่สมดุล KOTH: การส่งแต่ละคนเป็นทั้งแมวหรือจับ มีเกมระหว่างแมวและแมวจับแต่ละคู่ แมวและมือปราบมารมีอันดับแยกกัน สิ่งที่จับ มีแมวอยู่บนตะแกรงหกเหลี่ยม งานของคุณคือจับมันให้เร็วที่สุด ทุกเทิร์นคุณสามารถวางถังน้ำบนเซลล์กริดเดียวเพื่อป้องกันไม่ให้แมวไปที่นั่น แต่แมวไม่ได้เป็นใบ้ (และอาจ) เป็นใบ้และเมื่อใดก็ตามที่คุณวางถังแมวจะย้ายไปที่เซลล์กริดอื่น เนื่องจากกริดนั้นเป็นรูปหกเหลี่ยมแมวจึงสามารถไปได้ 6 ทิศทาง เป้าหมายของคุณคือล้อมรอบแมวด้วยที่เก็บน้ำได้เร็วขึ้นดีกว่า แมว คุณรู้ว่าผู้จับต้องการจับคุณโดยการวางถังน้ำรอบตัวคุณ แน่นอนว่าคุณพยายามหลบเลี่ยง แต่ในขณะที่คุณเป็นแมวขี้เกียจ (ในฐานะที่เป็นแมว) คุณต้องก้าวไปทีละขั้น ซึ่งหมายความว่าคุณจะไม่สามารถอยู่ในที่เดียวกันกับคุณได้ แต่คุณต้องย้ายไปยังหนึ่งในหกจุดโดยรอบ เมื่อใดก็ตามที่คุณเห็นว่าผู้จับวางถังน้ำใหม่คุณจะไปที่เซลล์อื่น แน่นอนคุณพยายามหลบเลี่ยงให้นานที่สุด ตะแกรง กริดนั้นเป็นรูปหกเหลี่ยม แต่เนื่องจากเราไม่มีโครงสร้างข้อมูลแบบหกเหลี่ยมเราจะใช้11 x 11อาร์เรย์ 2d …

1
เชื่อมต่อช่องว่างด้วยชิ้น Tetris
คุณควรเขียนโปรแกรมหรือฟังก์ชั่นที่กำหนดรายการบล็อกเตตริสเป็นเอาท์พุทอินพุตหรือคืนช่องว่างที่ใหญ่ที่สุดระหว่างสองจุดในระดับความสูงเดียวกันซึ่งชิ้นส่วนสามารถเชื่อมต่อได้ ชิ้นเตตริส 7 ประเภทดังต่อไปนี้: เราจะอ้างถึงชิ้นส่วนเหล่านี้ด้วยตัวอักษร I, J, L, O, S, T และ Z ตามลำดับโดยอ้างอิงถึงรูปร่างของพวกเขา คุณสามารถหมุนชิ้นส่วนได้ แต่ไม่สามารถสะท้อนได้เหมือนในเกม Tetris งานของเราคือการสร้างพื้นที่เชื่อมต่อ orthogonally (ด้านที่เชื่อมต่อกับด้านข้าง) จากชิ้นส่วนที่กำหนด พื้นที่นี้ควรเชื่อมต่อ (เป็นมุมฉาก) สองหน่วยสี่เหลี่ยมซึ่งมีความสูงเท่ากัน เราควรหาช่องว่างที่ใหญ่ที่สุดที่เป็นไปได้ระหว่างสองช่องที่เราสามารถเชื่อมได้ ตัวอย่างรายละเอียด ด้วยชิ้น L เราสามารถเชื่อมต่อช่องว่าง 3 L XLLLX ด้วยชิ้นส่วน S เราสามารถเชื่อมต่อช่องว่าง 2 SS XSSX ด้วยชิ้นส่วน S, S, O เราสามารถเชื่อมต่อช่องว่าง 7 (โปรดทราบว่าเราไม่สามารถเชื่อมต่อช่องว่าง 8) S XSSOO SSX SOOSS …
14 code-golf  tetris 

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

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