
มาสรุปกันก่อน: เกมนี้แตกต่างจากถนน Huarong ที่มีน้ำหนักตามความยาว หัวใจสำคัญของการแก้ปัญหาที่ดีที่สุดคือการใช้จำนวนขั้นตอนที่สั้นที่สุดเพื่อเปิดช่องให้สกายลาร์คผ่านไปเป็นเส้นตรง แทนที่จะจัดเรียงบล็อกไม้ทั้งหมดให้เรียบร้อย ฉันใช้เวลาช่วงบ่ายทดสอบ 30 ด่านแรก รื้อตรรกะเชิงตัวเลข และแบ่งปันกับเพื่อน ๆ ที่ต้องการไปถึงสามดาว
ขั้นแรก ให้ชี้แจงกลไกที่ซ่อนอยู่: ความยาวของบล็อกไม้แต่ละบล็อกจะกำหนด "ทิศทางที่มีประสิทธิภาพ" ที่จะเคลื่อนที่ได้ บล็อกไม้ที่มีความยาว 2 สามารถเลื่อนไปตามแกนยาวได้เท่านั้น เช่นเดียวกับบล็อกที่มีความยาว 3 แต่บล็อกที่มีความยาว 1 (เช่น ตัวสกายลาร์กเอง) สามารถเคลื่อนที่ไปทางด้านข้างหรือแนวตั้งได้ ซึ่งหมายความว่าการรวมกันของสิ่งกีดขวางในแต่ละระดับจะเป็นเมทริกซ์ข้อจำกัด ยิ่งบล็อกไม้ยาว ระดับอิสระในการดำเนินการของคุณก็จะยิ่งต่ำลง แต่บล็อกไม้ยาวก็เป็นกุญแจสำคัญในการสร้างช่องว่างขนาดใหญ่เช่นกัน
ฉันดึงชุดตัวอย่างข้อมูลจากบันทึกระดับ โดยใช้ตัวอย่างระดับ 7: พิกัดเริ่มต้นของ Skylark คือ (2,3) ทางออกอยู่ที่ (4,3) มีบันทึกแนวนอนสองรายการมีความยาว 3 และบันทึกแนวตั้งที่มีความยาว 2 ตรงกลาง จำนวนขั้นตอนขั้นต่ำตามทฤษฎีโดยใช้ BFS (Breadth First Search) คือ 12 ขั้นตอน แต่มือใหม่ส่วนใหญ่จะไปถึงมากกว่า 18 ขั้นตอน เหตุผลก็คือพวกเขาย้ายท่อนไม้สั้นๆ ก่อน พยายามปรับในพื้นที่เล็กๆ แต่สุดท้ายกลับติดขัด
กลยุทธ์ที่เหมาะสมที่สุดแบ่งออกเป็นสามขั้นตอน:
ขั้นตอนแรกคือการระบุ "บล็อกคอขวด" เป็นชิ้นส่วนที่อยู่ตรงหน้าทางออกของสกายลาร์ก ไม่ว่ามันจะมีความยาวเท่าใด ให้ดูก่อนว่าสามารถเคลื่อนย้ายในแนวตั้งหรือแนวนอนได้หรือไม่ หากชิ้นส่วนนั้นเป็นแถบแนวนอนที่มีความยาว 3 และมีพื้นที่ว่างอยู่ข้างๆ คุณจะต้องดันมันไปในขั้นตอนเดียวเท่านั้น และสกายลาร์กก็สามารถเคลื่อนที่ไปข้างหน้าต่อไปได้
ขั้นตอนที่สองคือการคำนวณ “ค่าใช้จ่ายในการขนย้าย” การย้ายบล็อกไม้แต่ละบล็อกหนึ่งช่องนับเป็นหนึ่งก้าว แต่หมายเหตุ: หลังจากย้ายบล็อกไม้ยาวแล้ว อาจเหลือช่องว่างสองหรือสามช่องติดต่อกัน ซึ่งคุ้มค่ากว่าการเคลื่อนย้ายบล็อกไม้สั้นสองบล็อก ตัวอย่างเช่น หากบล็อกไม้ที่มีความยาว 3 ถูกย้ายไปทางขวา 1 ช่อง ช่องสี่เหลี่ยม 3 ช่องจะถูกเคลียร์ ซึ่งเทียบเท่ากับการเปลี่ยน 1 ขั้นเป็นช่องขวา 3 ช่อง ในขณะที่ย้ายบล็อกที่มีความยาว 1 สามารถเคลียร์ได้เพียง 1 ช่องเท่านั้น และประสิทธิภาพของขั้นตอนคือ 1:1 ดังนั้นควรย้ายบล็อกไม้ยาวๆ ก่อน แม้จะต้องเดินทางไกลแต่ก็คุ้มค่า
ขั้นตอนที่สามคือการวางแผน "แผนผังเส้นทางที่สั้นที่สุด" ที่จริงแล้ว ขนาดกระดานของแต่ละระดับของเกมนี้มีขนาดไม่เกิน 6x6 ใช้ปากกาวาดบล็อกไม้และพื้นที่ว่างบนกระดาษ จากนั้นคุณสามารถอนุมานได้ด้วยตนเอง นิสัยของฉันคือการจัดเรียงบล็อกไม้ทั้งหมดตามความยาวก่อน จากนั้นจึงทำงานถอยหลังจากทางออก โดยสมมติว่าสกายลาร์กมาถึงที่ว่างก่อนทางออก บล็อกไม้เดียวที่กั้นอยู่ด้านหน้าบล็อกนั้นจะต้องขยับห่างออกไปสองสามก้าว จำนวนขั้นตอนการย้อนกลับบวกจำนวนขั้นตอนการเริ่มต้นไปข้างหน้าถือเป็นขีดจำกัดล่างตามทฤษฎี ข้อผิดพลาดในการวัดจริงจะต้องไม่เกิน 2 ขั้นตอน
สุดท้ายนี้ เรามาพูดถึงความเข้าใจผิดที่พบบ่อย: อย่าดันบล็อกไม้เข้ามุมเพียงเพื่อให้ดูดีขึ้น ในการออกแบบหลายระดับ มุมถือเป็นทางตัน และถ้าคุณใส่บล็อกไม้ยาวเข้าไป คุณจะไม่สามารถดึงมันออกมาได้อีก วิธีที่ถูกต้องในการทำเช่นนี้คือวางท่อนไม้ยาวไว้บนรางคู่ขนานด้านข้างใกล้ทางออก เพื่อให้เคลียร์เส้นทางทั้งหมดในคราวเดียว
นอกจากนี้ยังมีรายละเอียดที่ไม่ได้ระบุไว้อย่างเป็นทางการแต่ใช้ได้ในการวัดจริง ตัวสกายลาร์กเองก็ถือเป็นบล็อกที่มีความยาว 1 เช่นกัน มันสามารถก้าวไปในทิศทางตรงกันข้ามเพื่อให้มีที่ว่างสำหรับบล็อกไม้ยาวที่อยู่ด้านหลัง ตัวอย่างเช่น ในระดับ 15 คุณต้องขอให้ Skylark เลื่อนไปทางซ้ายหนึ่งช่อง จากนั้นบันทึกแนวตั้งที่มีความยาว 3 จะสามารถเลื่อนขึ้นไปได้สองช่อง เคลียร์ทางออกทันที และจำนวนขั้นตอนทั้งหมดจะลดลงจาก 21 เป็น 14
หากคุณต้องการได้รับคะแนนสามดาว (จำนวนขั้นตอนต่ำกว่าเกณฑ์ที่กำหนด) ขอแนะนำให้ดำเนินการสามขั้นตอนด้วยตนเองในแต่ละระดับก่อนที่จะทำการเคลื่อนไหว อย่ารีบร้อน. เกมนี้ดูเหมือนง่าย แต่การออกแบบตัวเลขนั้นเข้มงวดมาก ขนาดของบล็อกไม้แต่ละอันติดอยู่ที่ขอบของสารละลายที่ดีที่สุด - อีกหนึ่งก้าวจะเสียหนึ่งดาว
หลังจากที่คุณเชี่ยวชาญแล้ว คุณจะมองเห็นได้ด้วยตาเปล่าว่า "ขั้นตอนที่ซ้ำซ้อน" ในแต่ละระดับอยู่ที่ไหน และความรู้สึกเพลิดเพลินไม่น้อยไปกว่าการเร่งความเร็วในการต่อสู้กับบอส หากคุณไม่เข้าใจระดับใด คุณสามารถโพสต์รูปภาพในพื้นที่แสดงความคิดเห็นได้ แล้วฉันจะช่วยคุณคำนวณลำดับการแก้ปัญหาที่เหมาะสมที่สุด