人工智能掼蛋大赛参赛记录

首先感谢主办方,虽然只是拿了个优胜奖,但是也有5000块奖金,吃的住的都很好!!
大赛官网:
https://www.bagevent.com/event/6808642
参赛选手作品代码:
http://gameai.njupt.edu.cn/gameaicompetition/guandan_machine_code/index.html

因为代码很多而且较复杂,就不放上来了,虽然说是人工智能,但是大家用的都是if策略写的(其实有考虑过增强学习,但是因为时间原因和实现难度还是选择了使用策略来写)
说下基本的思路:
先理牌,后出牌,核心是出牌的轮次最少。
比如34567作为顺子打出去只要一轮就能出完,但是如果单打的话需要打5论。组牌方面,炸弹最优先,因为炸弹在回合外必定能打出去,所以可以记作是-1轮,其次是顺子,然后其他的排型三连对,钢板,三带二则是要看情况打。因此在理牌阶段优先组炸弹、顺子,然后把牌分为3张,2张,1张这样的情况,出牌的时候通过随机函数在能出的牌型里选,优先出点数小的顺子-三连对-钢板,然后再是打对子和单张。
应对手牌的时候的先看是不是自家,自家的牌不压,原则是尽量不拆牌打,如3张的牌,最好不要拆除2+1打,除非对方手牌数较少时(我设置的阈值是18和10这两个阶段),炸弹则是用随机函数来决定,对面手牌数越少的时候扔的几率越大。

看了和人类比赛的过程,发现在小局里能赢人一两把,但是大局还是被碾压,前中期的出牌问了职业选手的意见,是没什么问题的,但是在残局阶段,代码处理的远远不如人类配合的好,比如人类选手会有一种“喂牌”的操作,如自家队友只剩两张牌,那么就会打一个较小的对子来让队友抢头游,而写的代码对于这种情况没有比较好的处理,因为原则上是尽量不压自己队友的牌。总的来说,代码输在和队友的配合上。

在这次比赛中还是学到了不少东西的,也学会了怎样玩掼蛋,希望主板方办的越来越好!

你可能感兴趣的:(深度学习/自然语言处理)