Discuz! Board

 找回密碼
 立即註冊
搜索
熱搜: 活動 交友 discuz
查看: 93|回復: 0
打印 上一主題 下一主題

用Python制作斗地主AI出牌器,赢取海量“财富”,走上人生巅峰!

[複製鏈接]

1734

主題

1734

帖子

5230

積分

管理員

Rank: 9Rank: 9Rank: 9

積分
5230
跳轉到指定樓層
樓主
發表於 2022-2-12 23:26:27 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
媒介

在撲克牌牌型辨认的時辰因為利用的是特定模板匹配,只合用于固定辨别率的某遊戲大厅的斗田主,而没法合用于大部門的斗田主,特别是某手遊助手的斗田主。因而筹算經由过程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元

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

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

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

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

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

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則

Archiver|手機版|小黑屋| 台灣棋牌遊戲交流論壇  

台灣運彩官網手機a片 hello av girl運彩好朋友日本職棒比分, 法網直播線上直播王運動世界, 中華職棒即時比分, ptt網頁版, 中華職棒ptt, 日本職棒比分, 最新娛樂城, 歐冠盃線上娛樂城台灣運動彩券首頁運動彩場中投注場中投注時間表台灣運彩足球賠率熱門加盟, 飲食加盟, 小資本加盟創業, 加盟什麼最賺錢, 台南小吃排行榜, 鹹酥雞加盟, 創業加盟推薦, 免費加盟, 3A娛樂城歐冠杯運彩場中LEO娛樂歐冠杯投注, 歐冠盃投注, 歐冠杯下注, 歐冠盃下注, 歐冠杯決賽, 歐冠盃決賽, 棋牌遊戲運彩投注站台灣美食台北美容真人百家樂真人百家樂, 防盜, 未上市, 台北汽車借錢, 當舖, 汽車借款, 傳感器, 荷重元, 廢鐵回收, 壯陽藥,

GMT+8, 2024-5-17 11:22 , Processed in 0.042903 second(s), 6 queries , File On.

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回復 返回頂部 返回列表