加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – AI算法设计:纸牌游戏

发布时间:2020-12-15 02:25:41 所属栏目:Java 来源:网络整理
导读:目前我正在开发一款名为Briscas或Briscola,http://en.wikipedia.org/wiki/Briscola的西班牙纸牌游戏 简而言之,这是一个纸牌游戏,其中两队2名球员相互比赛(他们看不到彼此的手牌,甚至不能看到队员),只有在开始牌时洗牌,然后将三张牌交给每个玩家.顺时针方向,
目前我正在开发一款名为Briscas或Briscola,http://en.wikipedia.org/wiki/Briscola的西班牙纸牌游戏

简而言之,这是一个纸牌游戏,其中两队2名球员相互比赛(他们看不到彼此的手牌,甚至不能看到队员),只有在开始牌时洗牌,然后将三张牌交给每个玩家.顺时针方向,每个人都会抛出一张牌以试图赢得那一回合.谁赢了那个转折点.然后,仍然以顺时针方式,赢得最后一轮的玩家从牌组顶部取得一张牌,并将玩家从他/她的左侧拿下,依此类推.然后你会继续玩,直到甲板空了.谁曾经有过更多积分.

细节:
甲板尺寸:40
球员:4人(2队2人)
卡具有特定价值. (从0到11)

问题

I know that straight MiniMax would be to expensive. What algorithms are typically used
for these kind of card games?

Also any literature that you can point to will also be beneficial.

谢谢

解决方法

这取决于你想要获得多么雄心勃勃,但作为一个开始,你需要一个快速的引擎来模拟游戏.

然后你需要一个快速的,因而可能很简单的模型播放器.

这个模特玩家没有时间计算前锋.它只能对预定义的状态做出反应.所以你的第一步是构建一个足够好的游戏状态.游戏状态应该包括你的牌和一些已经丢弃的牌的历史统计数据以及玩家如何玩牌.

接下来,您将构建一个作用于状态的模型播放器.或

一个)
一手写,根据你定义的一些启发式播放.但请记住 – 还没有繁重的计算!

B)
写一个普通的玩家,但省略常数和截止值.使用您的模拟引擎和遗传算法与锦标赛选择来演变所述值的良好参数.对于奖励积分,以两人一组的方式进化你的球员,以便他们很好地相互补充.

C)
使用更多的人工智能,让一个基因编程系统(有几个成熟的系统.找一个可以做锦标赛的人.你甚至可以自己实现一个,但是不要忘掉了:)用你的状态为你写整个玩家作为输入.

下一步:

要么你已经有一个伟大的球员,可以认为自己已经完成,或者你想让它变得更好.如果你想让它变得更好你的运气!

使用蒙特卡罗模拟来演出大量的牌,在某种情况下你的每一个选择(如果我理解正确,总会有三种选择).让你的模型玩家在每次选择时做出决定,让你的蒙特卡罗模拟在你每次进行模拟之间随机地随机移动.

现在你应该有一个伟大的纸牌播放器!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读