คำถามติดแท็ก path-finding

วิธีการที่ใช้ในการทำแผนที่เส้นทางการเดินทางจากจุดหนึ่งไปยังอีกจุดหนึ่งโดยทั่วไปจะหลีกเลี่ยงสิ่งกีดขวางระหว่างทาง

2
การเคลื่อนไหวนั้นขึ้นอยู่กับอัตราเฟรมแม้จะใช้ Time.deltaTime
ฉันมีรหัสต่อไปนี้เพื่อคำนวณการแปลที่จำเป็นในการย้ายวัตถุเกมใน Unity ซึ่งเรียกว่าLateUpdateมา จากสิ่งที่ฉันเข้าใจการใช้งานของฉันTime.deltaTimeควรจะทำให้เป็นอิสระแปลสุดท้ายอัตราเฟรม (โปรดทราบCollisionDetection.Move()เป็นเพียงการแสดง raycasts) public IMovementModel Move(IMovementModel model) { this.model = model; targetSpeed = (model.HorizontalInput + model.VerticalInput) * model.Speed; model.CurrentSpeed = accelerateSpeed(model.CurrentSpeed, targetSpeed, model.Accel); if (model.IsJumping) { model.AmountToMove = new Vector3(model.AmountToMove.x, model.AmountToMove.y); } else if (CollisionDetection.OnGround) { model.AmountToMove = new Vector3(model.AmountToMove.x, 0); } model.FlipAnim = flipAnimation(targetSpeed); // If …

3
วิธีสร้างเส้นทางที่ดูเป็นธรรมชาติด้วย A * บนกริด
ฉันได้อ่านสิ่งนี้แล้ว: http://theory.stanford.edu/~amitp/GameProgramming/Heuristics.html แต่มีบางสิ่งที่ฉันไม่เข้าใจตัวอย่างเช่นบทความบอกว่าใช้สิ่งนี้เพื่อการตัดเส้นด้วยการเคลื่อนไหวในแนวทแยง: function heuristic(node) = dx = abs(node.x - goal.x) dy = abs(node.y - goal.y) return D * max(dx, dy) ฉันไม่รู้ว่าจะตั้งค่า D ให้เป็นเส้นทางที่ดูเป็นธรรมชาติได้อย่างไรในบทความฉันตั้งค่า D เป็นต้นทุนที่ต่ำที่สุดระหว่างสี่เหลี่ยมที่อยู่ติดกันอย่างที่มันบอกไว้และฉันไม่รู้ว่าพวกเขาหมายถึงอะไรเกี่ยวกับฮิวริสติก เป็น 4 * D ที่ดูเหมือนจะไม่เปลี่ยนแปลงอะไร นี่คือฟังก์ชันฮิวริสติกของฉันและฟังก์ชั่นย้าย: def heuristic(self, node, goal): D = 5 dx = abs(node.x - goal.x) dy = abs(node.y - goal.y) return …

1
CUDA ของ nVidia เหมาะสมกับการคำนวณการค้นหาเส้นทางหรือไม่?
ฉันอยากรู้ว่ามันคุ้มค่าหรือไม่ที่จะทำการประมวลผล pathfinding บน GPU (โดยใช้ nVidia CUDAหรือเทียบเท่า) ในบางสถานการณ์หรือว่าเป็นความพยายามที่สูญเปล่า สถานการณ์ที่ฉันคิดจะเป็นเซิร์ฟเวอร์ที่มีผู้เล่นหลายคนที่ไม่มีหัวเพื่อทำหน้าที่ค้นหาเส้นทางสำหรับบอท ฉันสนใจ A * pathfinding โดยใช้ mesh navigation แต่ถ้ามีอัลกอริทึม pathfinding อื่นที่จะได้ประโยชน์จากการใช้ GPU ฉันชอบที่จะได้ยินมัน

1
มีขั้นตอนวิธีการหาเส้นทางที่จะจัดการประเภทการเคลื่อนไหวที่แตกต่างกันหรือไม่?
ฉันกำลังพัฒนาบอทสำหรับเกมกระดานจำลอง BattleTech http://en.wikipedia.org/wiki/BattleTechมันเปิดใช้แล้ว กระดานแบ่งออกเป็นหกเหลี่ยมแต่ละอันมีประเภทภูมิประเทศที่แตกต่างกันและระดับความสูง คุณขับหุ่นยนต์ที่เคลื่อนที่ข้ามมันเพื่อทำลายหุ่นยนต์ตัวอื่น ฉันรู้เพียงอัลกอริธึม Dijkstra และ A * แต่ปัญหาคือมีการเคลื่อนไหว 3 ประเภท: เดินวิ่งและกระโดดหกเหลี่ยมหลาย ๆ รูป (แต่ละอันมีกฎของตัวเอง) เดินและวิ่งเกือบจะเหมือนกัน เส้นทางที่ดีที่สุดอาจเป็นการผสมผสานหรือการเคลื่อนไหวแต่ละประเภท นี่คือตัวอย่างของแผนที่http://megamek.info/sites/default/files/isometric_view.png คุณรู้อัลกอริทึมที่ดีสำหรับการค้นหาเส้นทางที่ซับซ้อนหรือวิธีรวมผลลัพธ์ A * สำหรับการเคลื่อนไหวแต่ละประเภทหรือไม่

2
วิธีจัดการการค้นหาเส้นทางและการเคลื่อนย้ายเอนทิตีในโลกเครือข่ายขนาดใหญ่
เมื่อพิจารณาจากภาพด้านบนด้วยการแบ่งกระเบื้องออกเป็นกล่องขนาด 32x32 ฉันมีเอนทิตีที่ถูกทำเครื่องหมายเป็นผู้เล่นใกล้เคียง 'aggro' ที่เข้ามาใกล้ ฉันต้องการให้สัตว์ประหลาดตัวนี้ไล่ล่าผู้เล่น (และจะไล่ล่าผู้เล่นซักพัก) ปัจจุบันการเคลื่อนไหวเพียงอย่างเดียวของฉันได้ทำ interpolator อย่างง่ายสำหรับเอนทิตีระยะไกลและสิ่งนี้ทำงานได้เนื่องจากช่องว่างระหว่างการอัพเดตการเคลื่อนไหวมีขนาดค่อนข้างเล็ก ฉันไม่สามารถบอกลูกค้าได้ว่าสัตว์ประหลาดต้องการย้ายไปยังตำแหน่งที่เขา / เธออยู่เพราะจะทำให้เอนทิตีเคลื่อนที่เร็วกว่าที่ควร (สิ่งนี้สามารถแก้ไขได้ด้วยการใช้คณิตศาสตร์สำหรับการแก้ไข - ประสิทธิภาพ) แต่ที่สำคัญกว่านั้นไม่ได้ดูสมจริงและอาจติดผนัง! ฉันไม่ต้องการจำลองการเคลื่อนไหวทั้งหมดบนเซิร์ฟเวอร์หากสามารถหลีกเลี่ยงได้ ... แม้ว่าฉันจะเดาได้ แต่ก็ยังไม่สามารถแก้ปัญหาการตัดได้ ฉันสงสัยว่าโซลูชันเกี่ยวข้องกับการค้นหาพา ธ และส่งการอัพเดตโหนดเป็นระยะของไคลเอ็นต์และให้พวกเขาจำลองการเคลื่อนไหว แต่ฉันไม่แน่ใจ ขอบคุณ!

1
การค้นหาเส้นทางที่มีประสิทธิภาพในพื้นที่ว่าง
ฉันมีเกมตั้งอยู่ในอวกาศและฉันต้องการออกคำสั่งการเคลื่อนไหวซึ่งต้องใช้การค้นหาเส้นทาง ตอนนี้ฉันเข้าใจแล้วว่า A * และเช่นนั้นส่วนใหญ่ใช้กับต้นไม้และไม่ใช่พื้นที่ว่างที่ไม่มีโหนดการค้นพบ ฉันมีสิ่งกีดขวางบางอย่างซึ่งขณะนี้แสดงเป็น AABB แบบคงที่นั่นคือไม่มีสิ่งกีดขวาง "ภูมิประเทศ" ที่ไม่มีขอบเขต นอกจากนี้ฉันคาดหวังว่าอุปสรรคส่วนใหญ่จะประมาณได้อย่างสมเหตุสมผลว่าเป็นลูกบาศก์หรือทรงกลม ดังนั้นฉันจึงคิดที่จะใช้อัลกอริธึม pathfinding ที่ง่ายกว่ามากนั่นคือเพียงแค่ทำการฉายรังสีจากตำแหน่งปัจจุบันไปยังตำแหน่งเป้าหมายแล้วฉันจะได้รับรายการสิ่งกีดขวางโดยใช้การแบ่งพาร์ติชันอย่างรวดเร็ว สิ่งที่ฉันไม่แน่ใจเกี่ยวกับวิธีการกำหนดส่วนที่จัดทำแผนการรอบอุปสรรค สิ่งที่ฉันกำลังคิดอยู่ก็คือฉันจะใช้สนามที่มีศักยภาพ - นั่นคือทุกหน่วยจะรู้สึกถึงแรงผลักดันที่แข็งแกร่งจากกันและกันและแรงพอสมควรต่อจุดที่ต้องการ นี่ยังมีข้อได้เปรียบที่จะออกคำสั่งกลุ่มฉันก็สามารถสั่งให้กองกำลังระดับกลางไปยังนิติบุคคลอื่น แต่สิ่งนี้เห็นได้ชัดว่าไม่สามารถบรรลุทางออกที่ดีที่สุดได้ เขตข้อมูลที่เป็นไปได้นั้นจะได้รับการประมาณค่าอย่างสมเหตุสมผลเมื่อได้รับพารามิเตอร์ของฉันหรือฉันต้องการโซลูชันอื่นหรือไม่?
12 c++  path-finding 

3
คุณทำ AI เส้นทางต่อไปนี้ภายในเอนจินฟิสิกส์ 2 มิติเช่น farseer / box2d ได้อย่างไร
ฉันกำลังอยู่ระหว่างการเคลื่อนย้ายเกมบนลงล่างแบบ 2d ฉันได้ทำงานเป็นเครื่องมือทางฟิสิกส์ของร่างกายที่แข็งแกร่งอย่าง Farseer จนถึงตอนนี้ฉันเพิ่งแฮกรหัสฟิสิกส์ของฉันเองเมื่อจำเป็น ฉันพยายามเรียนรู้วิธีการทำสิ่งต่างๆที่นี่ อะไรคือวิธีที่เหมาะสมในการทำให้ AI ของคุณเดินไปตามเส้นทางที่กำหนดเมื่อคุณทำให้พวกมันแข็งตัวอยู่ภายในเครื่องยนต์ฟิสิกส์? หากฉันมีเส้นทางของโหนดการนำทางบนแผนที่ของฉันที่ฉันต้องการให้ AI ติดตามก่อนหน้านี้ฉันจะย้ายพวกเขาไปตามเส้นทางด้วยตนเองโดยการคำนวณตำแหน่งต่อไปที่พวกเขาควรจะอยู่ในขั้นตอนถัดไปและตั้งค่าเหล่านั้นด้วยตนเอง . แต่ตอนนี้พวกเขามีร่างกายที่แข็งแรงและถูกชนและกองกำลังใด ๆ ที่อาจโจมตีพวกเขาและทำให้พวกเขาหลุดออกจากเส้นทาง ดังนั้นเพื่อให้การเคลื่อนไหว AI ฉันเชื่อว่าตอนนี้ฉันควรจะใช้แรงกระตุ้น / กองกำลังกับพวกเขา? ฉันไม่ควรตั้งค่าตำแหน่งของแต่ละเฟรมด้วยตนเองอีกต่อไป ดังนั้นฉันคิดว่าฉันต้องออกไปจากโลกที่กำหนดไว้โดยที่ฉันบังคับให้ AI ปฏิบัติตามเส้นทางไปสู่โลกที่ไม่กำหนดซึ่งพวกเขาจะได้รับผลกระทบในทิศทางใด ๆ หากตีและฉันก็ผลักพวกเขาไปยังโหนดถัดไปในเส้นทาง เพื่อให้พวกเขาย้าย นั่นถูกต้องใช่ไหม? นั่นเป็นวิธีที่คนอื่นทำหรือไม่ นี่ทำให้เกิดคำถามบางอย่างเกี่ยวกับวิธีหลีกเลี่ยง AI ของคุณที่ติดอยู่ในมุมหนึ่งของทิวทัศน์ตอนนี้ว่าพวกเขาไม่ได้เดินในเส้นทางที่ถูกต้องพวกคุณจัดการกับสิ่งนั้นอย่างไร หรือจะเป็นการดีกว่าถ้าจะผสมทั้งสองวิธีและยังคงให้ AI ของคุณติดตามเส้นทางคงที่ด้วยการตั้งตำแหน่งของตนเองและตอบสนองต่อแรงอื่น ๆ ภายใต้สถานการณ์ที่คุณสามารถควบคุมได้ง่าย? ขอบคุณสำหรับคำแนะนำใด ๆ

1
การค้นหาเส้นทางที่คำนวณล่วงหน้าแล้วยังมีความเกี่ยวข้องหรือไม่
บริบท Old Lucas Arts (ScummVM era) ชี้และคลิกเกมผจญภัยกราฟิกที่ใช้การคำนวณเส้นทางก่อน นี่คือคร่าวๆของเทคนิค ขั้นตอนที่ 1 พื้นในแต่ละห้องถูกแบ่งออกเป็นสิ่งที่พวกเขาเรียกว่า "กล่องเดิน" ซึ่งค่อนข้างคล้ายกับโหนดในตาข่ายนำทาง แต่ จำกัด รูปร่างรูปสี่เหลี่ยมคางหมู เช่น: ______ _____ _________ _____ \ A | B | C | D \ \_____| | |_______\ |_____| | |_________| ขั้นตอนที่ 2 อัลกอริทึมออฟไลน์ (เช่น Dijkstra หรือ A *) จะคำนวณเส้นทางที่สั้นที่สุดระหว่างแต่ละโหนดและทุกคู่ของโหนดและเก็บขั้นตอนแรกของเส้นทางในเมทริกซ์ 2D โดยสร้างดัชนีในแต่ละมิติโดยใช้โหนดเริ่มต้นและสิ้นสุด เช่นใช้กล่องเดินด้านบน: ___ ___ …

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

3
เคลื่อนที่ไปรอบ ๆ / หลีกเลี่ยงอุปสรรค
ฉันต้องการเขียน "เกม" ที่คุณสามารถวางสิ่งกีดขวาง (สีแดง) แล้วจุดสีดำพยายามหลีกเลี่ยงมันและไปที่เป้าหมายสีเขียว ฉันใช้วิธีที่ง่ายมากในการหลีกเลี่ยงถ้าจุดสีดำอยู่ใกล้กับสีแดงมันจะเปลี่ยนทิศทางของมันและเคลื่อนที่ไปครู่หนึ่งจากนั้นมันจะเคลื่อนที่ไปข้างหน้าไปยังจุดสีเขียว ฉันจะสร้างเส้นทาง "ราบรื่น" สำหรับเครื่องเล่น "ที่ควบคุมด้วยคอมพิวเตอร์" ได้อย่างไร แก้ไข:ไม่ใช่ความเรียบเป็นจุดหลัก แต่เพื่อหลีกเลี่ยงการปิดกั้น "กำแพง" สีแดงและไม่ให้ชนเข้ากับมันแล้วหลีกเลี่ยง ฉันจะใช้อัลกอริทึมการค้นหาพา ธ ได้อย่างไรหากฉันมี 3 จุด (และอะไรจะทำให้สิ่งต่าง ๆ ซับซ้อนมากขึ้นถ้าคุณสามารถวางสิ่งกีดขวางได้หลายอย่าง?)
12 ai  path-finding 

5
ทำไมการเรียนรู้การเสริมแรงจึงไม่ค่อยถูกใช้ในการมองเห็น
อัลกอริธึมทางทฤษฎีกราฟเส้นทางที่สั้นที่สุดที่น่านับถือ A * และการปรับปรุงในภายหลัง สำหรับฉันแล้วดูเหมือนว่า RL เป็นกระบวนทัศน์ที่เป็นธรรมชาติมากขึ้นในการย้ายตัวละครไปรอบ ๆ พื้นที่เกม และถึงกระนั้นฉันก็ยังไม่ทราบว่าเป็นนักพัฒนาเกมเดียวที่ใช้เครื่องมือสร้างเส้นทางการเรียนรู้แบบ Reinforcement Learning (ฉันไม่ได้อนุมานได้เลยว่าแอปพลิเคชัน RL ในการค้นหาเส้นทางคือ 0 เพียงว่ามันมีขนาดเล็กมากเมื่อเทียบกับ A * และเพื่อน ๆ ) ไม่ว่าจะด้วยเหตุผลใดก็ตามไม่ใช่เพราะนักพัฒนาซอฟต์แวร์เหล่านี้ไม่รู้จัก RL เนื่องจากหลักฐานจากข้อเท็จจริงที่ว่า RL ถูกใช้บ่อยในที่อื่น ๆ ในเอ็นจิ้นเกม คำถามนี้ไม่ใช่ข้ออ้างสำหรับการเสนอความคิดเห็นเกี่ยวกับ RL ในการชี้แนะทาง ในความเป็นจริงฉันสมมติว่าการตั้งค่าโดยปริยายสำหรับ A * et al มากกว่า RL นั้นถูกต้อง - แต่การตั้งค่านั้นไม่ชัดเจนสำหรับฉันและฉันอยากรู้อยากเห็นมากเกี่ยวกับเหตุผลของมันโดยเฉพาะอย่างยิ่งจากทุกคนที่พยายามใช้ RL เพื่อหาเส้นทาง

1
Pathfinding พร้อมการเคลื่อนไหวแบบ 2 มิติที่ไม่ใช่แบบกริดเหนือภูมิประเทศที่มีลักษณะเหมือนกัน
ฉันกำลังมองหาทางออกที่ดีที่สุดในการหาเส้นทางในเกมของฉัน ในที่สุดแผนที่จะใช้กริด แต่เอนทิตีอยู่ในตำแหน่งที่ใช้ลอยและสามารถเคลื่อนที่ไปในทิศทางใดก็ได้ไปยังจุดใดก็ได้บนแผนที่ 'พื้นดิน' ในเกมของฉันมีค่าใช้จ่ายในการเคลื่อนไหวที่สม่ำเสมอ แต่แน่นอนว่าอาจมีอุปสรรคที่ขวางทาง อุปสรรคส่วนใหญ่จะเป็นแบบคงที่และแม้ว่าจะมีเอนทิตีเคลื่อนไหวอื่น ๆ ในเกมฉันอาจหนีไปโดยไม่พิจารณาสิ่งนั้น - มันเป็นเกมกลยุทธ์สไตล์โรงพยาบาลแบบมีมิติเท่ากันธีมดังนั้นจึงไม่มีการต่อสู้ บทความการค้นหาเส้นทางส่วนใหญ่ที่ฉันเคยเห็นครอบคลุมการเคลื่อนไหวแบบ 3 มิติหรือ 2D ตามตาราง ข้อเสนอแนะสำหรับสิ่งที่อาจครอบคลุมถึงกรณีการใช้งานของฉัน? ขอบคุณมาก.
12 2d  path-finding 

2
Tweaking AStar เพื่อค้นหาตำแหน่งที่ใกล้ที่สุดไปยังปลายทางที่ไม่สามารถเข้าถึงได้
ฉันได้ติดตั้ง AStar ใน Java และใช้งานได้ในพื้นที่ที่มีสิ่งกีดขวางที่สามารถเข้าถึงปลายทางที่เลือกได้ อย่างไรก็ตามเมื่อปลายทางไม่สามารถเข้าถึงได้เส้นทาง "ที่คำนวณ" จะไม่สามารถไปยังตำแหน่งที่ใกล้ที่สุด (ไปยังตำแหน่งที่ไม่สามารถเข้าถึงได้) แต่จะเป็นเส้นทางแบบสุ่มแทน มีวิธีที่เป็นไปได้ในการปรับแต่ง AStar เพื่อค้นหาเส้นทางไปยังตำแหน่งที่ใกล้ที่สุดไปยังปลายทางที่ไม่สามารถเข้าถึงได้หรือไม่?

2
A * การค้นหาเส้นทางสำหรับสิ่งกีดขวางแบบไดนามิกและผู้เล่นทำการบล็อก
สวัสดีฉันกำลังสร้าง TD ใน Unity 5 และต้องการความช่วยเหลือเกี่ยวกับ Pathfinding ของฉัน ฉันจะใช้การหาเส้นทางของ Arons A *สำหรับ AI ของฉันซึ่งทำให้ฉันสามารถใช้วัตถุแบบไดนามิกและอัปเดตเส้นทางในช่วงเวลาทำงาน อย่างไรก็ตามในเกมของฉันฉันต้องการให้ผู้เล่นสามารถบล็อกมินเนียนด้วยป้อมปราการพิเศษซึ่งจะบังคับให้มินเนี่ยนโจมตี "บล็อกทาวเวอร์" แทนการผ่านไปยังปลายทางของพวกเขา ฉันจะทำสิ่งนี้ได้อย่างไร ภาพเพื่อความชัดเจนมากขึ้น:
11 unity  c#  2d  ai  path-finding 

4
จะกำหนดช่วงของการเคลื่อนไหวที่เป็นไปได้ในเกมวางแผนแบบอิงทางเลี้ยวหรือไม่?
ฉันกำลังสร้างเกมวางแผนกลยุทธ์แบบ 2 มิติโดยใช้ c ++ และ SFML-2.0 การเคลื่อนไหวเป็นไปตามระยะทางมากกว่าที่อิงตามกริดโดยมีชิ้นส่วนรูปสามเหลี่ยมที่แตกต่างกันหลายชิ้นตามลำดับที่กำหนดแต่ละรอบอาจหมุนในตำแหน่งหรือเคลื่อนที่ไปข้างหน้า การเคลื่อนไหวจะทำงานในลักษณะที่ผู้เล่นเลือกตำแหน่งสำหรับชิ้นส่วนที่จะย้ายไปซึ่งสร้างเส้นทางที่เป็นไปได้สำหรับชิ้นส่วนที่จะใช้ เมื่อผู้เล่นยืนยันการตัดสินใจของเขาหรือเธอชิ้นส่วนจะย้ายไปตามเส้นทางนั้นไปยังตำแหน่งที่ต้องการ เส้นทางถูก จำกัด โดยปัจจัยสองประการคือระยะทางระยะทางหนึ่งชิ้นที่สามารถไปได้โดยคำนึงถึงการเลี้ยวใด ๆ (ดังนั้นหากมีเส้นโค้งมันจะเป็นความยาวตามแนวโค้งและไม่ใช่จากจุดหนึ่งไปยังอีกจุด); และมุมบังคับเลี้ยวชิ้นส่วนสามารถหมุนที่จุดใดก็ได้ (และสูงสุด) ในขณะเคลื่อนที่ (เช่นจาก -30 ถึง 30 องศา) คำถามของฉันคือฉันควรทำอย่างไรในการกำหนดช่วงของตำแหน่งที่ผู้เล่นสามารถเลือกได้ ฉันไม่แน่ใจทั้งหมดว่าสมการและ / หรืออัลกอริทึมที่จะใช้ที่นี่ แผนเดิมของฉันซับซ้อนเกินกว่าจะถึงจุดที่มันเป็นไปไม่ได้ที่จะนำไปใช้ให้อธิบายเพียงอย่างเดียวและฉันมาถึงจุดนี้โดยสิ้นเชิงเมื่อโครงการหยุดทำงาน ฉันจะกำหนดช่วงที่หน่วยสามารถเคลื่อนที่ได้โดยพิจารณารัศมีการเลี้ยวของมันอย่างไร ตัวอย่างเช่นในภาพด้านล่าง เส้นสีแดงสีน้ำเงินและสีเขียวล้วนมีความยาวเท่ากัน วงกลมสีม่วงหมายถึงช่วงการเคลื่อนไหวที่ยูนิตสามารถเคลื่อนที่ได้ (รูปร่างอาจไม่ถูกต้องและเส้นอาจไม่ใช่ความยาวเท่ากันจริง ๆแต่คุณได้แนวคิด)

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