table#minesweeper

 เอาโค้ดมาแปะแก้อู้เขียนบล็อก(อีกแล้ว)ครับ
อันนี้จริงๆ เขียนไว้ปีกว่าๆ แล้ว (..จนลืมไปแล้วว่าเคยเขียนไว้)
พอมาเจออีกครั้ง ก็เอามาแก้นิดเกลาหน่อย ออกมาเป็นตามที่เห็นข้างต้นครับ
เกร็ดประกอบโค้ด
  • ทำไมผมถึงทำ Minesweeper –
    เพราะใน OS X มันไม่มีติดเครื่องมาให้เล่นเหมือน Windows ไงครับ :D
    จริงๆ ใน (Mac) App Store ก็มีให้โหลดนะ ทั้งฟรีและไม่ฟรี ซึ่งผมลองแบบฟรีมาหลายตัวมาก รู้สึกว่ามันขัดๆ มันดูเป็นการ์ตูน ดูไม่แข็งทื่อเหมือนที่ติด Windows มา (เล่นแล้วรู้สึกว่าฟีลลิ่งไม่ได้) แถมบางอันมีโฆษณาแฝงอีกต่างหาก
    แล้วอยู่ๆ ก็คิดแว้บมาในหัวแว้บนึงว่า เออ.. ถ้าทำขึ้นมาเองมันจะยากมั้ย?
  • ทำไมต้องใช้ HTML (+ CSS + JS + ฯลฯ) –
    คือตอนคิดจะทำ แล้วนึกถึงภาพช่องตารางของเกมแล้ว ผมไม่นึกถึงอย่างอื่นนอกจาก <table>, <tr>, <td> เลยครับ มันคือตารางตรงตัวเลย
    ยิ่งตอนนึกถึง Glyphicons, Font Awesome แล้วยิ่งใช่ใหญ่เลย มันช่างลงตัวเสียเหลือเกิน ตารางพร้อม ไอค่อนพร้อม (..มันมาไม่พร้อมตอนเขียน JS นี่แหละ)
  • สิ่งที่ยากสุด (ในความคิดผม) สำหรับโจทย์นี้ –
    คือตอนที่คลิกเซลล์ที่เป็นพื้นที่ว่าง (ไม่มีระเบิด ไม่มีตัวเลข เป็นเซลล์ว่างๆ) แล้วต้องเปิดกราดออกไปทั้งหมดครับ
    ตรงนี้จริงๆ แนวคิดมันเหมือนจะไม่ค่อยซับซ้อนอะไรนะครับ (traverse ไปเรื่อยๆ เจอก็เปิด ไม่เจอก็เช็คอีกทาง) ..แต่ผลลัพธ์จริงๆ มันมีเรื่อง performance ด้วย
    ถ้านึกไม่ออก ลองเซ็ต Config ข้างล่างตารางเกมเป็น 20×25 และมีระเบิดแค่สัก 3% ดูครับ
    ถ้าคลิกเจอพื้นที่ที่ว่า เกมจะชะงักไปช่วงเวลานึง (กรณีเครื่องของผมประมาณ 0.5 – 1 วินาที) ถึงจะเปิดกราดทุกใบครบ
    ยิ่งถ้ากว้างxยาวของเซลล์มากขึ้น ก็จะยิ่งเห็นปัญหาหนักกว่านี้เข้าไปอีก
    (นี่ที่หน่วงๆ ค้างๆ ไปนิดนึงที่เป็นอยู่ตอนนี้นี่ก็คือแก้อยู่นานเหมือนกันนะ ตอนทำใหม่ๆ ค้างเป็น 7-8 วิฯ เลย)
    ** อันนี้ใครพอจะชี้แนะทางที่ดีกว่าได้ก็โปรดชี้แนะเป็นวิทยาทานผมด้วยนะครับ T_T ผมพยายามสุดแล้วได้แค่นี้

Leave a Reply

Your email address will not be published. Required fields are marked *