ฉันยังใหม่กับ gamedev stackechange นี้ แต่เคยใช้เว็บไซต์คณิตศาสตร์และ cs มาก่อน
ดังนั้นฉันจึงอยู่ในการแข่งขันเพื่อสร้าง AI สำหรับงูที่จะแข่งขันกับงูอีกสี่ตัวในรอบ 5 นาทีโดยมีกติกาเหมือนกับเกมงู Nokia แบบดั้งเดิมยกเว้นว่ามีงูห้าตัวบอร์ด 30x30 และมี จำนวนของอุปสรรคเล็ก ๆ บนสนาม
เช่นเดียวกับเกมของ Nokia งูของคุณจะเติบโตขึ้นเมื่อคุณไปถึงผลไม้และหากคุณชนกับตัวเองงูอีกตัวหรือกำแพงที่คุณตาย เกมทำงานด้วยความล่าช้า 30ms ระหว่างการเคลื่อนไหวและเซิร์ฟเวอร์จะส่งสถานะเกมใหม่ทุก ๆ 50ms ซึ่งรหัสจะต้องวิเคราะห์และสิ่งที่ไม่และเอาท์พุทย้ายถัดไป
ผู้ชนะคืองูที่ยาวที่สุดในทุกจุดของเกม เบรกเกอร์เน็คไทจะตัดสินโดยการฆ่า
จนถึงตอนนี้สิ่งที่ฉันทำคือการใช้การค้นหากราฟ A * จากงูแต่ละตัวเพื่อตรวจสอบว่างูของฉันใกล้เคียงกับแอปเปิ้ลหรือไม่และถ้าเป็นก็จะไปที่แอปเปิ้ล ไม่เช่นนั้นฉันก็สร้างอัลกอริธึมเล็กน้อยเพื่อกำหนดพื้นที่ว่างเปล่าของกระดานซึ่งงูของฉันไปเพื่อคาดการณ์แอปเปิ้ลต่อไป
นอกเหนือจากนี้ฉันมีการตรวจสอบความสามารถในการเอาตัวรอดเล็ก ๆ น้อย ๆ เพื่อให้แน่ใจว่างูของฉันไม่ได้เดินเข้าไปในกับดักที่ไม่สามารถออกไปได้และถ้ามันติดอยู่ฉันก็มีบางอย่างที่จะให้โอกาสที่ดีกว่า
...
อย่างไรก็ตามฉันได้ทดสอบงูของฉันบนเซิร์ฟเวอร์ทดสอบและมันก็ค่อนข้างดี โดยทั่วไปแล้วกลยุทธ์ของฉันจะให้แอปเปิ้ลเมื่อมันเป็นสิ่งที่แน่นอนและหาพื้นที่เมื่อมันไม่ทำให้มันเติบโตเร็วกว่างูชนิดอื่น ๆ (งูบางตัวทำสิ่งที่คล้ายกัน แต่มักจะไปตรงกลางหรือมุม) บางครั้งมันชนะ เกมทดลองใช้งานเหล่านี้ แต่บ่อยกว่าไม่แพ้งูตัวเดียวที่ดูเหมือนจะมีความสามารถในการเอาตัวรอดได้ (งูของฉันเติบโตเร็วขึ้น แต่ก็ตายอย่างใดแล้วและงูตัวอื่น ๆ
ดังนั้นฉันจึงสงสัยว่าความคิดใด ๆ ที่ทุกคนต้องพยายามและปรับปรุงงูของฉัน หรืออาจเป็นความคิดในแนวทางใหม่ที่จะทำ ฟังก์ชั่นและชั้นเรียนของฉันนั้นดีดังนั้นการเปลี่ยนแปลงที่อาจดูรุนแรงไม่ควรเลวร้ายเกินไป ฉันสนับสนุนความคิดทั้งหมด
ความคิดใด ๆ