成绩嘛,51进32成功入围,32进16排第17……神一样的RP

好吧反正是无所谓的比赛,说下比赛内容之类的吧

题目很简单:一个简化的不能在简化的麻将游戏,要求写个AI,每一轮(24局)时间不能超过3s否则算超时,如果有不合法的操作(诈和3次、乱碰乱出牌等等)都直接托管给一个不会胡的AI。得分规则是这样的:正常胡1分,自摸胡3分,清一色5分,自摸清一色15分。整个工程(via vs2010)都给好了而且居然没有bug,比去年强不少。

我乱搞了个算法,纯粹是按照我打麻将的方法写的。。。首先把单张的门风牌打出去,然后把幺九中的不可能留的牌(如只有1张1,1张3没有2那么就不要1)打出,然后优先把牌数少的花色里的断张牌打出去,如果还没有的话就给每张牌一个权重,赋值为能够匹配上多少个三元组,取权重最小的那个,当最小的权重还比较大的时候我认为此时有可能打出某张牌就可以听牌了,那么枚举一下,算出扔掉哪张牌以后胡的张数(计算剩余牌数)最多就扔哪张,听牌以后随着牌局的推移有可能发生改变,到时候按照新权重在计算就行了。当然还有就是,能碰就碰,能杠就杠。

本来加了两个优化:一个是听牌后不再改,一个是在最后阶段如果还没听牌的话优先不点炮尽量流局。可惜经过测试发现效果都不是很好,于是就注释掉了。。。

猛然发现ACMer和OIer里面好多麻将神啊TAT太厉害了。。。

没骗到奖金,拿熊走人了。。。百度你好百度再见