Closed. This question is opinion-based。它当前不接受答案。
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            想改善这个问题吗?更新问题,以便editing this post用事实和引用来回答。
                        
                        在11个月前关闭。
                                                                                            
                
        
我有一个学校项目在为2D赛车游戏构建AI,它将与其他数个AI竞争。

我们获得了赛车场的黑白位图图像,我们可以在收到地图后为汽车选择基本统计信息(处理,加速度,最大速度和刹车)。 AI连接到游戏服务器,并多次为它提供当前加速和转向的第二个数字。顺便说一下,我选择的语言是C ++。
问题是


最好的策略或算法是什么(因为我想尝试并获胜)?我目前在脑海中想到了一些想法,也有一个或两个想法,但是在开始编写代码之前,我想我的观点是最好的。
关于这件事有什么好书?
我应该参考哪些网站?

最佳答案

这个问题没有“正确答案”-它是开放式的,可能会有许多不同的选择。

您可能希望研究reinforcement learning,以便在选择不同的控制统计信息后尝试使AI最佳地确定如何控制汽车。强化学习模型可以训练计算机尝试朝着一个好的系统进行工作,以便根据底层控制系统进行特定的操作。

要确定要使用哪些控件,可以使用某种形式的强化学习,或者您可以研究supervised learning算法,这些算法可以与控件的不同组合一起使用,并查看它们给出的“拟合”效果如何对于特定的地图。例如,您可以将地图分成小块,然后尝试查看在最大数量的块中哪些控件效果最佳。

就绘制您要采用的路径而言,A*是一种用于查找最短路径的著名算法。对于您而言,我不确定它的用处如何,但这是教科书告知的搜索算法。

为避免对手赛车手并试图使他们陷入更棘手的情况,您可能需要开发某种对手建模系统。通用投资组合是实现此目的的一种方法,尽管我不确定它们在这种情况下将有多有用。一种选择可能是在赛道和敌方赛车周围建立potential field来帮助您的赛车尝试避开障碍物;实际上,这可能是比A *更好的选择。如果您对战术演习感兴趣,直接进行minimax搜索可能是避免陷入困境或寻找诱捕对手的好方法。

我不是AI专家,但我认为以上链接可能是一个很好的起点。祝您比赛顺利!

关于c++ - 用于2D赛车游戏的AI的技巧,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5071640/

10-13 03:07