纸足球Java

时间:2013-04-09 12:34:56

标签: java algorithm bots

我想在Java中实现一个播放paper soccer的机器人,但我不知道如何开始。

我需要选择哪种算法才能获得最低的复杂度?关于我怎么做的任何想法?

3 个答案:

答案 0 :(得分:3)

首先学习如何编写类似的算法。

国际象棋http://www.sluijten.com/winglet/

游戏树算法简介

http://www.hamedahmadi.com/gametree/

答案 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