การสร้างเกมเรือกวาดทุ่นระเบิดโดยใช้ Javascript, HTML และ CSS

ลองใช้เครื่องมือของเราเพื่อกำจัดปัญหา

การสร้างเกมเรือกวาดทุ่นระเบิดโดยใช้ Javascript, HTML และ CSS

ในบทความนี้ คุณจะได้เรียนรู้วิธีสร้างเรือกวาดทุ่นระเบิดโดยใช้ JavaScript, HTML และ CSS ฉันยังใช้ jQuery ซึ่งเป็นไลบรารี JavaScript ที่เป็นประโยชน์สำหรับการโต้ตอบกับ html เมื่อใดก็ตามที่คุณเห็นการเรียกใช้ฟังก์ชันด้วยเครื่องหมายดอลลาร์ชั้นนำ นั่นคือ jQuery ในที่ทำงาน

หากคุณต้องการเรียนรู้วิธีสร้างเรือกวาดทุ่นระเบิดด้วย JavaScript ขั้นตอนแรกคือการทำความเข้าใจวิธีการทำงานของเกม มาเริ่มกันเลยดีกว่าและพูดคุยเกี่ยวกับกฎเกณฑ์

กฎของเกม

  1. กระดานกวาดทุ่นระเบิดมีขนาด 10 x 10 ตร.ม. เราสามารถทำให้เป็นขนาดอื่นๆ ได้ เช่น เวอร์ชันคลาสสิกของ Windows แต่เพื่อจุดประสงค์ในการสาธิต เราจะใช้เกมเวอร์ชันเริ่มต้นที่เล็กกว่า
  2. กระดานมีจำนวนทุ่นระเบิดแบบสุ่มที่กำหนดไว้ล่วงหน้า ผู้เล่นไม่สามารถมองเห็นได้
  3. เซลล์สามารถอยู่ในสถานะใดสถานะหนึ่งจากสองสถานะ: เปิดหรือปิด การคลิกที่เซลล์จะเปิดขึ้น หากมีเหมืองซ่อนอยู่ เกมจะจบลงด้วยความล้มเหลว หากไม่มีทุ่นระเบิดอยู่ในเซลล์ แต่มีทุ่นระเบิดอยู่ในเซลล์ข้างเคียงอย่างน้อยหนึ่งเซลล์ เซลล์ที่เปิดจะแสดงจำนวนทุ่นระเบิดที่อยู่ใกล้เคียง เมื่อไม่มีการขุดเพื่อนบ้านของเซลล์ เซลล์เหล่านั้นแต่ละเซลล์จะถูกเปิดโดยอัตโนมัติ
  4. คลิกขวาที่เซลล์ทำเครื่องหมายด้วยแฟล็ก ธงระบุว่าผู้เล่นรู้ว่ามีทุ่นระเบิดซ่อนอยู่ที่นั่น
  5. การกดปุ่ม ctrl ค้างไว้ในขณะที่คลิกบนเซลล์ที่เปิดอยู่นั้นมีกฎเกณฑ์ที่ซับซ้อนเล็กน้อย หากจำนวนแฟล็กที่อยู่รอบๆ เซลล์ตรงกับจำนวนทุ่นระเบิดที่อยู่ใกล้เคียง และแต่ละเซลล์ที่ถูกตั้งค่าสถานะมีทุ่นระเบิดอยู่ เซลล์ใกล้เคียงที่ปิดและไม่มีแฟล็กทั้งหมดจะถูกเปิดโดยอัตโนมัติ อย่างไรก็ตาม หากแม้แต่ธงเหล่านี้ถูกวางผิดช่อง เกมก็จะจบลงด้วยความล้มเหลว
  6. ผู้เล่นจะชนะเกมหากเปิดช่องทั้งหมดโดยไม่มีทุ่นระเบิด

โครงสร้างข้อมูล

เซลล์



รหัส JavaScript แสดงถึงเซลล์กวาดทุ่นระเบิด

แต่ละเซลล์เป็นวัตถุที่มีคุณสมบัติหลายประการ:

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

กระดาน

รหัส JavaScript แสดงถึงกระดานเกมของเรา

กระดานของเราคือกลุ่มเซลล์ เราสามารถเป็นตัวแทนของคณะกรรมการของเราได้หลายวิธี ฉันเลือกที่จะเป็นตัวแทนของมันเป็น วัตถุ ด้วยคู่ค่าคีย์ ดังที่เราเห็นก่อนหน้านี้ แต่ละเซลล์มีรหัส กระดานเป็นเพียงแผนที่ระหว่างคีย์เฉพาะเหล่านี้กับเซลล์ที่เกี่ยวข้อง

หลังจากสร้างกระดานแล้ว เราต้องทำภารกิจเพิ่มอีกสองอย่าง: สุ่มมอบหมายทุ่นระเบิดและคำนวณจำนวนทุ่นระเบิดที่อยู่ใกล้เคียง เราจะพูดถึงงานเหล่านี้เพิ่มเติมในหัวข้อถัดไป

อัลกอริทึม

สุ่มกำหนดเหมือง

รหัส JavaScript สำหรับการสุ่มกำหนดทุ่นระเบิดให้กับเซลล์

สิ่งแรกที่เราต้องทำก่อนที่จะเล่นเกมกวาดทุ่นระเบิดคือมอบหมายทุ่นระเบิดให้กับเซลล์ สำหรับสิ่งนี้ ฉันได้สร้างฟังก์ชันที่ใช้บอร์ดและจำนวนทุ่นระเบิดที่ต้องการเป็นพารามิเตอร์

สำหรับทุก ๆ เหมืองที่เราวาง เราจะต้องสร้างแถวและคอลัมน์แบบสุ่ม นอกจากนี้ ชุดค่าผสมของแถวและคอลัมน์เดียวกันไม่ควรปรากฏมากกว่าหนึ่งครั้ง มิฉะนั้นเราจะจบลงด้วยจำนวนทุ่นระเบิดที่น้อยกว่าที่เราต้องการ เราต้องทำซ้ำการสร้างตัวเลขสุ่มหากมีซ้ำปรากฏขึ้น

เมื่อมีการสร้างพิกัดเซลล์แบบสุ่ม เราจะตั้งค่าคุณสมบัติ *ขุด * เป็นจริงของเซลล์ที่เกี่ยวข้องในกระดานของเรา

ฉันได้สร้างฟังก์ชันตัวช่วยเพื่อช่วยในการสร้างตัวเลขสุ่มภายในช่วงที่ต้องการ ดูด้านล่าง:

ฟังก์ชัน Helper สำหรับการสร้างจำนวนเต็มแบบสุ่ม

คำนวณจำนวนเพื่อนบ้านของฉัน

รหัส JavaScript สำหรับคำนวณจำนวนทุ่นระเบิดที่อยู่ใกล้เคียงของแต่ละเซลล์

ทีนี้มาดูสิ่งที่ต้องใช้ในการคำนวณจำนวนทุ่นระเบิดที่อยู่ใกล้เคียงของแต่ละเซลล์ในกระดานของเรา

คุณจะสังเกตเห็นว่าเราเริ่มต้นด้วยการวนซ้ำแต่ละแถวและคอลัมน์บนกระดาน ซึ่งเป็นรูปแบบทั่วไป ซึ่งจะทำให้เราสามารถรันโค้ดเดียวกันในแต่ละเซลล์ของเราได้

ก่อนอื่นเราตรวจสอบว่าแต่ละเซลล์ถูกขุดหรือไม่ ถ้าใช่ ก็ไม่ต้องตรวจสอบจำนวนทุ่นระเบิดที่อยู่ใกล้เคียง ท้ายที่สุดถ้าผู้เล่นคลิกที่มัน เขา/เธอจะแพ้เกม!

หากเซลล์นั้นไม่ได้ถูกขุด เราต้องดูว่ามีทุ่นระเบิดอยู่กี่ตัวที่อยู่รอบๆ สิ่งแรกที่เราทำคือเรียกฟังก์ชันตัวช่วย **getNeighbors ** ซึ่งส่งคืนรายการรหัสของเซลล์ข้างเคียง จากนั้นเราจะวนรอบรายการนี้ เพิ่มจำนวนทุ่นระเบิด และอัปเดตคุณสมบัติ *neighborMineCount * ของเซลล์อย่างเหมาะสม

คุณจะไม่เป็นเพื่อนบ้านของฉัน?

มาดูกันดีกว่าว่าฟังก์ชัน **getNeighbors ** จะถูกใช้งานหลายครั้งในโค้ด ฉันได้กล่าวไว้ก่อนหน้านี้ว่าตัวเลือกการออกแบบบางอย่างของฉันจะไม่ปรับขนาดเป็นบอร์ดที่ใหญ่ขึ้น ตอนนี้เป็นเวลาที่ดีที่จะลองค้นหาพวกเขา

รหัส JavaScript สำหรับรับรหัสที่อยู่ใกล้เคียงทั้งหมดของเซลล์กวาดทุ่นระเบิด

ฟังก์ชันใช้รหัสเซลล์เป็นพารามิเตอร์ จากนั้นเราแบ่งมันออกเป็นสองส่วนทันทีเพื่อให้เรามีตัวแปรสำหรับแถวและคอลัมน์ เราใช้ฟังก์ชัน **parseInt ** ซึ่งสร้างในภาษา JavaScript เพื่อเปลี่ยนตัวแปรเหล่านี้เป็นจำนวนเต็ม ตอนนี้เราสามารถดำเนินการทางคณิตศาสตร์กับพวกมันได้

ต่อไป เราใช้แถวและคอลัมน์เพื่อคำนวณรหัสที่เป็นไปได้ของแต่ละเซลล์ที่อยู่ใกล้เคียงและพุชลงในรายการ รายการของเราควรมีแปดรหัสก่อนที่จะทำความสะอาดเพื่อจัดการกับสถานการณ์พิเศษ

เซลล์กวาดทุ่นระเบิดและเพื่อนบ้าน

แม้ว่าสิ่งนี้จะดีสำหรับกรณีทั่วไป แต่ก็มีบางกรณีพิเศษที่เราจำเป็นต้องกังวล กล่าวคือเซลล์ตามแนวชายแดนของกระดานเกมของเรา เซลล์เหล่านี้จะมีเพื่อนบ้านน้อยกว่าแปดคน

เพื่อดูแลสิ่งนี้ เราวนซ้ำรายการรหัสเพื่อนบ้านและลบรหัสใด ๆ ที่มีความยาวมากกว่า 2 เพื่อนบ้านที่ไม่ถูกต้องทั้งหมดอาจเป็น -1 หรือ 10 ดังนั้นการตรวจสอบเพียงเล็กน้อยนี้จึงแก้ปัญหาได้อย่างดี

นอกจากนี้เรายังต้องลดตัวแปรดัชนีของเราทุกครั้งที่เราลบ id ออกจากรายการของเราเพื่อให้ซิงค์กัน

มันขุด?

เอาล่ะ เรามีฟังก์ชันสุดท้ายที่จะพูดถึงในส่วนนี้: isMined .

ฟังก์ชัน JavaScript ที่ตรวจสอบว่าเซลล์ถูกขุดหรือไม่

ฟังก์ชัน **isMined ** ค่อนข้างเรียบง่าย มันแค่ตรวจสอบว่าเซลล์ถูกขุดหรือไม่ ฟังก์ชันจะคืนค่า 1 หากขุดได้ และเป็น 0 หากไม่ได้ขุด คุณลักษณะนี้ช่วยให้เราสามารถสรุปค่าที่ส่งกลับของฟังก์ชันได้ในขณะที่เราเรียกมันซ้ำๆ ในลูป

นั่นเป็นการสรุปอัลกอริธึมสำหรับการตั้งค่ากระดานเกมเรือกวาดทุ่นระเบิดของเรา ไปที่การเล่นเกมจริงกัน

การเปิดเซลล์

โค้ด JavaScript ที่ทำงานเมื่อมีการเปิดเซลล์กวาดทุ่นระเบิด

เอาล่ะมาดำดิ่งลงไปในเด็กเลวคนนี้ เราดำเนินการฟังก์ชันนี้ทุกครั้งที่ผู้เล่นคลิกที่เซลล์ มันไม่ มาก ของงาน และยังใช้สิ่งที่เรียกว่า การเรียกซ้ำ หากคุณไม่คุ้นเคยกับแนวคิดนี้ โปรดดูคำจำกัดความด้านล่าง:

การเรียกซ้ำ : ดู การเรียกซ้ำ .

อ่า เรื่องตลกวิทยาการคอมพิวเตอร์ พวกเขามักจะไปได้ดีที่บาร์และร้านกาแฟ คุณควรลองใช้พวกเขากับคนน่ารักที่คุณเคยสนใจ

ยังไงก็ได้ ฟังก์ชันแบบเรียกซ้ำ เป็นเพียงฟังก์ชันที่เรียกตัวเอง ฟังดูเหมือน stack overflow ที่รอให้เกิดขึ้นใช่ไหม? นั่นเป็นเหตุผลที่คุณต้องการกรณีฐานที่ส่งกลับค่าโดยไม่ต้องทำการเรียกซ้ำในครั้งต่อไป

ในที่สุดฟังก์ชันของเราจะหยุดเรียกตัวเองเพราะจะไม่มีเซลล์ที่ต้องเปิดอีกต่อไป เราสามารถเขียนโค้ดนี้โดยไม่เรียกซ้ำ แต่ฉันคิดว่าคุณทุกคนอาจต้องการดูตัวอย่างการใช้งานจริง

จัดการคลิกอธิบาย

ฟังก์ชัน **handleClick ** ใช้ id เซลล์เป็นพารามิเตอร์ เราจำเป็นต้องจัดการกับกรณีที่ผู้เล่นกดปุ่ม ctrl ขณะคลิกที่เซลล์ แต่เราจะพูดถึงเรื่องนี้ในหัวข้อต่อไป

สมมติว่าเกมยังไม่จบและเรากำลังจัดการเหตุการณ์คลิกซ้ายแบบพื้นฐาน เราต้องตรวจสอบสองสามอย่าง เราต้องการละเว้นการคลิกหากผู้เล่นเปิดหรือตั้งค่าสถานะเซลล์แล้ว มันจะน่าผิดหวังสำหรับผู้เล่นหากการคลิกที่ไม่ถูกต้องบนเซลล์ที่ถูกตั้งค่าสถานะแล้วจบเกม

หากทั้งสองไม่เป็นความจริงเราจะดำเนินการต่อ หากมีทุ่นระเบิดอยู่ในเซลล์ เราจำเป็นต้องเริ่มเกมด้วยตรรกะและแสดงทุ่นระเบิดที่ระเบิดเป็นสีแดง มิฉะนั้นเราจะเปิดเซลล์

หากช่องที่เปิดอยู่มีทุ่นระเบิดอยู่รอบๆ เราจะแสดงจำนวนทุ่นระเบิดที่อยู่ใกล้เคียงให้ผู้เล่นเห็นด้วยสีแบบอักษรที่เหมาะสม หากไม่มีเหมืองอยู่รอบๆ เซลล์ ก็ถึงเวลาที่การเรียกซ้ำของเราจะเริ่มต้นขึ้น หลังจากตั้งค่าสีพื้นหลังของเซลล์เป็นสีเทาเข้มขึ้นเล็กน้อย เราจะเรียก **handleClick **ในแต่ละเซลล์ข้างเคียงที่ยังไม่ได้เปิดโดยไม่มี a ธง.

ฟังก์ชั่นตัวช่วย

มาดูฟังก์ชันตัวช่วยที่เราใช้อยู่ในฟังก์ชัน **handleClick ** กัน เราเคยคุยกันแล้วเกี่ยวกับ รับเพื่อนบ้าน ดังนั้นเราจะข้ามอันนั้นไป มาเริ่มกันที่ฟังก์ชัน **การสูญเสีย**

รหัส JavaScript ที่ถูกเรียกเมื่อใดก็ตามที่ผู้เล่นแพ้เกม

เมื่อการสูญเสียเกิดขึ้น เราจะตั้งค่าตัวแปรที่ติดตามสิ่งนี้ จากนั้นแสดงข้อความแจ้งให้ผู้เล่นทราบว่าเกมจบลงแล้ว นอกจากนี้เรายังวนรอบแต่ละเซลล์และแสดงตำแหน่งของทุ่นระเบิด แล้วเราก็หยุดนาฬิกา

ประการที่สอง เรามีฟังก์ชัน **getNumberColor ** ฟังก์ชันนี้มีหน้าที่ในการให้สีที่สอดคล้องกับจำนวนทุ่นระเบิดที่อยู่ใกล้เคียง

รหัส JavaScript ที่ส่งผ่านตัวเลขและส่งคืนสี

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

ตั้งค่าสถานะเซลล์

รหัส JavaScript สำหรับวางแฟล็กบนเซลล์กวาดทุ่นระเบิด

การคลิกขวาที่เซลล์จะเป็นการวางแฟล็กบนเซลล์นั้น หากผู้เล่นคลิกขวาที่ช่องว่างและเรามีทุ่นระเบิดที่ต้องตั้งค่าสถานะเพิ่มเติม เราจะแสดงธงสีแดงบนช่องนั้น ให้อัปเดต ติดธง ทรัพย์สินให้เป็นจริงและลดจำนวนทุ่นระเบิดที่เหลืออยู่ เราทำตรงกันข้ามถ้าเซลล์มีแฟล็กอยู่แล้ว สุดท้าย เราอัปเดต GUI เพื่อแสดงจำนวนทุ่นระเบิดที่เหลืออยู่

การเปิดเซลล์เพื่อนบ้าน

รหัส JavaScript สำหรับจัดการ ctrl + คลิกซ้าย

เราได้ครอบคลุมการกระทำของการเปิดช่องและทำเครื่องหมายด้วยธง ดังนั้นเรามาพูดถึงการกระทำสุดท้ายที่ผู้เล่นสามารถทำได้: การเปิดเซลล์ที่อยู่ใกล้เคียงของเซลล์ที่เปิดอยู่แล้ว ฟังก์ชัน **handleCtrlClick ** มีตรรกะสำหรับสิ่งนี้ ผู้เล่นนี้สามารถดำเนินการนี้ได้โดยกด ctrl ค้างไว้แล้วคลิกซ้ายที่ช่องเปิดที่มีทุ่นระเบิดที่อยู่ใกล้เคียง

สิ่งแรกที่เราทำหลังจากตรวจสอบเงื่อนไขเหล่านั้นคือสร้างรายการเซลล์ที่ถูกตั้งค่าสถานะใกล้เคียง หากจำนวนเซลล์ที่ถูกตั้งค่าสถานะตรงกับจำนวนที่แท้จริงของทุ่นระเบิด เราสามารถดำเนินการต่อได้ มิฉะนั้น เราไม่ทำอะไรเลยและออกจากฟังก์ชัน

หากเราสามารถดำเนินการต่อได้ สิ่งต่อไปที่เราทำคือตรวจสอบว่ามีเซลล์ที่ถูกตั้งค่าสถานะไม่มีเหมืองอยู่หรือไม่ หากเป็นเช่นนี้ เราทราบดีว่าผู้เล่นคาดการณ์ตำแหน่งของทุ่นระเบิดไม่ถูกต้อง และการคลิกที่เซลล์ข้างเคียงที่ไม่ได้ตั้งค่าสถานะทั้งหมดจะจบลงด้วยการสูญเสีย เราจะต้องตั้งค่าตัวแปร *lost * ในพื้นที่และเรียกใช้ฟังก์ชัน **loss ** เราได้พูดถึงฟังก์ชัน **การสูญเสีย** ก่อนหน้านี้ในบทความ

หากผู้เล่นไม่แพ้ เราจะต้องเปิดช่องข้างๆ ที่ไม่ได้ติดธง เราเพียงแค่ต้องวนซ้ำและเรียกใช้ฟังก์ชัน **handleClick ** ในแต่ละอัน อย่างไรก็ตาม ก่อนอื่นเราต้องตั้งค่าตัวแปร *ctrlIsPressed *เป็นเท็จ เพื่อป้องกันการตกลงไปในฟังก์ชัน **handleCtrlClick **โดยไม่ได้ตั้งใจ

เริ่มเกมใหม่

เราวิเคราะห์ JavaScript ที่จำเป็นต่อการสร้างเรือกวาดทุ่นระเบิดเกือบเสร็จแล้ว! ทั้งหมดที่เราเหลือไว้คือขั้นตอนการเริ่มต้นที่จำเป็นสำหรับการเริ่มเกมใหม่

จาวาสคริปต์กับ c++

รหัส JavaScript สำหรับการเริ่มต้นเรือกวาดทุ่นระเบิด

สิ่งแรกที่เราทำคือเริ่มต้นตัวแปรสองสามตัว เราต้องการค่าคงที่ในการจัดเก็บรหัส html สำหรับไอคอนธงและเหมือง เรายังต้องการค่าคงที่ในการจัดเก็บขนาดกระดาน จำนวนทุ่นระเบิด ค่าจับเวลา และจำนวนทุ่นระเบิดที่เหลืออยู่

นอกจากนี้ เราจำเป็นต้องมีตัวแปรสำหรับจัดเก็บหากผู้เล่นกดปุ่ม ctrl เราใช้ jQuery เพื่อเพิ่มตัวจัดการเหตุการณ์ลงในเอกสาร และตัวจัดการเหล่านี้มีหน้าที่ในการตั้งค่าตัวแปร *ctrlIsPressed *

สุดท้าย เราเรียกฟังก์ชัน **เกมใหม่** และผูกฟังก์ชันนี้กับปุ่มเกมใหม่

ฟังก์ชั่นตัวช่วย

รหัส JavaScript สำหรับเริ่มเกมใหม่ของการกวาดทุ่นระเบิด

ฟังก์ชั่น **เกมใหม่** มีหน้าที่ในการรีเซ็ตตัวแปรของเรา เพื่อให้เกมของเราอยู่ในสถานะพร้อมเล่น ซึ่งรวมถึงการรีเซ็ตค่าที่แสดงต่อผู้เล่น การโทร initializeCells และสร้างกระดานสุ่มใหม่ นอกจากนี้ยังรวมถึงการรีเซ็ตนาฬิกา ซึ่งจะอัปเดตทุกวินาที

มาปิดท้ายด้วยการดูกัน initializeCells .

รหัส JavaScript สำหรับแนบตัวจัดการการคลิกกับเซลล์และตรวจสอบเงื่อนไขชัยชนะ

วัตถุประสงค์หลักของฟังก์ชันนี้คือการเพิ่มคุณสมบัติเพิ่มเติมให้กับเซลล์เกม html ของเรา แต่ละเซลล์ต้องการ id ที่เหมาะสมที่เพิ่มเข้ามา เพื่อให้เราสามารถเข้าถึงได้ง่ายจากตรรกะของเกม ทุกเซลล์ยังต้องการภาพพื้นหลังที่ใช้สำหรับเหตุผลด้านโวหาร

นอกจากนี้เรายังต้องแนบตัวจัดการการคลิกกับทุกเซลล์เพื่อให้เราสามารถตรวจจับการคลิกซ้ายและขวาได้

ฟังก์ชั่นที่จัดการการโทรคลิกซ้าย ที่จับคลิก , ผ่าน id ที่เหมาะสม จากนั้นจะตรวจสอบเพื่อดูว่าทุกเซลล์ที่ไม่มีเหมืองเปิดอยู่หรือไม่ หากสิ่งนี้เป็นจริง แสดงว่าผู้เล่นชนะเกม และเราสามารถแสดงความยินดีกับเขา/เธอได้อย่างเหมาะสม

ฟังก์ชันที่จัดการการเรียกคลิกขวา จัดการคลิกขวา , ผ่าน id ที่เหมาะสม จากนั้นมันก็คืนค่าเท็จ ทำให้เมนูบริบทไม่ปรากฏขึ้น ซึ่งเป็นลักษณะการทำงานเริ่มต้นของการคลิกขวาบนหน้าเว็บ คุณคงไม่ต้องการทำสิ่งนี้สำหรับธุรกิจมาตรฐาน แอปพลิเคชัน CRUD แต่สำหรับเรือกวาดทุ่นระเบิดก็เหมาะสม

บทสรุป

ขอแสดงความยินดีกับการเรียนรู้วิธีการสร้างเรือกวาดทุ่นระเบิดด้วย JavaScript! นั่นเป็นรหัสจำนวนมาก แต่หวังว่าจะสมเหตุสมผลหลังจากแยกออกเป็นโมดูลเช่นนี้ เราสามารถปรับปรุงความสามารถในการใช้ซ้ำ การขยาย และความสามารถในการอ่านของโปรแกรมนี้ได้มากขึ้นอย่างแน่นอน เราไม่ได้ครอบคลุมถึงรายละเอียด HTML หรือ CSS หากคุณมีคำถามหรือเห็นวิธีปรับปรุงโค้ด เรายินดีรับฟังความคิดเห็นจากคุณ!

#javascript #html #css #jquery #game-development

ดูสิ่งนี้ด้วย: