1 คะแนน โดย GN⁺ 2024-10-27 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • เป็นปริศนาตรรกะแบบ Battleship Solitaire ที่เหมาะกับการเล่นเบา ๆ ระหว่างฟังพอดแคสต์หรือเพลง โดยใช้การอนุมานเพื่อเติมตำแหน่งเรือและช่องน้ำที่ซ่อนอยู่บนกระดาน
  • ตัวเลขของแต่ละแถวและคอลัมน์หมายถึง จำนวนช่องเรือ ที่อยู่ในเส้นนั้น และรายการเรือด้านบนของปริศนาจะบอกขนาดเรือที่ต้องหา
  • เรือห้ามติดกัน และ ห้ามสัมผัสกันในแนวทแยง จึงสามารถใช้การอนุมานแบบกำหนดช่องรอบเรือที่ยืนยันแล้วให้เป็นน้ำได้
  • เมื่อแก้ไม่ออก สามารถใช้กฎอย่าง ตำแหน่งที่เหลือ, ที่เหลือเป็นน้ำ, การจัดการน้ำที่มุม, การล้อมเรือที่เสร็จสมบูรณ์, และการหาตำแหน่งเดียวที่เป็นไปได้ของเรือลำที่ใหญ่ที่สุด
  • เล่นได้บนมือถือ และมีฟังก์ชันคลิกตัวเลขเพื่อเติมน้ำอัตโนมัติ ช่วยลดภาระการกรอกซ้ำ ๆ

วิธีเล่นปริศนา

  • Battleship Solitaire เป็นหนึ่งในเวอร์ชันของ Battleship Logic Puzzle) และยังถูกเรียกว่า Battleship Solitaire, Bimaru, Yubotu
  • บนกระดานมีเรือหลายขนาดซ่อนอยู่ และด้านบนของปริศนาจะแสดง รายการขนาดเรือ ที่ต้องหา
  • ผู้ใช้คลิกแต่ละช่องเพื่อกำหนดว่าตรงไหนเป็นเรือและตรงไหนเป็นน้ำ
  • ตัวเลขของแต่ละแถวและคอลัมน์แสดง จำนวนช่องเรือ ที่อยู่ในแถวหรือคอลัมน์นั้น
  • เมื่อเติมทุกช่องได้อย่างถูกต้อง ก็จะถือว่าแก้ปริศนาเสร็จ
  • เรือห้ามแตะกัน และห้ามสัมผัสกันแม้ในแนวทแยง

กฎการแก้และฟังก์ชันอำนวยความสะดวก

  • กฎตำแหน่งที่เหลือ: ถ้าแถวหนึ่งต้องมีช่องเรือ 3 ช่อง และเหลือช่องที่ยังไม่ใช่น้ำอยู่พอดี 3 ช่อง ช่องทั้ง 3 นั้นจะต้องเป็นเรือทั้งหมด
  • กฎที่เหลือเป็นน้ำ: ถ้าแถวหนึ่งมีจำนวนช่องเรือตามที่ต้องการครบแล้ว ช่องที่เหลือทั้งหมดในแถวนั้นจะเป็นน้ำ
    • แถวที่มีจำนวนช่องเรือที่ต้องการเป็น 0 ก็สามารถทำเป็นน้ำทั้งหมดได้ด้วยวิธีเดียวกัน
    • คลิกตัวเลขเพื่อเติมน้ำอัตโนมัติได้
  • กฎน้ำที่มุม: เนื่องจากเรือห้ามแตะกันในแนวทแยง ช่องมุมทแยงรอบช่องเรือจึงเป็นน้ำได้เสมอ
  • กฎล้อมเรือที่สมบูรณ์: เมื่อทราบตำแหน่งของเรือทั้งลำแล้ว สามารถล้อมรอบเรือลำนั้นด้วยน้ำได้ทั้งหมด
  • กฎตำแหน่งเดียวที่ลงได้: บางครั้งจะเหลือตำแหน่งบนกระดานเพียงจุดเดียวที่เรือลำที่ใหญ่ที่สุดสามารถวางได้
  • เล่นได้บนอุปกรณ์พกพาด้วย

1 ความคิดเห็น

 
GN⁺ 2024-10-27
ความคิดเห็นจาก Hacker News
  • ถ้าชอบปริศนาแบบนี้ Puzzles ของ Simon Tatham ผู้สร้าง PuTTY ก็น่าดูมากเช่นกัน: https://www.chiark.greenend.org.uk/~sgtatham/puzzles/
    เวอร์ชันพอร์ตบน Android และ iPhone ก็ยอดเยี่ยม แถมฟรีโดยไม่มีโฆษณาหรือสิ่งรก ๆ

    • มีที่นี่ด้วย: https://puzz.link/db/
      แต่ต้องไปหากฎของแต่ละปริศนาเอง
  • จุดที่น่าสนใจคือ ปริศนา Battleships เป็น NP-complete: http://www.mountainvistasoft.com/docs/BattleshipsAsDecidabil...
    ยังไม่มีอัลกอริทึมแก้ที่เป็นที่รู้จักซึ่งสามารถแก้ได้ในเวลาแบบพหุนามเมื่อปริศนาหรือขนาดกระดานใหญ่ขึ้น

    • ผมว่า NP-completeness เป็นเรื่องพบได้ทั่วไปมากกว่าจะเป็นข้อยกเว้น Wikipedia ก็มีรายชื่อปัญหา NP-complete อยู่: https://en.wikipedia.org/wiki/List_of_NP-complete_problems#G...
    • นั่นคงเป็นเหตุผลที่ทำให้ปริศนาจำนวนมากดูเหมือนจะแก้ไม่ได้ถ้าไม่ลองผิดลองถูก
  • ดีที่ทำให้เป็นมิตรกับมือถือ เว็บไซต์ที่ผมเล่นประจำแทบใช้งานไม่ได้เลย และแอปที่หาเจอใน Play Store ส่วนใหญ่ก็พยายามขายชุดปริศนา 50 ข้อในราคา $1.99 ทั้งที่ดูไม่ได้ทุ่มแรงอะไรกับการสร้างปริศนาเลย จนเกือบจะทำเวอร์ชัน Android เองอยู่แล้ว
    ถึงขั้นทำเหมือนว่าการให้ปริศนาฟรีสัปดาห์ละ 1 ข้อเป็นความใจกว้างมหาศาล อย่างไรก็ตาม ถ้ามีตั้งค่าสลับพฤติกรรมเริ่มต้นของคลิกซ้าย/ขวาได้ก็คงดี สำหรับปริศนาแบบนี้ ผมชอบวิธี “คลิกช่องที่มี และทำเครื่องหมายช่องที่ไม่มีด้วยคลิกขวา”

    • ทำได้เลย ผมเพิ่งเพิ่ม พารามิเตอร์ URL สำหรับสลับปุ่ม แบบเร็ว ๆ: https://lukerissacher.com/battleships?swapmouse=1
      ถ้ามีคนขอเยอะ ก็คงควรทำเป็นการตั้งค่าที่บันทึกได้
    • ปริศนาบางแบบมีกรณีที่ ต้องใช้แรงทำจริง ๆ และปริศนาแบบนี้จำนวนไม่น้อยไม่ได้สร้างอัตโนมัติ
      ถ้ามีประสบการณ์แก้เยอะ โดยทั่วไปก็แยกปริศนาที่สร้างโดยระบบกับปริศนาที่คนทำได้ ผมก็สงสัยเหมือนกันว่าคุณกำลังมองหาปริศนา Battleship อยู่ หรือมองหา Sudoku ดัดแปลงโดยรวมกันแน่
  • อันนี้เหมือน Nonogram ดัดแปลง ที่สนุกดี ถ้าชอบปริศนานี้ ก็น่าจะชอบ Nonogram ด้วย: https://en.wikipedia.org/wiki/Nonogram

    • Battleships เป็นปริศนาที่ค่อนข้างพบบ่อยในข้อสอบ World Puzzle Championship ถ้าเพิ่งเคยเจอครั้งแรก รายการปริศนา Nikoli ที่กว้างกว่าซึ่งรวบรวมไว้ใน Wikipedia ก็น่าจะสนุกเช่นกัน: https://en.wikipedia.org/wiki/Nikoli_(publisher)#Nikoli_puzz...
      บางส่วนในนั้นถูกทำเป็น SGT puzzles แล้ว: https://www.chiark.greenend.org.uk/~sgtatham/puzzles/
  • แปลกดีที่โดยรวมแล้ว ปริศนา 15x15 รู้สึกง่ายกว่า 6x6 อาจเป็นเพราะ 15x15 ไม่แน่นเท่า เลยไม่ต้องใช้ตรรกะชั้นที่สองมากนัก
    ถ้าจะเสนออย่างหนึ่ง อยากให้คลิกกลางเพื่อทำเครื่องหมายช่องนั้นว่าเป็นตำแหน่งที่เป็นไปได้ได้

  • ใช้เวลาสักพักกว่าจะลืม กฎ Nonogram ที่เผลอคิดว่าตัวเลขด้านข้างหมายถึงเรือที่ต่อเนื่องกันได้ หลังจากนั้นก็สนุกมาก

  • เกมปริศนาที่คล้ายกันคือ Dungeons & Diagrams ใน Last Call BBS ของ Zachtronics โดยต้องกำหนดว่าช่องไหนเป็นกำแพงบนกริด 8x8 เพื่อสร้างดันเจี้ยน และต้องทำตามเงื่อนไขอย่าง “ทางตันต้องมีมอนสเตอร์เสมอ และในทางกลับกันก็เช่นกัน”
    เกมนี้ก็บอกผลรวมที่แต่ละแถวและคอลัมน์ต้องตรงให้ด้วย มีโคลนฟรีด้วย: https://netchips.dev/

  • Bimaru เป็นปริศนาที่สนุก จำได้ว่าเคยอัปแอป Android ที่มีคำว่า Battleships อยู่ใน Store แล้ว Hasbro ยื่นเคลมลิขสิทธิ์ จากนั้น Google ก็ถอดแอปออกจาก Store ทันที
    เลยทำใหม่เป็นเวอร์ชันเว็บ และน่าจะยังดูได้ที่นี่: https://www.kleemans.ch/static/bimaru-web/

  • บน Firefox Mobile ของ Android ใช้งานไม่ได้เมื่อเป็น 10x10 ขึ้นไป ดูเหมือนเป้าหมายสำหรับแตะจะเล็กเกินไปจนเลือกไม่ได้
    ตัวเลขแตะให้กลายเป็นสีแดงได้ แต่ดูเหมือนจะเลือกช่องใด ๆ ไม่ได้ ขนาดที่เล็กกว่านี้หรือ Chrome บนอุปกรณ์เดียวกันทำงานได้ดี

    • เป็นบั๊กแปลก ๆ แต่เพิ่งแก้แล้ว รีเฟรชก็ใช้ได้ เป็น ปัญหา CSS ที่เกิดเฉพาะ Firefox บนหน้าจอแคบ ซึ่งทำให้ความสูงขององค์ประกอบช่องกลายเป็น 0 ทั้งที่องค์ประกอบนั้นและองค์ประกอบแม่มีการกำหนดความสูงไว้อย่างชัดเจนแล้ว
      แก้ด้วยการเพิ่มทริกกำหนดตำแหน่งแบบ absolute เข้าไป
  • เมื่อเทียบกับเอนจินที่คล้ายกัน การทำงานของการลาก ค่อนข้างน่ารำคาญ วิธีที่คุ้นเคยคือหลังคลิกแล้วลาก จะทำงานได้เฉพาะในแนวนอนหรือแนวตั้งแถวเดียว และจะทำงานแบบเดียวกันเท่านั้นโดยพิจารณาจากสถานะเดิมและสถานะใหม่
    โดยเฉพาะเมื่อทำเครื่องหมายน้ำเว้นช่องไว้แล้ว ในโหมด “เรือ” การลากควรเติมเฉพาะช่องว่าง ไม่ควรเขียนทับเครื่องหมายน้ำ ควรมี undo ผ่าน Ctrl-Z, U และปุ่มด้วย ถ้าอยากดึงความรู้สึกแบบแก้บนกระดาษกลับมาบางส่วน กล่องข้อความสำหรับจดโน้ตใกล้ ๆ ที่ถูกล้างเมื่อเริ่มปริศนาใหม่ก็น่าจะมีประโยชน์

    • การที่คลิกแล้วลากไม่ถูกจำกัดอยู่ในแถวเดียว จริง ๆ มีประโยชน์เวลาทำเครื่องหมายล้อมรอบเรือที่เสร็จแล้ว สามารถแตะตัวเลขใบ้ด้านนอกเพื่อเติมเครื่องหมายน้ำที่ขาดไปได้ จึงลดความจำเป็นในการลากเส้นตรงยาว ๆ
      แต่ถ้าทำให้เป็นการกระทำแบบเดียวกันเท่านั้นก็น่าจะดีกว่า
    • อยากให้มี undo จริง ๆ บนมือถือ โดยเฉพาะกริดใหญ่ ๆ มักเผลอกดช่องผิดได้ง่าย และเดาได้ยากว่าสถานะก่อนหน้าคืออะไร
    • การคลิกแล้วลากที่ไม่เขียนทับช่องที่ไม่ว่าง เป็นฟีเจอร์ดี ๆ ที่มีในซีรีส์ Picross ของ Nintendo