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

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

2
เปรียบเทียบสองโครงสร้างต้นไม้
ฉันมีเวลายากที่จะพยายามอธิบายสิ่งนี้ในแง่ที่ถูกต้องดังนั้นฉันจะให้รายละเอียดมากที่สุดเท่าที่จะเป็นไปได้และหวังว่าจะมีคนรู้ว่าฉันพยายามทำอะไร = -) ฉันพยายามเปรียบเทียบต้นไม้สองโหนดเพื่อหาว่ามีความเหมือนหรือแตกต่างกันอย่างไรในโครงสร้าง ในแผนภาพด้านล่างของฉันทั้งสองตัวอย่างมีจำนวนลูกหลานและจำนวนเท่ากันในตัวอย่างที่ 1 รูทมีลูกที่มีลูกสองคน แต่ในตัวอย่างที่สองรูทนั้นไม่มี ฉันอาจจะคิดออกวิธีวนซ้ำวนซ้ำและนับจำนวนแต่ละระดับมีและเปรียบเทียบที่ให้ฉันคิดว่าต้นไม้คล้ายกัน แต่เพียงทำแบบนั้นมันจะดูเหมือนว่าพวกเขาเหมือนกัน แต่ ในความเป็นจริงพวกเขาไม่ได้ มีใครรู้เรื่องนี้บ้าง หรือแม้แต่ศัพท์เทคนิคสำหรับสิ่งนี้คืออะไร? แก้ไข:นอกจากนี้ยังอยู่ใน C # และฉันใช้รายการเพื่อเก็บวัตถุเหล่านี้และลูก ๆ ของพวกเขา ตัวอย่างที่ 1 ตัวอย่างที่ 2

2
Scrambling คำในรูปแบบที่รู้จักอย่างน้อย
เป้าหมายของฉันคือการนำเสนอผู้เล่นด้วยคำที่มีสัญญาณรบกวนที่ควรจัดลำดับใหม่กลับคืนสู่รูปแบบดั้งเดิม: OELHL -> สวัสดี ฉันต้องการอัลกอริทึม scrambling ที่ใช้คำที่กำหนด (> 3or4 ตัวอักษรอาจมีช่องว่าง) และเปลี่ยนเป็นรูปแบบที่รู้จักได้น้อยที่สุด ในขณะที่การเคลื่อนย้ายตัวอักษรทุกตัวรอบ ๆ ใช้งานได้อย่างแน่นอนฉันสังเกตเห็นว่าสับไม่ได้ทั้งหมดเท่ากัน แต่บางคนจำได้ดีกว่าคนอื่น ฉันกำลังโพสต์คำถามนี้ในกรณีที่มีคนรู้ถึงอัลกอริทึมที่ดีกว่า (อาจขึ้นอยู่กับภาษาศาสตร์) ที่ ~~ รับประกันรูปแบบที่เป็นที่รู้จักน้อยที่สุด


1
การวางระเบิดอัจฉริยะ Bomberman AI
ฉันกำลังพยายามใช้อัลกอริทึม AI สำหรับ Bomberman ขณะนี้ฉันมีการทำงาน แต่ไม่ได้ใช้งานอย่างชาญฉลาดมาก (AI ปัจจุบันมีความคลั่งไคล้ในการวางระเบิด) นี่เป็น AI ตัวแรกที่ฉันเคยลองใช้และฉันติดอยู่นิดหน่อย อัลกอริทึมที่ซับซ้อนมากขึ้นที่ฉันมีในใจ (คนที่ฉันคาดว่าจะทำให้การตัดสินใจที่ดีกว่า) จะซับซ้อนเกินไปที่จะแก้ปัญหาที่ดี คุณมีเคล็ดลับทั่วไปอย่างไรในการใช้งาน Bomberman AI มีวิธีที่แตกต่างกันอย่างสิ้นเชิงในการทำบอททั้งการป้องกันหรือการรุกมากขึ้น? แก้ไข: อัลกอริทึมปัจจุบัน อัลกอริทึมปัจจุบันของฉันมีลักษณะดังนี้ (รหัสหลอก): 1) พยายามวางระเบิดแล้วค้นหาเซลล์ที่ปลอดภัยจากการวางระเบิดทั้งหมดรวมถึงที่วางไว้ หากต้องการค้นหาเซลล์นั้นให้วนซ้ำทั้งสี่ทิศทาง หากคุณสามารถหาเซลล์ที่แตกต่างที่ปลอดภัยและไปถึงมันได้ทันเวลา (เช่นหากทิศทางขึ้นหรือลงให้มองหาเซลล์ที่พบทางซ้ายหรือขวาของเส้นทางนี้) จากนั้นจะปลอดภัยที่จะวางระเบิดและย้าย ในทิศทางนั้น 2) หากคุณไม่สามารถค้นหาและปลอดภัยเซลล์ที่แตกต่างให้ลองวางระเบิดแล้วดูอีกครั้ง เวลานี้คุณจะต้องมองหาเซลล์ที่ปลอดภัยในทิศทางเดียวเท่านั้น (คุณไม่ต้องแยกจากมัน) 3) หากคุณยังไม่สามารถหาเซลล์ที่ปลอดภัยได้โปรดอย่าทำอะไรเลย for $(direction) in (up, down, left, right): place bomb at current location if (can find …
13 algorithm  ai 

5
ฉันจะใช้เทคนิคการเรนเดอร์อะไรในการวาดเอฟเฟกต์เงาของการ์ดในเกมการ์ด
อัลกอริทึมการแรเงาประเภทใดที่อาจใช้สร้างเงาเช่นนี้ สิ่งที่ฉันทำคล้ายกัน แต่ทั้งหมดนั้นทำด้วย 2D drawing API ที่ขับเคลื่อนโดย OpenGL ดังนั้นจึงไม่มีพิกัด Z นอกจากนี้สำหรับมือของฉันเองฉันอยากได้ความรู้สึกแบบที่เห็นที่นี่: ฉันไม่แน่ใจว่าจะทำอย่างไรให้ได้ร่มเงาดูใกล้เคียง จำนวนบัตรถูกผูกไว้กับการเปลี่ยนแปลงและไพ่ถูกโยนลงบนโต๊ะดังนั้นฉันจึงไม่สามารถใช้แผนที่แสงทุกประเภท ฉันควรมองหาอัลกอริทึมประเภทใด (นอกเหนือจากความพร่ามัวที่ฉันรู้ว่าต้องทำ) ขอบคุณ ปรับปรุง ฉันทำเกมการ์ด 2D ฉันต้องการเพิ่มออฟเซ็ทเงาจากการ์ดเล็กน้อยเช่น: วิธีที่ฉันคิดว่าจะทำคือ: รักษาพื้นผิวที่มีขนาดเท่ากับ backbuffer วาดสี่เหลี่ยมสีเข้มเป็นการ์ดชั่วคราวเพื่อพื้นผิวนั้น เบลอพื้นผิวนั้น วาดไพ่ของฉันลงบนพื้นผิวนั้น เพิ่มแสงสว่างบนการ์ด วาดเนื้อนี้ไปที่ backbuffer คำถามของฉันคือ: นี่เป็นวิธีที่ถูกต้องหรือไม่ มีวิธีทำโดยไม่ทำให้พื้นผิว (รักษาบิตแมป ใหญ่เป็น backbuffer)? จะปลอดภัยหรือไม่ที่จะสันนิษฐานว่าขนาดพื้นผิวสูงสุดจะไม่ เกินจากขนาดของแบ็คบุฟเฟอร์? (สิ่งที่ฉันหมายถึงคือถ้า backbuffer เป็น 2000x3000 แล้วมันปลอดภัยที่จะบอกว่าฉันสามารถสร้างพื้นผิวใน หน่วยความจำวิดีโอขนาดนั้นหรือไม่ ขอบคุณ

2
วิธีการใช้ศัตรูที่ชาญฉลาดในการยิงปืน?
ลองนึกภาพ shoot-em-up ง่ายๆสิ่งที่เราทุกคนรู้: คุณคือผู้เล่น (สีเขียว) การเคลื่อนไหวของคุณถูก จำกัด ไว้ที่Xแกน ศัตรูของเรา (หรือศัตรู) อยู่ที่ด้านบนของหน้าจอการเคลื่อนไหวของเขายัง จำกัด อยู่ที่Xแกน ผู้เล่นยิงกระสุน (สีเหลือง) ใส่ศัตรู ฉันต้องการติดตั้ง AI สำหรับศัตรูที่ควรหลีกเลี่ยงกระสุนผู้เล่น ความคิดแรกของฉันคือการแบ่งหน้าจอเป็นส่วนที่แยกและกำหนดน้ำหนักให้กับพวกเขา: มีสองน้ำหนัก: "กระสุน - น้ำหนัก" (สีเทา) เป็นอันตรายที่กำหนดโดยกระสุน กระสุนยิ่งเข้าใกล้ศัตรูก็จะยิ่ง "กระสุน - น้ำหนัก" สูงขึ้น ( 0..1ซึ่ง 1 คืออันตรายสูงสุด) ช่องทางที่ไม่มีกระสุนมีน้ำหนักเป็น 0 น้ำหนักที่สองคือ "ระยะทาง - น้ำหนัก" (สีเขียวมะนาว) สำหรับทุกช่องทางฉันเพิ่ม0.2ค่าความเคลื่อนไหว (ค่านี้ค่อนข้างจะสุ่มเองในตอนนี้และสามารถปรับแต่งได้) จากนั้นฉันก็เพิ่มน้ำหนัก (สีขาว) และไปที่เลนด้วยน้ำหนักต่ำสุด (สีแดง) แต่วิธีการนี้มีข้อบกพร่องที่เห็นได้ชัดเพราะมันสามารถพลาด minima …

3
เอาชนะการตรวจจับและ FFT
ฉันกำลังทำงานกับเกม platformer ซึ่งรวมถึงเพลงที่มีการตรวจจับจังหวะ ขณะนี้ฉันกำลังตรวจจับการเต้นด้วยการตรวจสอบว่าแอมพลิจูดปัจจุบันเกินกว่าตัวอย่างในอดีตหรือไม่ มันใช้งานไม่ได้กับแนวเพลงเช่นร็อคที่มีแอมพลิจูดค่อนข้างคงที่ ดังนั้นฉันจึงค้นหาเพิ่มเติมและพบอัลกอริทึมที่แยกเสียงออกเป็นหลาย ๆ วงโดยใช้ FFT ... จากนั้นฉันก็พบอัลกอริทึม Cooley-Tukey FFt ปัญหาเดียวที่ฉันมีคือฉันค่อนข้างใหม่กับเสียงและฉันไม่รู้ว่าจะใช้มันอย่างไรเพื่อแยกสัญญาณออกเป็นสัญญาณหลาย ๆ สัญญาณ ดังนั้นคำถามของฉันคือ: คุณจะใช้ FFT เพื่อแยกสัญญาณออกเป็นหลายแบนด์ได้อย่างไร? สำหรับคนที่สนใจนี่คืออัลกอริทึมของฉันใน c #: // C = threshold, N = size of history buffer / 1024 public void PlaceBeatMarkers(float C, int N) { List<float> instantEnergyList = new List<float>(); short[] samples = …

2
การทำนายตำแหน่งของศัตรูเพื่อให้วัตถุนำไปสู่เป้าหมาย
ในเกม 2D ของฉันฉันมีป้อมปืน AI ที่ควรช่วยเหลือผู้เล่นโดยการยิงเข้าหาศัตรูโดยอัตโนมัติ ฉันต้องการทำให้พวกเขายิงอย่างชาญฉลาดและนำเป้าหมายของพวกเขาแทนที่จะเป็นเพียงการกำหนดเป้าหมายตำแหน่งปัจจุบันของศัตรู ดังนั้นด้วยความเร็ว (คงที่เสมอ) และเวกเตอร์ตำแหน่งของทั้งศัตรูและกระสุนปืนของป้อมปืนฉันจะหาเวกเตอร์ที่แสดงตำแหน่งที่แท้จริงได้อย่างไรป้อมปืนต้องกำหนดเป้าหมายเพื่อให้กระสุนปืนแยก (และโดน) ศัตรู? ลิงก์ใด ๆ ไปยังบทความที่อธิบายถึงคณิตศาสตร์อัลกอริทึม ฯลฯ จะได้รับการชื่นชม!
13 algorithm  ai  aiming 

5
ฉันจะพูดคุยเกี่ยวกับอัลกอริธึมบรรทัดของ Bresenham ไปยังจุดลอยตัวได้อย่างไร
ฉันพยายามรวมสองสิ่งเข้าด้วยกัน ฉันกำลังเขียนเกมและฉันจำเป็นต้องกำหนดสี่เหลี่ยมกริดที่วางอยู่บนเส้นตรงกับจุดสิ้นสุดของจุดลอยตัว ยิ่งกว่านั้นฉันต้องการมันเพื่อรวมสี่เหลี่ยมกริดทั้งหมดที่มันแตะ (เช่นไม่ใช่แค่เส้นของ Bresenhamแต่เป็นสีน้ำเงิน): มีใครให้ข้อมูลเชิงลึกเกี่ยวกับวิธีการใช้หรือไม่ วิธีแก้ปัญหาที่ชัดเจนคือการใช้อัลกอริธึมแบบไร้เดียงสา แต่มีบางสิ่งที่ได้รับการปรับให้เหมาะสมที่สุด (เร็วกว่า)?

3
ฉันจะเพิ่มและลบรูปหลายเหลี่ยมนูนได้อย่างไร
ฉันมีสองรูปหลายเหลี่ยมนูน 2D ที่ทับซ้อนกันซึ่งกันและกัน ฉันกำลังมองหาอัลกอริทึมที่จะลบและเพิ่มพวกเขา ผลที่ได้จะต้องเป็นรูปหลายเหลี่ยมเว้าเดียวหรือ (ดียิ่งขึ้น) ชุดของนูนที่ใหญ่ที่สุดที่สร้างผลลัพธ์เว้า (เช่นสามเหลี่ยม) ( ซ้าย:รูปหลายเหลี่ยมที่ทับซ้อนกันเริ่มต้นกลาง:รูปหลายเหลี่ยมที่เกิดจากเว้าหลังการเพิ่มด้านขวา:ชุดของรูปหลายเหลี่ยมนูนที่สร้างผลของเว้าที่นี่จะเป็นการดีกว่าที่จะได้รูปหลายเหลี่ยมนูนที่ใหญ่กว่าสามเหลี่ยมสำหรับเหตุผลด้านประสิทธิภาพ รูปหลายเหลี่ยมที่ซ้อนกันสองอันจะนำไปสู่รูปภาพเดียวกันทางด้านซ้าย แต่พื้นที่ที่ซ้อนทับไม่ได้เป็นส่วนหนึ่งของรูปหลายเหลี่ยมที่เกิดขึ้น) ฉันจะทำสิ่งนี้ได้อย่างไร
12 algorithm 

2
จางหายไปในเกมที่เก่ากว่า ต้องการความช่วยเหลือในการหาวิธีที่อัลกอริทึมได้รับมา
ขออภัยคำถามนี้ลึกลับเล็กน้อย แต่ฉันไม่สามารถเอามันออกไปจากหัวของฉันได้! ฉันกำลังมองหาอัลกอริทึมจางที่ใช้ในเกมอาเขต DoDonPachi (เช่นเดียวกับเกมอื่น ๆ ที่เก่ากว่า): ฉันเขียนสคริปต์หลามเพื่อเลือกพิกเซลสักสองสามและติดตามพวกเขาในช่วงเวลาที่จางหายไป นี่คือตัวอย่างของผลลัพธ์ แถวแรกของแต่ละกลุ่มคือค่าสีเริ่มต้นในขณะที่แต่ละแถวถัดมาคือความแตกต่างระหว่างค่าสีของเฟรมปัจจุบันและค่าสีของเฟรมก่อนหน้า Starting Value: (132, 66, 189) Frame 1: [9, 9, 8] Frame 2: [8, 8, 8] Frame 3: [8, 8, 8] Frame 4: [8, 8, 9] Frame 5: [9, 9, 8] Frame 6: [8, 8, 8] Frame 7: [8, 8, 8] …
12 algorithm  arcade 

3
การสร้างถนน / แม่น้ำบนแผนที่ตาราง 2d
นี่เป็นคำถามที่มือใหม่ แต่ที่นี่มันไป: แผนที่ของฉันเป็นตาราง 2d และฉันต้องการสร้างถนนและแม่น้ำ เส้นทางจากจุดเริ่มต้นไปยังจุดสิ้นสุดต้องไม่เป็นเส้นทางที่ดีที่สุดในจำนวนไพ่ แต่ควรมีการสุ่มในระดับหนึ่ง (รอบ) มีอัลกอริธึมมาตรฐานสำหรับสิ่งนี้หรือไม่? ไชโย! UPDATE: นี่คือผลลัพธ์ของการเล่นกับน้ำหนักบนกริดและใช้อัลกอริธึมพา ธ สั้นที่สุด (Bellman-Ford) โดยใช้ไลบรารี jgrapht ฉันไปกับคำตอบของ Donutz หลังจากทั้งหมด http://pastebin.com/AGQGK5ik

4
ฉันจะกำหนดลำดับการวาดในเกมแฟลชมุมมองภาพสามมิติได้อย่างไร
นี่คือเกมแฟลชที่มีมุมมองภาพสามมิติ ฉันจำเป็นต้องรู้วิธีการเรียงลำดับวัตถุเพื่อให้ไม่จำเป็นต้องตรวจสอบบัฟเฟอร์ z เมื่อวาด สิ่งนี้อาจดูง่าย แต่มีข้อ จำกัด อื่นฉากหนึ่งอาจมีวัตถุมากกว่า 10,000 รายการดังนั้นอัลกอริทึมจะต้องทำงานในเวลาน้อยกว่า O (n ^ 2) วัตถุทั้งหมดเป็นกล่องสี่เหลี่ยมและวัตถุ 3-4 ชิ้นเคลื่อนที่ในที่เกิดเหตุ วิธีที่ดีที่สุดในการทำเช่นนี้คืออะไร? UPDATE ในแต่ละกระเบื้องมีเพียงวัตถุ (ฉันหมายถึงวัตถุไม่สามารถซ้อนทับกัน) และเราเข้าถึงทั้งแผนที่วัตถุและวัตถุมีตำแหน่งของตัวเอง UPDATE2 ดูตัวเลขเหล่านี้: ในวัตถุแรกสีน้ำเงินแรกควรวาดแล้วสีเขียวแล้วสีแดง ในขณะที่ในวินาทีที่คุณต้องวาดในลำดับย้อนกลับ คุณต้องวาดสีแดงก่อนแล้วจึงเป็นวัตถุสีเขียวและสีน้ำเงินในที่สุด อย่างที่คุณเห็นว่าไม่มีความแตกต่างในตำแหน่งของวัตถุสีน้ำเงินและสีแดงทั้งคู่มีระยะห่างที่แตกต่างจากกล้องและอื่น ๆ แต่เนื่องจากตำแหน่งสัมพัทธ์เป็นกล่องสีเขียวคุณต้องเปลี่ยนลำดับการวาดระหว่างสองภาพ นั่นคือสิ่งที่ทำให้ปัญหานี้เป็นระเบียบ หมายเหตุ: เนื่องจากวัตถุทั้งหมดเป็นปริซึมสี่เหลี่ยมจึงสามารถพิสูจน์ได้ทางคณิตศาสตร์ว่ามีอย่างน้อยหนึ่งคำสั่งวาดเพื่อตอบสนองความต้องการของปัญหา

1
เกมเฮลิคอปเตอร์ 2 มิติวิธีสร้างกำแพงทางเดิน
ฉันกำลังมองหาการดัดแปลงเกม "เฮลิคอปเตอร์" แบบคลาสสิก (เช่นhttp://www.addictinggames.com/helicopter.html ) แต่ฉันยังไม่ได้หาวิธีสร้างเครื่องมือสร้างผนัง พอยน์เตอร์ใดใน pseudocode ฉันไม่ได้ให้ความสนใจกับวัตถุที่อยู่ตรงกลาง - เพียงวิธีการในการสร้างด้านที่เพิ่มขึ้นด้วยความยากลำบาก (ปิดในมากขึ้นมีเส้นโค้งที่ไม่คาดคิด) ในขณะที่เกมดำเนินไป

4
ฉันจะให้ตัวแทน AI ขยับไปตามทางโค้งได้อย่างไร
ในปัจจุบันกรอบ AI ขั้นพื้นฐานของฉันมีตัวแทนที่ย้ายไปตามเส้นทางที่ขรุขระซึ่งประกอบไปด้วยจุดต่าง ๆ พวกเขาทำได้โดยเพียงแค่ย้ายตำแหน่งจากจุดหนึ่งไปยังอีกจุดหนึ่ง เมื่อพวกเขามาถึงจุดต่อไปพวกเขาจะย้ายไปยังจุดต่อไปเรื่อย ๆ ฉันจะเปลี่ยนสิ่งนี้ได้อย่างไรเพื่อให้พวกเขาเคลื่อนที่อย่างราบรื่นไปตามเส้นทางที่โค้งและฉันจะสร้างเส้นโค้งได้อย่างไร

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