java中二维游戏的路径搜索
(首先,很抱歉我英语不好) Linux中有一个类似于“啃食”游戏的蛇游戏 游戏的一些功能!: -该电路板位于一个60*60的区域中,周围有墙,电路板中也有一些墙 -有四条蛇,4个程序员必须编写一个程序来查找它们的移动方法。(每个程序对应一条蛇) -决定下一步行动的时间是0.1秒,因此我们必须在0.1秒之前找到它,否则,snake将转到上一个方向 -蛇头不得撞击墙壁或其他蛇 -蛇不能向后移动(它是肮脏的,并且有负面影响) 墙的坐标在游戏中给了我们(x,y)。 在游戏的每个周期(0.1秒),其他蛇的心跳都会给我们 现在的问题是:如何找到最佳举措 你能帮我提出一些算法或者 多谢各位 您可以在此处看到游戏的屏幕截图:java中二维游戏的路径搜索,java,algorithm,graph,path-finding,Java,Algorithm,Graph,Path Finding,(首先,很抱歉我英语不好) Linux中有一个类似于“啃食”游戏的蛇游戏 游戏的一些功能!: -该电路板位于一个60*60的区域中,周围有墙,电路板中也有一些墙 -有四条蛇,4个程序员必须编写一个程序来查找它们的移动方法。(每个程序对应一条蛇) -决定下一步行动的时间是0.1秒,因此我们必须在0.1秒之前找到它,否则,snake将转到上一个方向 -蛇头不得撞击墙壁或其他蛇 -蛇不能向后移动(它是肮脏的,并且有负面影响) 墙的坐标在游戏中给了我们(x,y)。 在游戏的每个周期(0.1秒),其他蛇
大多数人都会提出类似于A*路径查找算法的建议,该算法在web上有很好的文档记录,我建议你去搜索这些建议中的任何一个。您需要做的是修改这些算法,使它们在给定的约束条件下正常工作。(建议使用A*并忽略0.1秒的限制不是很有帮助) 有几点我认为你应该考虑
-
当你在寻找一条道路时,你不仅要考虑其他蛇和墙作为障碍,还要考虑它们潜在的下一步行动。你不希望蛇头在下一步发生碰撞。这可能需要追踪他们的头部
- 您应该将路径搜索限制在一定的深度级别,这样您就不会耗尽时间。如果您使用A*算法,您应该会发现启发式元素将导致大多数路径指向您想要到达的点的方向。因此,如果你走近一点,下一次搜索可能会更容易
- 点选择并不是那么简单。例如,你不应该只选择最近的点,因为你正在与其他蛇赛跑。你应该试着选择你知道或认为你能首先到达的点。你可以简单地测量蛇和所有点之间的距离。考虑到对方的蛇试图接近他们,看看你是否能打败他们,因为你离得更近。选择你认为你能赢的分数
- 将自己视为障碍可以防止任何倒退