ปัญหาเกม Puzzle 16 ช่อง 15 ตัว
เนื่องจากว่า เคยได้ยินน้อง ๆ CP 30 พูดกันเกี่ยวกับปัญหาเนี้ย ผนวกกับว่า blog นี้เพิ่งเกิด เจ้าของเลยอยากหาอะไรมาใส่เล่น วันนี้ก็เลย เอาเรื่องของของเล่นสุดคลาสสิกชิ้นนี้มาฝาก
คาดว่าหลาย ๆ คนคงรู้จักกับของเล่นอันนี้นะครับ
ช่องเขียว ๆ คือช่องว่าง ผู้เล่นสามารถสลับช่องเขียวกับเลขที่อยู่ติดกับมันได้ (เฉพาะใน 4 ทิศทางคือ บน ล่าง ซ้าย ขวา นะ ติดแบบมุมชนกันไม่นับ)
ปัญหาเกิดจากว่า ถ้ามีคนมาเลื่อนมั่ว ๆ แล้วเราจะทำให้มันกลับมาเป็นแบบรูปแรกนี้ได้ยังไง?
เรามาเริ่มจากปัญหาที่เล็ก ๆ ก่อนดีกว่าเนอะ ลองดูซิว่า ถ้ามีแค่ 6 อัน
แล้วเราสนใจแค่ว่า จะทำยังไงให้ 1 กับ 2 อยู่ในที่ที่ต้องการ (หลังจากโดนสลับมั่วไปแล้ว)
จะทำยังไง?
จริง ๆ แล้ว ถ้าแค่เลื่อน 1 ไปให้ถูกที่มันก็ไม่ยากหรอก แล้วจะเอา 2 เข้าไปด้วยได้ไงหละ? เอาเป็นว่า เราทำให้ 1 กับ 2 อยู่ติดกันก่อนละกัน แล้วค่อยคิดต่อ ... นี่ไง ติดกันแล้ว แต่มันยังไม่ได้อ่า
อาวหละ คราวนี้ถึงเวลาคิดละ ทำตามนี้เลย ทุกท่าน! (ลูกศรแสดงทิศทางของช่องว่างนะ)
เห็นมั้ยว่า เราใช้ที่ในการขยับแค่ 6 ช่องก็เอา 1 กับ 2 ไปไว้ในที่ที่ต้องการได้ หยั่งงี้แล้ว 16 ช่องมันจะยากอะไร (ดูรูปข้างล่างนี้จากซ้ายไปขวา แล้วก็บนลงล่างนะ สีเทาคือส่วนที่เราจะไม่ไปยุ่งกับมันอีกแล้ว สีเหลืองคือช่องที่เราต้องการเอาเข้าที่ และสีฟ้าคือบริเวณที่ใช้ในการเอาสีเหลืองไปเข้าที่)
ส่วนช่องที่เหลือตอนสุดท้ายเนี่ย ขยับหมุนนิด ๆ หน่อย ๆ ก็เสร็จแล้ว ชัวร์! (พิสูจน์ได้ด้วยหละ แต่ขอไม่เขียนไว้ตรงนี้ละกัน)
6 Comments:
มาแนวอัลกอริทึมหรอ......
อันนี้น่าสนใจคับ
บรรเจิด ชอบว่ะ วันหลังมา prove อย่างอื่นที่มัน classicๆ อีกดิ เอาอย่าง pacman tetris space invader (จะมีวิธีเหรอวะเนี่ย)
คิดไรได้ก็ช่วยเสนอหน่อยดิ จะได้มีเรื่องเขียน :D
ชอบจังเลยพี่ ผมก็เล่นอยู่พักนึง เข้าใจว่า วนวงเล็กแล้วค่อยวนวงใหญ่ แต่ที่สรุปมานี่เจ๋งมั๊กๆ เข้าใจแจ่มแจ้งเลย ^^
คิดถึงพี่นะ ไม่ได้เจอนานมาก
ชอบครับ
Post a Comment
<< Home