首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >算法击败机器人,朝着可预测的奖品方向移动

算法击败机器人,朝着可预测的奖品方向移动
EN

Stack Overflow用户
提问于 2013-05-10 06:20:49
回答 1查看 271关注 0票数 0

对于这个游戏,有一个10x10的棋盘和几个不同的奖品,值从1到9,有几个简单的机器人在玩,其中一个总是追逐最近的奖品,另一个总是追逐分配给它的最大分数的奖品。机器人和奖品随机放在棋盘上。任务是创建另一个简单的AI,它总是收集总点数最高的点数并赢得游戏。

我该如何在奖品点数和奖品距离之间进行选择,才能让这个新的AI总是赢得比赛?我在想,我更喜欢更接近的奖品,但如果它比最接近的奖品大2,那么我会倾向于更大的奖品,然而这并不总是获胜。

机器人不知道机器人在哪里,如果一个机器人为了一个奖品移动8个空间,另一个机器人可以移动8个空间并在此期间获得多个奖品。所有的机器人都可以同时移动,并且可以沿对角移动。一旦棋盘上没有奖品,游戏就结束了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-10 06:31:13

没有办法保证胜利。如果机器人/奖品是随机放置的,那么肯定会有随机的放置,这会让你在其他机器人获得奖品之前离奖品太远。

既然你知道其他机器人的确切行为,你就可以模拟它们未来在给定棋盘上的所有动作。然后,您可以枚举所有可能的走法作为树和棋盘状态,然后查看树叶并找到给您一个获胜分数的那个。换句话说,每个分支都是您进行的移动,节点表示板状态,包括其他机器人将进行的移动。此外,这不会是一个二叉树,每个节点将根据你可以移动的方向进行分支。您将在进行单个实际移动之前完全构建此树,这样一旦您选择了最佳路径,您就可以预测游戏的结果。这是可能的,因为其他机器人以可预测的方式移动。

此外,在移动时,您可以添加检查,以确保其他机器人按照您预期的那样移动,就像调试功能一样。根据系统的操作方式,他们可能会在决定移动之前看到您的移动,这取决于每个人是同时移动还是一次一个移动。无论哪种方式都可以做到,你只需要确保你的模型是准确的。

请注意,可能还有其他树叶,在那里你有更大的分数,但因为其他机器人中的一个控制了另一个而输了。即(you:12,a:1,b:17) vs. (you:11,a:10,b:9)

最成功的路径可能是那些利用其他机器人的行为的路径,例如,当它离你更近的时候,抓住最高的奖品,导致贪婪的机器人向它松动。如果你有足够的动作,也可以在途中转移奖品。不过,您不必为此行为编写代码,因为当您创建树并找到最佳的移动序列时,它将隐式地发生。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16472102

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档