จัดทำโดย นาย ณัฐวัฌน์ สุวรรณวงศ์ รหัส 038
1. ความเป็นมา
เกม Snake เป็นเกมที่ได้รับความนิยมอย่างแพร่หลายในยุคแรกของโทรศัพท์มือถือ โดยเป็นเกมที่ผู้เล่นควบคุมงูให้กินอาหารและเติบโต โดยไม่ชนกับตัวเองหรือขอบสนาม เกม Snake เวอร์ชันนี้เป็นการพัฒนาโดยใช้ JavaScript เพื่อสร้างประสบการณ์การเล่นที่น่าสนใจยิ่งขึ้น พร้อมกับการออกแบบที่ทันสมัยและเพิ่มองค์ประกอบการเล่นที่ท้าทาย เช่น การเพิ่มเอฟเฟกต์พิเศษเมื่อเก็บอาหาร และระบบการจัดเก็บคะแนนสูงสุด
2. วัตถุประสงค์
- เพื่อสร้างเกม Snake ที่มีการพัฒนาในด้านกราฟิกและการเล่น ให้เหมาะสมกับผู้เล่นยุคใหม่
- เพิ่มความสนุกสนานในการเล่น โดยใช้สีสันและเอฟเฟกต์ที่น่าสนใจ
- เป็นตัวอย่างโปรแกรมเพื่อศึกษาและฝึกฝนการเขียน JavaScript สำหรับผู้ที่สนใจการพัฒนาเกม
3. ขอบเขต
โปรแกรมนี้จะทำงานในเบราว์เซอร์ รองรับการควบคุมผ่านปุ่มลูกศรบนคีย์บอร์ด ผู้เล่นสามารถเล่นซ้ำได้ตลอด โดยมีการจัดเก็บคะแนนสูงสุดของผู้เล่นไว้ใน Local Storage ของเบราว์เซอร์ ขอบเขตของเกมรวมถึง:
- สนามเล่นที่มีขนาด 400×400 พิกเซล
- งูสามารถเคลื่อนที่ขึ้น, ลง, ซ้าย, ขวา ผ่านการกดปุ่มลูกศร
- ระบบการตรวจจับการชน เช่น การชนขอบสนามหรือชนตัวเอง
- การเก็บอาหารที่ปรากฏในตำแหน่งสุ่ม
4. ประโยชน์ที่คาดว่าจะได้รับ
- ผู้เล่นสามารถใช้เกมนี้เป็นกิจกรรมเพื่อการผ่อนคลายและความสนุกสนาน
- เป็นเครื่องมือสำหรับการเรียนรู้การพัฒนาเกมพื้นฐานด้วย JavaScript และการจัดการ Canvas
- ช่วยเสริมสร้างทักษะการคิดและการวางแผนผ่านการควบคุมงูให้เติบโตโดยไม่ชนสิ่งกีดขวาง
5. ความรู้ที่เกี่ยวข้อง
- JavaScript: เป็นภาษาที่ใช้ในการพัฒนาเกมนี้ โดยมีการจัดการการเคลื่อนไหว การชน และการสร้างอนุภาคพิเศษ (particles)
- Canvas API: ใช้สำหรับวาดภาพต่างๆ เช่น งู อาหาร และสนามการเล่น
- Local Storage: ใช้เพื่อเก็บคะแนนสูงสุดของผู้เล่นเพื่อเรียกคืนในภายหลัง
- HTML & CSS: ใช้ในการสร้างโครงสร้างและการออกแบบส่วนหน้าของเกม รวมถึงการจัดตำแหน่งปุ่มและหน้าจอ
6. สรุปวิธีการใช้โปรแกรม
- เมื่อเข้าสู่โปรแกรม ผู้เล่นจะเห็นสนามเล่นพร้อมกับงูที่อยู่ตรงกลางสนาม
- ผู้เล่นใช้ปุ่มลูกศรในการควบคุมงู เพื่อให้เคลื่อนที่และเก็บอาหาร
- ทุกครั้งที่งูกินอาหาร จะมีการเพิ่มคะแนน และงูจะยาวขึ้น
- หากงูชนกับตัวเองหรือชนขอบสนาม เกมจะจบลง พร้อมแสดงคะแนนปัจจุบันและคะแนนสูงสุด
- ผู้เล่นสามารถกดปุ่ม “RESTART” เพื่อเริ่มเกมใหม่
7. สรุปผลการทดลอง
หลังจากการทดสอบเกม พบว่าเกมสามารถทำงานได้ตามที่วางแผนไว้ ผู้เล่นสามารถควบคุมงูได้อย่างราบรื่น การชนและการตรวจจับการเก็บอาหารทำงานถูกต้อง ระบบคะแนนสูงสุด (max score) ทำงานตามที่คาดหวัง โดยสามารถเก็บคะแนนสูงสุดไว้แม้หลังจากรีสตาร์ทเกม
8. การทำงานของโปรแกรม
โปรแกรมนี้ใช้โครงสร้างหลักในการจัดการเกมดังนี้:
- การเริ่มเกม: เรียกฟังก์ชัน
initialize()
เพื่อสร้างงูและอาหาร พร้อมทั้งเซ็ตอัประบบฟังค์ชันที่เกี่ยวข้อง เช่น การฟังการกดปุ่ม - การควบคุมงู: ใช้ฟังก์ชัน
controlls()
เพื่อเปลี่ยนทิศทางการเคลื่อนที่ของงูตามปุ่มที่กด - การอัปเดตตำแหน่ง: งูจะอัปเดตตำแหน่งใหม่ทุกๆ 5 เฟรม และเก็บบันทึกตำแหน่งของตนเองเพื่อตรวจจับการชนตัวเอง
- การตรวจจับการชน: ตรวจจับการชนงูและขอบสนาม รวมถึงการชนอาหาร เพื่อเพิ่มคะแนนและทำให้งูยาวขึ้น
- การแสดงผล: ใช้ฟังก์ชัน
drawGrid()
และdraw()
เพื่อแสดงสนาม งู และอาหารบนหน้าจอ
Code ที่ใช้งาน