我想在Java中实现一个播放paper soccer的机器人,但我不知道如何开始。
我需要选择哪种算法才能获得最低的复杂度?关于我怎么做的任何想法?
答案 0 :(得分:3)
答案 1 :(得分:0)
尝试minimax,但这不会那么容易。
答案 2 :(得分:0)
一个简单的算法是测试8个方向中的每个方向的有效性,然后随机选择其中一个方向。你可能希望偏向更接近对手目标的方向。 您可以在所有选项上平均分配60%的概率,然后为最佳选择分配20%的额外选项,为第二和第三最佳选择中的每一个分配额外的10%。如果只有2个选项,则分配75/25%的几率。当只有一个可用选项时,则不需要随机性。
修改强>
示例1: 开始位置,屏幕顶部的目标,每次移动的机会百分比:
17.5 27.5 17.5
7.5 7.5
7.5 7.5 7.5
示例2:
那么,如何将这些动作从最好到最差排名?我会在每个方向上使用距离球门的距离,如果向目标移动则添加它,如果你离开则减去。因此,如果目标是向上7个方格和左边3个方格,那么每个方向的得分将是:
10 7 4
3 -3
-4 -7 -10
假设在上述情况下有5种可能的举动,并且非法行动恰好是向上,向右和向右,然后是每次行动的百分比机会(非法行动被分配0次机会) :
32 0 0
22 22
12 12 0