จะสร้าง AI ที่เหมาะสมได้อย่างไร?


11

ฉันกำลังสร้างเกมตรรกะขึ้นอยู่กับเกม Fox and Hounds ผู้เล่นเล่นสุนัขจิ้งจอกและ AI เล่นสุนัขล่าเนื้อ (เท่าที่ฉันเห็น) ฉันพยายามทำให้ AI สมบูรณ์แบบดังนั้นมันจึงไม่มีวันสูญเสีย การปล่อยให้เป็นเช่นนี้คงไม่สนุกนักสำหรับผู้เล่นของมนุษย์

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

ความคิดใด ๆ ที่ทำให้ใบ้ AI ในลักษณะที่ไม่ได้เปลี่ยนจาก "อัจฉริยะ" ไปเป็น "โง่อย่างสมบูรณ์" ในการย้ายครั้งเดียว?


ดังนั้นคุณจะพบและใช้กลยุทธ์ที่เหมาะสมและชนะเสมอ ทำไมไม่ลองเล่นเกมที่ซับซ้อนกว่านี้สักหน่อยล่ะ? หรือสิ่งที่ท้าทาย: ใช้กลยุทธ์ที่สูญเสียเสมอไม่ว่าผู้เล่นคนอื่นจะทำอะไร ดูเพิ่มเติม: การสูญเสียหมากรุก / Antichess
Martin Sojka

บางทีคุณอาจต้องการที่จะดูคำตอบของฉันในคำถามอื่น ๆ นี้: gamedev.stackexchange.com/questions/12858/…
Tyn

สุนัขจิ้งจอกและหมาล่าเนื้อไม่ซับซ้อนเท่าหมากรุก การเดินผิดทางหนึ่งครั้งและ AI ก็แพ้อย่างแน่นอน มันง่ายมากที่จะทำให้ AI ดูเป็นใบ้ ความจริงที่ว่าฉันแก้ไขด้วยปากกาและกระดาษและเวลาคิดเชิงกลยุทธ์ไม่ได้หมายความว่าผู้เล่นของฉันจะทำเช่นเดียวกัน
Milan Babuškov

คำตอบ:


7

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

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


ขอบคุณ ฉันตัดสินใจที่จะให้มันเล่นอย่างชาญฉลาดสำหรับรูปแบบที่เรียบง่ายทั้งหมด มีรูปแบบที่ซับซ้อนสองแบบที่ผู้เล่นไม่สามารถมองเห็นเส้นทางแห่งอิสรภาพได้อย่างง่ายดายดังนั้นฉันจึงสร้างรูปแบบเพิ่มเติมที่ทำให้ AI แพ้โดยการเล่นแบบเคลื่อนไหวซึ่งคล้ายกับผู้เล่นมือใหม่มนุษย์ในตำแหน่งดังกล่าว ในช่วงเริ่มต้นของเกมฉันสุ่มเปลี่ยนรูปแบบการชนะโดยแพ้หนึ่งตำแหน่ง
Milan Babuškov

10

เนื่องจากสิ่งนี้ดูเหมือนจะเป็นเกมที่ 'แก้ไข' คำตอบเดียวคือคอมพิวเตอร์ต้องทำการเคลื่อนไหวที่ไม่ดีโดยเจตนา

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

  • ยาก - การเคลื่อนไหวที่ดี 90%
  • ยาก - ท่าดี 70%
  • ปกติ - เคลื่อนไหวดี 50%
  • เรียบง่าย - ท่าเดินที่ดี 20%
  • ถูกดร็อปเมื่อตอนเป็นเด็ก - <5% ท่าที่ดี
  • ฮอทดอก - สุ่มทั้งหมด

10
นี่อาจเป็นความคิดที่ดี แต่คุณจะต้องจบลงด้วยการใช้ AI ปัญญาอ่อนหากมีการเคลื่อนไหวผิดโดยเจตนา จากด้านบนของหัวของฉันฉันจะทำผ่านสำหรับการเคลื่อนไหว "ถูกกฎหมาย" จากนั้นใช้น้ำหนักกับแต่ละการเคลื่อนไหวและสั่งซื้อพวกเขาด้วยน้ำหนักน้ำหนักสูงสุดเป็นท่าที่ดีที่สุด จากนั้นคุณสามารถทำให้การบรรจบกันของ RNG ไปสู่การเคลื่อนไหวที่ดีขึ้นโดยขึ้นอยู่กับความยากลำบาก
Jonathan Connell

4
ฉันเห็นด้วยกับ @Jonathan Connell ลองพิจารณา: ซ่อนตัวอยู่หลังลังเทียบกับซ่อนตัวอยู่หลังถังระเบิดและซ่อนตัวอยู่ในลังและระเบิดมือ AI ควรประเมินว่าการเคลื่อนไหวนั้นแย่เพียงใด AI ที่ดีกว่าจะทำให้การเคลื่อนไหวดีขึ้นบ่อยขึ้น AI จะไม่ดีหรือยากถ้า 70% ของเวลามันยิงคุณและ 30% ของเวลาที่มันระเบิดตัวเอง มันจะเป็นแค่เฮฮา
doppelgreener

2
@Adrian Seeley ความคิดเห็นสุดท้ายของคุณสัมผัสกับปัญหาที่ใหญ่ที่สุด; สำหรับฉันคนที่เล่นกับ AI มักจะพบเหตุผลที่อยู่เบื้องหลังมันเป็นตัวเลือกแม้ว่าพวกเขาจะสุ่มตามหลักวิชาอย่างสมบูรณ์ก็ตาม ในเกมกระดานเช่นนี้สามารถตอบโต้ได้โดย จำกัด จำนวนการวนซ้ำในการทำนายการเคลื่อนไหวดังนั้นนี่อาจเป็นทางออกที่ดีในเกมที่แก้ไขได้ใช่ไหม
Jonathan Connell

2
ฉันเห็นด้วยกับ Jonathans ทั้งสอง แต่ฉันให้คำตอบนี้กับ +1 สำหรับ 'ถูก
ดร็อปตั้งแต่

2
@ Jonathan Connell: คุณควรโพสต์ข้อเสนอ / คำตอบของคุณ มันสมควรได้รับการโหวตสูง
bummzack
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.