คำถามติดแท็ก ai

การออกแบบและ / หรือตรรกะของเอนทิตีในเกมตัดสินใจเกี่ยวกับพฤติกรรมของมัน

20
มันผิดจรรยาบรรณหรือไม่ที่จะสร้างเกม AI ที่ไม่แอบแข่งขัน?
ในหลาย ๆ เกม AI ได้รับการออกแบบมาเพื่อให้ผู้เล่นมีช่วงเวลาที่ง่ายโดยปราศจากความรู้ นี่อาจเป็นโอกาส 0% ที่จะโจมตีในครั้งแรกที่คุณปรากฏตัวศัตรูให้คุณแอบเข้ามาโดยไม่หันหลังกลับหรือลดความยากลำบากเมื่อผู้เล่นบาดเจ็บหรือเริ่มใหม่หลายครั้ง ฉันจะโกรธเคืองถ้าในตอนท้ายของเกมกระดานหรือกีฬาฉันบอกว่ามนุษย์ไม่ได้พยายามอย่างหนักที่สุด จริยธรรมเดียวกันมีอยู่สำหรับ AI หรือไม่? ความกังวลหลักของฉันคือการเก็บแต้มต่อที่ซ่อนอยู่จากผู้เล่นตัวอย่างเช่นเมื่อเล่นปืนมันมีเหตุผลที่จะคาดหวังว่าผู้เล่นจะรู้ว่า AI นั้นมีเวลาตอบสนองเทียมและมีเป้าหมายที่ไม่ดี แต่คำถามของฉันเกี่ยวกับเกมที่ ซ่อนสิ่งต่าง ๆ เช่นศัตรูที่ไม่ได้ใช้อาวุธที่ดีที่สุดหรือลดความยากลำบากเมื่อผู้เล่นไม่มั่นใจ
121 game-design  ai  balance 

9
อะไรทำให้ฝ่ายตรงข้ามคอมพิวเตอร์รู้สึกมีชีวิตชีวา
มีบล็อกหรือเอกสารแนะนำที่พูดถึงการทำให้ AI ในเกม RPG รู้สึกถึงความเป็นจริงมากขึ้นหรือไม่? (โดยเฉพาะในการต่อสู้แบบเทิร์นเบส) ฉันรู้ว่าต้องมีอะไรบางอย่างอยู่ที่นั่น แต่ฉันแค่ค้นหาเอกสารที่พูดถึงอัลกอริทึมที่อยู่เบื้องหลัง AI ฉันกำลังดูตามแนวของ "นี่คือสิ่งที่ทำให้คู่ต่อสู้คอมพิวเตอร์รู้สึกมีชีวิตชีวา" รับความเสี่ยงไปได้ง่ายถอยห่าง ฯลฯ คำตอบที่ยอดเยี่ยมมากมายและฉันหวังว่าฉันจะยอมรับได้หลายคำตอบ ขอบคุณทุกคน!
107 ai  game-mechanics 

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

9
หนึ่งจะป้องกันขีปนาวุธกลับบ้านจากการโคจรเป้าหมายของพวกเขาได้อย่างไร
ฉันกำลังพัฒนาเกมอวกาศ 2 มิติโดยไม่มีแรงเสียดทานและฉันพบว่ามันง่ายมากที่จะทำให้ขีปนาวุธกลับสู่วงโคจรเป้าหมาย ฉันอยากรู้เกี่ยวกับกลยุทธ์ต่อต้านการโคจร ตัวอย่างง่ายๆคือขีปนาวุธกลับบ้านที่จะเร่งไปยังเป้าหมายโดยตรง หากเป้าหมายนั้นเคลื่อนที่ในแนวตั้งฉากกับวิถีของขีปนาวุธแล้วหยุดการเร่งความเร็วของขีปนาวุธไปยังเป้าหมายนั้นไม่เพียงพอที่จะเอาชนะความเร็วของมันเอง ในเฟรมที่ 1 ขีปนาวุธมุ่งตรงไปยังเป้าหมายโดยไม่มีปัญหา ในเฟรม 2 เป้าหมายได้ย้ายไปยังตำแหน่งใหม่ตามที่แสดง ขีปนาวุธยังคงเร่งไปยังเป้าหมายโดยตรง (เป็นสีแดง) ในขณะที่ยังคงเคลื่อนที่ไปยังตำแหน่งที่เป้าหมายเคยเป็น (สีดำ) เนื่องจากความเร็วที่มีอยู่ ในเฟรมที่ 3 ความเร็วของขีปนาวุธจะยังคงดำเนินการขีปนาวุธรอบด้านของเป้าหมาย (สีดำ) ในขณะที่เวกเตอร์การเร่งความเร็วพยายามอย่างยิ่งที่จะดึงขีปนาวุธไปยังเป้าหมาย ในเฟรมที่ 4 และถัดไปขีปนาวุธจะตกลงสู่วงโคจรที่มีความเสถียรรอบ ๆ เป้าหมายและไม่ถึงเป้าหมาย ลูกศรสีดำแสดงถึงเวกเตอร์ความเร็วสูงในขณะที่เส้นสีแดงแสดงถึงเวกเตอร์ความเร่งในเวลาเดียวกัน เมื่อพิจารณาว่าไม่มีแรงเสียดทานในอวกาศไม่มีสิ่งใดที่จะชะลอความเร็วของขีปนาวุธลงและยุบวงโคจรได้ ทางออกที่เป็นไปได้คือการตั้งเป้า "ไว้ข้างหลัง" เป้าหมายและสิ่งนี้จะทำให้วงโคจรปิด แต่สิ่งนี้ทำได้จากมุมมองการเขียนโปรแกรมอย่างไร ฉันจะทำให้จรวดกลับบ้านไปถึงเป้าหมายได้อย่างไร
78 2d  ai 

2
ช่องเสียบหน่วยคืออะไร
ฉันกำลังดู"Devs Play" S01E05ที่ JP LeBreton นั่งลงกับ John Romero และเล่นผ่าน Doom ในขณะที่ Romero จะอธิบายตัวเลือกการออกแบบเกม / ระดับที่พวกเขาทำ มีจุดยอดเยี่ยมมากมายที่ทั้งคู่เล่นปาหี่อยู่รอบ ๆ แต่ก็มีสิ่งหนึ่งที่ฉันไม่สามารถเข้าใจได้อย่างสมบูรณ์ บางทีนั่นอาจจะเป็นอุปสรรคของฉันภาษาหรือบางสิ่งบางอย่าง แต่ใช่ - Slotting หน่วย มันเป็นเซ็กเมนต์สั้น ๆ ของวิดีโอเริ่มต้นที่2m56sที่ Romero หัวเราะเล็กน้อยเกี่ยวกับslottingในเกมสมัยใหม่ ฉันดูเหมือนจะไม่เข้าใจแนวคิดของมัน มันเป็นหน่วยที่มีการปีนป่ายต่อคุณและโจมตีในคิวบ้างไหม? หรืออาจเป็นเพราะการโจมตีของพวกเขาประสานกันเพื่อไม่ให้ครอบงำคุณ? หรือ ... ห่าคือ slotting?

1
ความแตกต่างระหว่างต้นไม้การตัดสินใจและต้นไม้พฤติกรรมสำหรับเกม AI
อะไรคือความแตกต่างระหว่างต้นไม้การตัดสินใจและต้นไม้พฤติกรรมสำหรับการพัฒนาเกม AI? สำหรับแอปพลิเคชันใดที่คุณจะใช้หนึ่งแอป

9
ใหม่สำหรับการสร้าง AI - จะเริ่มที่ไหนดี [ปิด]
ฉันยังใหม่กับการเขียนโปรแกรมเกมและกำลังพยายามสร้างเกมบนพื้นที่บนลงล่างแบบ 2d พร้อมกับยานอวกาศ 2 ลำที่ต่อสู้กัน ฉันทำได้ดีกับยานอวกาศควบคุมของผู้ใช้ แต่ไม่รู้ว่าจะเริ่มเขียนโปรแกรม AI ได้อย่างไร มีวิธีการ / รูปแบบบางอย่างที่ดีกว่าสำหรับสถานการณ์นี้หรือไม่? ฉันจะเริ่มต้นที่ไหนดี

5
กำลังมองหาเทคนิคที่ดีสำหรับการเคลื่อนไหวของตัวละครในเกมแฮ็ค & สแลช
ฉันกำลังสร้างเกมแฮ็ค & สแลชและฉันต้องการให้ตัวละครของฉันเคลื่อนไหวอย่างเช่น Torchlight, Diablo เป็นต้นปัจจุบันฉันสร้างชุดของโหนดสำหรับพื้นที่ที่สามารถเดินได้ทั้งหมดของพื้น เมื่อฉันคลิกที่ผู้เล่นที่ไหนสักแห่งไปที่นั่นผ่านเส้นทางของการสอดแทรกโหนด มันดูไม่เป็นธรรมชาติมาก ผู้เล่นเคลื่อนไหวเหมือนหุ่นยนต์ ศัตรูใช้ระบบโหนดนี้เพื่อการเคลื่อนไหวและแบ่งปันปัญหาเดียวกัน แต่ฉันมีปัญหาอีกหนึ่งข้อกับพวกเขา เมื่อศัตรูตรวจพบผู้เล่นพวกเขาจะไปหาเขาโดยเส้นทางที่สั้นที่สุด บางครั้งพวกเขาใช้เส้นทางเดียวกันและต่อแถวเข้ากับผู้เล่นแทนที่จะล้อมรอบเขา ฉันไม่รู้วิธีที่จะทำให้ศัตรูเลือกเส้นทางที่แตกต่างและล้อมรอบผู้เล่น คุณรู้หรือไม่ว่าฉันจะแก้ปัญหานี้ได้อย่างไร? บางทีฉันควรใช้วิธีการที่แตกต่างกันสำหรับการเคลื่อนไหวของตัวละคร? เทคนิคปัจจุบันของฉัน: ภาพหน้าจอของ Torchlight: --- UPDATE --- ฉันต้องการทราบวิธีจัดการกับสถานการณ์เหล่านี้: สถานการณ์ที่ 1 ฉันมีสิ่งกีดขวางแบบไดนามิก / แบบคงที่ในแบบของฉัน สถานการณ์ที่ 2 ศัตรูมีเส้นทางแซมไปยังผู้เล่น (เข้าคิวเพื่อต่อสู้กับเรา)
51 ai  rpg  movement 

7
การหาเส้นทางในเกม RTS ทำงานอย่างไร
[crossposted จาก stackoverflow] ในเกมเช่น Warcraft 3 หรือ Age of Empires วิธีที่ฝ่ายตรงข้าม AI สามารถเคลื่อนไหวเกี่ยวกับแผนที่ดูเหมือนจะไร้ขีด จำกัด แผนที่มีขนาดใหญ่มากและตำแหน่งของผู้เล่นอื่นก็เปลี่ยนแปลงอยู่ตลอดเวลา การค้นหาเส้นทาง AI ในเกมเช่นนี้เป็นอย่างไร วิธีการค้นหากราฟแบบมาตรฐาน (เช่น DFS, BFS หรือ A *) ดูเหมือนเป็นไปไม่ได้ในการตั้งค่า

6
ใครคำนวณ AI ใน MMO ได้บ้าง
ฉันกำลังสร้าง MMO และต้องการเพิ่ม NPC สิ่งที่ฉันไม่รู้การออกแบบขั้นพื้นฐาน การคำนวณลูกค้าหรือเซิร์ฟเวอร์คืออะไร? ฉันจะเข้าใจเซิร์ฟเวอร์ที่คำนวณเหตุการณ์และปฏิกิริยาต่าง ๆ แต่เมื่อมันลงไปที่การบอกตำแหน่งและตำแหน่งและการเคลื่อนไหวของผู้เล่น ใครเป็นผู้คำนวณ AI เซิร์ฟเวอร์หรือลูกค้า ฉันนึกภาพออกไม่ได้ว่าเซิร์ฟเวอร์กำลังคำนวณการหาเส้นทางตำแหน่งการเคลื่อนไหวและอื่น ๆ ได้โปรดฉันต้องการความช่วยเหลือในการทำความเข้าใจนี้ขอบคุณสิ่งที่จะช่วย
30 ai  mmo  server  movement  npc 

2
AI เกมที่ซับซ้อนสำหรับเกมกลยุทธ์แบบเลี้ยว
ฉันกำลังค้นคว้าบางอย่างสำหรับโครงการเกมวางแผนกลยุทธ์และมองหาแหล่งข้อมูลที่ดีในหัวข้อนี้ เกมดังกล่าวเป็นเกมสงครามทั่วไปที่ประเทศต่างๆสามารถต่อสู้กันปรับใช้ยูนิตและให้หน่วยเหล่านี้เคลื่อนที่ไปบนแผ่นกระเบื้องหกเหลี่ยม, โจมตีซึ่งกันและกันเป็นต้น ฉันสนใจเป็นพิเศษในการจัดระเบียบ AI ของอารยธรรม V! ตามวิกิพีเดียเกมใช้ระบบ AI ที่แตกต่างกันสี่แบบสำหรับเลเยอร์ที่แตกต่างกันของ AI ของเกม: ยุทธวิธี AI ควบคุมแต่ละหน่วย ฝ่ายปฏิบัติการ AI ดูแลด้านการสงครามทั้งหมด กลยุทธ์ AI จัดการอาณาจักรทั้งหมด AI เชิงกลยุทธ์ที่ยิ่งใหญ่กำหนดเป้าหมายระยะยาวและกำหนดวิธีการชนะเกม แนวคิดนี้ดูเหมือนว่าเหมาะสมที่จะได้รับ AI ที่ซับซ้อนและทำให้ฉันอยากรู้ว่าระบบ AI ที่แตกต่างกันเหล่านี้ทำงานอย่างไร (และทำงานร่วมกัน) AI ยุทธวิธีน่าจะเข้าใจได้ง่ายที่สุดเพราะมันจัดการการตัดสินใจสำหรับหน่วยเดียว (การเคลื่อนไหวการโจมตีการซ่อมแซมการหลบหนี ฯลฯ ) แต่ฉันคิดว่าระบบ AI อื่น ๆ นั้นเป็นที่ที่น่าสนใจจริงๆ ตัวอย่างเช่น AI การปฏิบัติงานทำอะไรและทำเช่นนั้นได้อย่างไร ฉันแน่ใจว่าสิ่งเหล่านี้เป็นความลับที่ดีที่สุดที่เก็บรักษาไว้โดย Firaxis Games แต่มันก็ยอดเยี่ยมมากที่จะได้รับการสนทนาเริ่มต้นเพื่อหาข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้ นอกจากนี้หากใครรู้หนังสือที่ดีที่จัดการกับเกมวางแผนกลยุทธ์แบบเปิดเอไอมันจะเป็นการดีที่จะรู้ เห็นได้ชัดว่านี่เป็นหัวข้อที่มีการกระจัดกระจายบนเว็บ ฉันได้รับ "การเขียนโปรแกรมเกม …

6
ยึดเอาต้นไม้พฤติกรรม
ฉันพยายามที่จะทำให้หัวของฉันอยู่รอบ ๆ ต้นไม้พฤติกรรมดังนั้นฉันจึงพยายามหารหัสทดสอบ สิ่งหนึ่งที่ฉันกำลังดิ้นรนคือจะเอาไว้ใช้โหนดที่กำลังทำงานอยู่ในขณะที่บางสิ่งที่มีลำดับความสำคัญสูงกว่ามาพร้อม พิจารณาต้นไม้พฤติกรรมที่เรียบง่ายและเป็นตำนานต่อไปนี้สำหรับทหาร: สมมติว่ามีเห็บจำนวนหนึ่งหายไปและไม่มีศัตรูอยู่ใกล้ทหารกำลังยืนอยู่บนพื้นหญ้าดังนั้นโหนดSit downจึงถูกเลือกเพื่อดำเนินการ: ตอนนี้การกระทำของSit downต้องใช้เวลาในการดำเนินการเนื่องจากมีภาพเคลื่อนไหวให้เล่นดังนั้นมันจึงกลับมาRunningเป็นสถานะ เห็บหรือสองไปโดยภาพเคลื่อนไหวยังคงทำงานอยู่ แต่ศัตรูใกล้? ทริกเกอร์เงื่อนไขโหน ตอนนี้เราต้องจองโหนดSit down โดยเร็วเพื่อให้เราสามารถรันโหนดAttackได้ ทหารจะไม่นั่งลงด้วยซ้ำ - เขาอาจกลับทิศทางการเคลื่อนไหวของเขาหากเขาเพิ่งเริ่มนั่ง สำหรับความสมจริงที่เพิ่มขึ้นหากเขาผ่านจุดเปลี่ยนแปลงในภาพเคลื่อนไหวเราอาจเลือกที่จะให้เขานั่งลงแล้วยืนอีกครั้งหรืออาจให้เขาสะดุดในการตอบสนองต่อภัยคุกคามแทน ลองอย่างที่ฉันเป็นฉันไม่สามารถหาคำแนะนำเกี่ยวกับวิธีจัดการสถานการณ์เช่นนี้ได้ วรรณกรรมและวิดีโอทั้งหมดที่ฉันบริโภคไปในช่วงไม่กี่วันที่ผ่านมา (และมันก็เยอะมาก) ดูเหมือนจะเป็นประเด็นนี้ สิ่งที่ใกล้เคียงที่สุดที่ฉันสามารถหาได้คือแนวคิดของการรีเซ็ตโหนดที่ทำงานอยู่ แต่นั่นก็ไม่ได้ให้โหนดเหมือนนั่งลงโอกาสที่จะพูดว่า "เดี๋ยวก่อนฉันยังไม่เสร็จ!" ฉันคิดว่าอาจจะกำหนดPreempt()หรือInterrupt()วิธีการในNodeชั้นฐานของฉัน โหนดที่แตกต่างกันสามารถจัดการกับมันวิธีที่พวกเขาเห็นพอดี Successแต่ในกรณีนี้เราจะพยายามที่จะได้รับกลับมาทหารบนเท้าของเขาโดยเร็วและจากนั้นกลับมา ฉันคิดว่าวิธีการนี้จะกำหนดให้ฐานของฉันNodeมีแนวคิดเกี่ยวกับเงื่อนไขแยกต่างหากจากการกระทำอื่น ๆ ด้วยวิธีนี้เอ็นจิ้นสามารถตรวจสอบเงื่อนไขเท่านั้นและหากผ่านให้ยึดเอาโหนดดำเนินการใด ๆ ในปัจจุบันก่อนเริ่มการทำงานของการดำเนินการ หากไม่สามารถสร้างความแตกต่างนี้ได้เอ็นจิ้นจะต้องดำเนินการโหนดอย่างไม่เลือกปฏิบัติและอาจทำให้เกิดการกระทำใหม่ก่อนที่จะทำการจองก่อน สำหรับการอ้างอิงด้านล่างเป็นชั้นฐานปัจจุบันของฉัน อีกครั้งนี่คือการขัดขวางดังนั้นฉันพยายามที่จะทำให้สิ่งต่าง ๆ ง่ายที่สุดเท่าที่จะทำได้และเพิ่มความซับซ้อนเมื่อฉันต้องการมันและเมื่อฉันเข้าใจมันซึ่งเป็นสิ่งที่ฉันกำลังดิ้นรนอยู่ในตอนนี้ public enum ExecuteResult { // node needs more time to run …
25 ai  behavior-tree 

9
มีวิธีง่ายๆในการหยุดศัตรูที่ยืนอยู่ในจุดเดียวกันหรือไม่?
ดังนั้นเกมบนลงล่างศัตรูของฉันไล่ล่าผู้เล่นเมื่อพวกเขาอยู่ในระยะที่กำหนดพวกเขาจะหยุดนิ่งและยิง หากพวกเขามาจากทิศทางเดียวกันพวกเขาทั้งหมดจะยืนอยู่ในจุดเดียวกัน (เช่นยืน "ภายใน" กันและกัน) เนื่องจากฉันไม่ได้ทำการตรวจจับการชนกันระหว่างศัตรู - พวกเขามีอิสระที่จะผ่านกันและกัน วิธีง่ายๆในการนี้คืออะไร? อาจเป็นรูปแบบหนึ่งของการตรวจจับการชนกันหรือ ai บ้าง

5
การติดตามเป้าหมาย: เมื่อใดที่จะเร่งและลดความเร็วของป้อมปืนหมุน?
ว่าฉันมีวงกลมเคลื่อนที่ที่targetกำหนด: Vector2 position; Vector2 velocity; float radius; และการหมุนturret(ติดตั้งบนยานพาหนะที่กำลังเคลื่อนที่บางชนิด) กำหนดเป็น: Vector2 position; Vector2 velocity; float angle; // radians float angularVelocity; // radians per second const float maxAngularVelocity; // radians per second const float maxAngularAcceleration; // radians per second per second (หรือบางสิ่งบางอย่างตามเส้นเหล่านั้นโปรดทราบว่าตำแหน่งและความเร็วของทั้งสองถูกควบคุมที่อื่น - สมมติว่าความเร็วคงที่และเปลี่ยนตำแหน่งตามความเร็ว) ฉันพยายามเขียนฟังก์ชัน AI ที่เกี่ยวข้องสองรายการเพื่อกำหนดในกรอบที่กำหนด: การเร่งความเร็วเชิงมุม (และทิศทางใด) ที่ใช้กับมุมของป้อมปืนเพื่อให้ป้อมปืนชี้ไปที่เป้าหมาย หากเป้าหมายอยู่ในระยะมองเห็นจะสามารถเก็บส่วนใดส่วนหนึ่งไว้ในรัศมีเป็นระยะxเวลาไม่กี่วินาทีxเศษเสี้ยววินาที (ทางเลือก: …
24 ai  aiming 

3
วิธีการ wire machine state finite ให้เป็นสถาปัตยกรรมที่อิงองค์ประกอบ [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน3 ปีที่ผ่านมา เครื่องรัฐดูเหมือนจะก่อให้เกิดการพึ่งพาที่เป็นอันตรายในสถาปัตยกรรมที่ใช้ส่วนประกอบ มีการจัดการการสื่อสารระหว่างเครื่องรัฐและส่วนประกอบที่ดำเนินพฤติกรรมที่เกี่ยวข้องกับรัฐอย่างไรโดยเฉพาะ ฉันอยู่ที่ไหน: ฉันใหม่กับสถาปัตยกรรมที่อิงองค์ประกอบ ฉันกำลังสร้างเกมต่อสู้แม้ว่าฉันไม่คิดว่ามันจะสำคัญ ฉันนึกภาพเครื่องรัฐของฉันถูกใช้เพื่อสลับสถานะเช่น "หมอบคลาน", "ห้าว", "ปิดกั้น" ฯลฯ ฉันพบว่าเทคนิคการจัดการสถานะนี้เป็นระบบที่เป็นธรรมชาติที่สุดสำหรับสถาปัตยกรรมที่อิงองค์ประกอบ แต่มันขัดแย้งกับเทคนิคที่ฉันได้อ่าน: ระบบส่วนประกอบของวัตถุเกมแบบไดนามิกสำหรับตัวละครพฤติกรรมที่ไม่แน่นอนมันแสดงให้เห็นว่า ตัวเองโดยการตรวจสอบเงื่อนไขการเปิดใช้งานอย่างต่อเนื่อง ฉันคิดว่าการกระทำเช่น "วิ่ง" หรือ "เดิน" เข้าท่าเป็นเรื่องของรัฐซึ่งไม่เห็นด้วยกับคำตอบที่ยอมรับได้ที่นี่: /gamedev//a/7934 ฉันพบสิ่งนี้มีประโยชน์ แต่ไม่ชัดเจน: จะใช้พฤติกรรมอย่างไรในสถาปัตยกรรมเกมที่อิงส่วนประกอบได้อย่างไร มันแสดงให้เห็นว่ามีองค์ประกอบแยกต่างหากที่มีอะไรนอกจากเครื่องรัฐ แต่สิ่งนี้จำเป็นต้องมีการเชื่อมต่อระหว่างส่วนประกอบเครื่องรัฐกับส่วนประกอบอื่นเกือบทั้งหมด ฉันไม่เข้าใจวิธีจัดการข้อต่อนี้ นี่คือการเดาบางอย่าง: A. ส่วนประกอบขึ้นอยู่กับเครื่องของรัฐ: ส่วนประกอบได้รับการอ้างอิงถึงส่วนประกอบของเครื่องของgetState()รัฐซึ่งจะส่งกลับค่าคงที่การแจงนับ คอมโพเนนต์อัปเดตตัวเองเป็นประจำและตรวจสอบสิ่งนี้ตามความจำเป็น B. สถานะของเครื่องจักรขึ้นอยู่กับส่วนประกอบ: ส่วนประกอบ สถานะของเครื่องได้รับการอ้างอิงถึงส่วนประกอบทั้งหมดที่มีการตรวจสอบ มันสอบถามgetState()วิธีการของพวกเขาเพื่อดูว่าพวกเขาอยู่ที่ไหน C. สิ่งที่เป็นนามธรรมระหว่างพวกเขา ใช้ฮับเหตุการณ์? รูปแบบคำสั่ง? D. แยกสถานะของวัตถุที่ ใช้เป็นส่วนประกอบของรูปแบบสถานะอ้างอิง …

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