台灣棋牌遊戲交流論壇

標題: 用Python制作斗地主AI出牌器,赢取海量“财富”,走上人生巅峰! [打印本頁]

作者: admin    時間: 2022-2-12 23:26
標題: 用Python制作斗地主AI出牌器,赢取海量“财富”,走上人生巅峰!
媒介

在撲克牌牌型辨认的時辰因為利用的是特定模板匹配,只合用于固定辨别率的某遊戲大厅的斗田主,而没法合用于大部門的斗田主,特别是某手遊助手的斗田主。因而筹算經由过程YOLOv5算法举行撲克牌方针检测與辨认,从而实現AI出牌。

那末如今咱们就一块兒来进修建造一個斗田主出牌器,看看AI是若何来帮忙咱们斗田主,赢取海量欢畅豆,走上豆豆巅峰的吧!

起首一块兒来看看AI斗田主出牌器的结果:

出牌器实現结果:

可以看到,该遊戲平台自带的举荐牌型是一對八,而咱们這款出牌器举荐出一對A,可以看到结果仍是比力较着的。

下面,咱们起头先容這個AI出牌器的建造进程。

1、焦点功效設计

這款出牌器是基于以前的项目開辟的,焦点是DouZero,操纵练习好的AI模子给出最优出牌方案。

以是咱们起首要让這個出牌器确认一個AI出牌脚色,代表咱们玩家本身。

其次咱们只要给這個AI出牌器输入玩家手牌和三张底牌。确认好田主和农夫的各個脚色,奉告它三小我對应的瓜葛,如许便可以肯定队友和敌手。咱们還要辨认每轮其他两人的出牌并将其输入到出牌器,如许出牌器便可以按照出牌数据,实時提供应咱们最优出牌决议计划,率领咱们取告捷利。

那末若何获得三者之間的瓜葛呢?谁是田主?谁是农夫?是本身一人作战仍是农夫互助?本身玩家的手牌是甚麼?三张底牌是甚麼?其别人出牌环境是甚麼?這些也都必要在開局后渐渐确认。

拆解需求后,收拾出焦点功效以下:

UI設计排版结構

显示三张底牌

显示AI脚色出牌数据區域,上家出牌数据區域,下家出牌数据區域,本局胜率區域

AI玩家手牌區域

AI出牌器起头遏制

手牌和出牌数据辨认

遊戲刚起头按照屏幕位置,截圖辨认AI玩家手牌及三张底牌

确认三者之間的瓜葛,辨认田主和农夫脚色,确认队友及敌手瓜葛鞋襪除臭噴劑,

辨认每轮三位玩家挨次出了甚麼牌,刷新显示對应區域

AI出牌方案输出

加载练习好的AI模子,初始化遊戲情况

每轮出牌果断,按照上家出牌数据给出最优出牌决议计划

主動刷新玩家残剩手牌和本局胜率展望

2、实現步调

1. UI設计排除蟎片,版结構

因為咱们是基于以前開辟的AI出牌器举行開辟,以是咱们不必要从新建造界面,只必要理解该界面設计,并将通用的撲克牌牌型辨认参加得手牌和出牌数据辨认便可以了。

其利用的是pyqt5,举行简略的UI结構設计,焦点代码以下:

实現结果以下:

2. 手牌和出牌数据辨认

下面咱们必要截取遊戲屏幕特定區域,并将响应截圖送入提早练习好的神經收集中举行圖象辨认,如许才能获得AI玩家手牌、底牌、每轮出牌、三者瓜葛(田主、田主上家、田主下家)。

辨认AI玩家手牌及三张底牌:

咱们可以截取遊戲屏幕的固定位置,送入练习好的YOLOv5收集,来辨认當前AI玩家的手牌和三张底牌。焦点代码以下:

结果以下所示:

田主、田主上家、田主下家:

同理咱们可以按照遊戲屏幕截圖,辨认田主的圖标,确认田主脚色。焦点代码以下:

结果以下所示:

如许咱们便可以获得玩家AI手牌,其他玩家手牌(展望),田主三张底牌,三者脚色瓜葛,出牌次序。

3. AI出牌方案输出

這一部門,咱们仍然是基于以前的项目所用到的DouZero開源的AI斗田主了。DouZero项目地。咱们必要将该開源项面前目今载并导入项目中。建立一個AI玩家脚色,初始化遊戲情况,加载模子,举行每轮的出牌果断,節制一局遊戲流程的举行和竣事。

但在這进程中必要果断斗田主中其他二人的出牌环境,包含期待不出出牌。以是在這一阶段,咱们练习了ResNet50收集,将對应區域的圖象送入收集中举行三种状况的果断。若是是出牌的话,那末再将對应區域的圖象送入YOLOv5收集举行牌型辨认。

出牌、不出、期待状况:

同理咱们可以按照遊戲屏幕截圖,辨认其别人出牌區域,果断其出牌状况 。焦点代码以下:

结果以下所示:

到這里,全部AI斗田主出牌流程根基已完成為了。

3、出牌器用法

依照上述进程,這款AI出牌器已建造完成為了。后面应當若何利用?

若是不想钻研源码,只想利用這款AI斗田主出牌器,验证下结果,那末下面起头先容若何設置装备摆設情况并運行這個AI出牌器。

1. 情况設置装备摆設

起首咱们必要安装這些第三方库,設置装备摆設相干情况,以下所示:

2. 坐标调解确认

咱们可以打開斗田主遊戲界面,把AI出牌器步伐窗口必要移至右下角,只要不要遮挡手牌、田主标记、底牌、汗青出牌這些關头位置,便可以。

其次咱们要确认屏幕截圖获得的各個區域是不是准确。若是有问题必要举行區域位置坐标调解。

调解無误后,结果以下:

3. 運行测试

當所有情况設置装备摆設完成,各區域坐标位置确认無误以后,下面咱们便可以直接運行步伐,测试结果啦~

起首咱们運行AI出牌器步伐,打開欢畅斗田主遊戲界面,进入遊戲。當玩家就位,手牌分發终了,田主身份确认以后,咱们便可以点击画面中起头按钮,让AI来帮忙咱们斗田主了。

下面可以一块兒来看看這款AI出牌器的实行结果喔,看看AI是若何率领农夫打垮田主,取告捷利的!

若是本文對你有帮忙,接待点赞&在看&分享~

這對我继续分享&创作优良文章很是首要!

感激

前些天号主应粉丝请求,建了一個資料收拾进修群,已開端完美

一共两個群,一個爬虫交换群,一個資料收治療香港腳,拾进修群

不外,資料收拾进修群,是要收费的,公家号文章代码會陸续收拾更新

如今的入群用度為19.9元,暂定為100人

满一百人后,會涨价致29.9元

有必要参加資料收拾进修群的,可以接洽我或直接赞美便可以

想参加爬虫交换群进修前进的直接接洽我便可以

固然,資料收拾进修群的資料加倍完备,體系

直接在文末赞美便可以获得資料收拾进修群相干信息

后续爬虫資料會陸续更新,一块兒交换进修




歡迎光臨 台灣棋牌遊戲交流論壇 (http://bbs.jastw.com.tw/) Powered by Discuz! X3.3