陳新龍
在往期的《掌控板之猜拳小游戲》中我們已經(jīng)學(xué)習(xí)了猜拳游戲各種情況的邏輯判斷。今天我們不用掌控板,而是利用Mind+豐富的擴(kuò)展功能制作出讓AI智能通過電腦攝像頭識別人的出拳,與AI之間直接玩猜拳的全新猜拳小游戲。在游戲中會涉及到人工智能中的圖像識別功能,以及根據(jù)需求靈活運用模塊原有功能,在學(xué)習(xí)制作游戲的同時可以拓展大家的知識面(圖1)。

Mind+比Scratch有更加豐富的功能模塊,包括支持更多的硬件連接,網(wǎng)絡(luò)服務(wù)……今天我們需要用到網(wǎng)絡(luò)服務(wù)中的“文字朗讀”和“AI圖像識別”技術(shù)(圖2)。

文字朗讀:用戶可以根據(jù)自己的需要選擇不同的語言,朗讀出不同的文字;
AI圖像識別:使用圖像AI,可以識別生活中有趣的東西。如人臉識別(性別、年齡、臉型、顏值、眼鏡、表情、真人)、人臉對比、常用物體識別(植物、動物、貨幣)、文字識別(文字、數(shù)字、車牌)、手勢識別等。只用一臺帶攝像頭的電腦和流暢的網(wǎng)絡(luò)可體驗AI圖像識別玩法。
程序共有7個角色,小貓角色作為解說助手,在的游戲運行過程中說明玩法和步驟。還有電腦和玩家的各三種手勢(石頭、剪刀、布)。
點擊空格鍵開始游戲,電腦自動出拳(如果用戶想看系統(tǒng)出拳的結(jié)果可以按1鍵)。玩家需在攝像頭前進(jìn)行拍攝識別(在識別的過程中不要露出臉部,否則的話很難識別成功),隨后系統(tǒng)判定獲勝方。
用變量分別記錄電腦和玩家出拳的手勢。變量分為三部分:玩家三種出拳手勢,電腦三種出拳手勢,以及驗證電腦和玩家是否出拳……為保證視覺效果這些變量需全部隱藏(圖3)。

小貓代碼分析:
小貓會用字幕和語音提示游戲步驟(圖4)。

電腦用1到3之間的隨機(jī)數(shù)確定出拳手勢(1:石頭2:剪刀3:布)。用廣播與其他角色進(jìn)行交互(圖5)。

AI圖像識別通過攝像頭識別玩家出拳的結(jié)果,語音提示玩家出拳后,在彈出的攝像頭畫面中做出相應(yīng)的手勢(石頭、剪刀、布)。攝像頭會截取圖片發(fā)往服務(wù)器進(jìn)行AI圖像識別,其實AI圖像識別這個擴(kuò)展并沒有專門為猜拳適配石頭、剪刀、布的手勢,我們只是借用相同的手勢:石頭使用拳頭、剪刀使用數(shù)字二、布使用數(shù)字五。
系統(tǒng)會一直截取圖片,直到識別出需要的手勢,界面的右邊猜拳圖片根據(jù)識別結(jié)果顯示(圖6)。

接收到雙方手勢后,根據(jù)猜拳的勝負(fù)邏輯進(jìn)行判斷,這部分邏輯判斷往期的文章已經(jīng)學(xué)過了,最后說出勝負(fù)結(jié)果(圖7)。

根據(jù)勝負(fù)結(jié)果顯示相應(yīng)的手勢角色。
看完與AI猜拳的核心代碼后,程序還有幾個問題需要你自己解決了。電腦出拳結(jié)束后,玩家按下1鍵可以查看結(jié)果。當(dāng)電腦和玩家出拳結(jié)束后,系統(tǒng)是如何判斷勝負(fù)的呢?