单击游戏交流网

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 87|回复: 0

斗地主AI-需求篇

[复制链接]

2

主题

2

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2022-11-29 14:21:36 | 显示全部楼层 |阅读模式
对于斗地主AI的兴趣,一方面来源于工作需要,另一方面也是一种自我挑战:能否模拟出类似真人斗地主的思维,并在人机对战中获得更高的胜率和得分。
首先来谈谈为什么需要游戏AI?


  • 游戏上线运营初期凑人气陪玩。减少玩家匹配等待的时间,让玩家随时能玩。这种陪玩AI一般追求的是模拟真人出牌思维。
  • 提升玩家体验。比如,玩家连输次数太多,派AI让玩家虐一局。这种被虐AI一般比较傻,拿的牌也比较差,就是去送的。
  • 比赛中补缺。比如,35人报名参加比赛,按3人一桌还剩余2人,此时需要AI凑桌。
  • 玩家掉线托管玩牌
  • 游戏压力测试。使用AI对游戏进行压力测试模拟大量用户游戏的场景。

目前有哪些主流斗地主玩法?


  • 经典玩法:叫三分
  • 欢乐玩法:抢地主
  • 癞子玩法
  • 不洗牌玩法
  • 二人斗地主
  • 四人斗地主
  • 找朋友玩法
斗地主的玩法丰富,对于AI来说核心中的核心是如何出牌跟牌。每个玩法也需要相应的AI功能支持,比如经典玩法需要如何叫分的AI。而癞子斗地主对于AI的运算要求相对较高一些。
斗地主AI主要有哪些功能?


  • 斗地主游戏各环节的AI逻辑

    • 叫分
    • 叫地主、抢地主、加倍
    • 出牌
    • 跟牌

  • 不同应用场景的不同AI逻辑

    • 模拟真人陪玩
    • 玩家托管
    • 提升玩家体验
    • 比赛
    • 压力测试


不同应用场景中,模拟真人陪玩是最复杂的,也是我们要讨论的场景。
叫分
一般的经典斗地主采用叫分的方式确定地主。1,2,3分别代表不同的底分,谁叫的分高,谁当地主。叫分逻辑会分析已发的手牌,并根据已现牌推算其他玩家手牌的可能性。分析结果一般包括: 必胜,概率胜,必输。处理逻辑也比较简单:

  • 必胜当然是叫高分抢地主
  • 必输当然不叫
  • 概率胜,则需要根据获胜的概率,确定叫不同的分数。
叫地主/抢地主
在欢乐玩法中采用叫地主、抢地主的方式确定地主。AI逻辑同样分析手牌,并推算其他玩法手牌的可能性。分析结果一般包括:必胜,概率胜,必输。大致处理逻辑:

  • 必胜尽量叫地主或抢地主
  • 必输就不叫,如果三人都不叫,可以获得重新发牌的机会
  • 概率胜,根据获胜的概率确定是否叫地主,根据实际AI效果调整概率阈值
加倍
欢乐斗地主玩法中抢完地主还可以选择加倍。同样根据已知牌分析输赢可能性,并根据是否获得地主进行综合考虑:

  • 必胜则继续加倍,扩大胜果
  • 必输则不加倍
  • 概率胜,根据获胜的概率确定是否加位

出牌
是一个最复杂的AI逻辑,要考虑非常多的情况来确定出哪一套牌。AI需要一个记牌器,记录所有已现牌,从而推测对手手牌的可能性。需要使用规则+推演+概率+角色等多种方式进行计算。在保证规则、策略、推演正确的情况下,尽量出获胜概率最高的一套牌。需要考虑的因素有:

  • 是否有必胜出法,如果有,则按照必胜出法选一套牌
  • 是否可以放走队友,比如,队友已经报单报双,或者推测队友是个3带1牌型。直接去队友能接上的牌,让队友跑掉
  • 是否有能收回来的牌
  • 是否有队友能接上的牌
  • 考虑防止出对手能大起的牌
  • 考虑不得不出的牌
跟牌
虽然跟牌也非常复杂,但是由于必须出相同类型的牌或者炸弹,选择范围较小,所以相对出牌要简单那么一点点。AI也需要根据记牌器,记录所有已现牌,推测对手、队友手牌。然后,结果规则、策略、概率、角色等多方面综合算出一个概率,选最大获胜可能的一套牌或者选择不要。需要考虑的因素有:

  • 选择能打过上家出牌的牌型
  • 是否需要顶对手
  • 是否需要让牌给队友
  • 是否需要搭顺风车出一套牌
  • 是否能炸了抢过出牌权后有必胜的出法

开篇主要是简单梳理一下斗地主AI的需求,后续对斗地主AI的规则、策略、概率和角色进行讨论,希望有志同道合的朋友一起研究讨论,欢迎评论或留言,谢谢。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|单击游戏交流网

Copyright © 2001-2013 Comsenz Inc.Template by Comsenz Inc.All Rights Reserved.

Powered by Discuz!X3.4

快速回复 返回顶部 返回列表