猜數字(又稱 Bulls and Cows )是一種古老的的密碼破譯類益智類小遊戲,起源于20世紀中期,一般由兩個人或多人玩,也可以由一個人和電腦玩。
本文嘗試用樹莓派人工智能技術實作經典的python小遊戲。首先程式自動選擇一個1到20之間的數字,然後由使用者來猜,使用者猜測的數字由攝像頭拍照,然後識别,與标準答案對比後,給出相應的語音提示,如猜大了,猜小了,猜對了。使用者根據程式的提示資訊,繼續猜測,直至猜對。
本文主程式包括四部分,分别是遊戲初始化、guess子線程、check子線程和結束提示。下面依次進行說明。

猜數字001.png (19.5 KB, 下載下傳次數: 1)
2020-5-5 08:50 上傳
一、遊戲初始化
建立遊戲初始化函數
1、建立結束遊戲變量并指派為0
2、建立測試次數變量并指派為0
3、建立開始檢測變量并指派為0
4、建立标準答案變量并指派為取一個随機數,最大數可自由設定,如10、20、1000,甚至更大。
5、輸出程式自動設定的标準答案
為了幫助大家了解,可以輸出标準答案,程式設計檢驗完成後,可将此積木禁用。
6、建立輸出回報變量并指派為歡迎您參與猜數字小遊戲!
程式開始前給出一點程式開始的語音提示,增強互動性。當然也可以添加更多的語音提示内容。
7、播放語音提示内容

猜數字002.png (54.9 KB, 下載下傳次數: 1)
2020-5-5 08:50 上傳
二、guess子線程:
1、建立guess子線程
2、建立guess函數
注意子線程名稱與函數名稱要完全一緻。特别是大小寫也要完全一緻。
3、建立紅外值變量,接收紅外線傳感器傳回的資料。
4、條件判斷,如果紅外值為真。
5、輸出紅外值,便于程式調試。
6、給紅外值指派為0
給條件判斷增加退出的條件,確定觸發一次,隻執行一次。
7、輸出正在拍照的資訊
由于受硬體裝置影響,給出提示,告知使用者程式運作到哪一步了。
8、建立照片變量,接收攝像頭拍照得到的資料。
9、輸出拍照已經結束的提示資訊。
10、輸出圖檔到網頁,用于程式調試。
11、建立您的答案變量
将圖檔識别的數字資訊指派給您的答案變量。
12、将答案變量擷取整數後再指派給您的答案
圖檔識别後擷取的資料是字元串類型的,後續的數字比較需要數字型的資料,是以增加擷取整數積木,使字元串類型的資料變為數字型的資料。
13、語音播報您的答案。
增加延時2秒,考慮網絡因素。
14、輸出您的答案變量,便于調試。
15、指派開始檢測變量為1
為下一線程開始提供條件。
16、關閉攝像頭。
用完了攝像頭,要及時關閉。最大限度保護攝像頭,同時也友善下次使用。

猜數字003.png (208.6 KB, 下載下傳次數: 1)
2020-5-5 08:50 上傳
三、check子線程
1、建立check子線程和check函數:
注意子線程名稱與函數名稱要完全一緻。特别是大小寫也要完全一緻。
2、條件判斷,如果開始檢測變量為1,則開啟後續程式。
3、指派開始檢測變量為0,確定後續程式隻運作一次。
4、判斷您的答案與标準答案是否一緻。
5、如果答案一緻,指派輸出回報為猜對了,祝賀您!
6、如果答案一緻,指派結束結束遊戲變量為1,為退出程式提供條件。
7、如果您的答案大于标準答案,指派輸出回報為您猜的數字太大了。
8、如果您的答案小于标準答案,指派輸出回報為您猜的數字太小了。
9、将輸出回報變量的值輸出到螢幕,便于程式調試。
10、如果結束遊戲變量為1或者測試次數變量為5,
說明已經猜對了,或者已經用完了測試次數,那麼程式就應該結束了。
11、增加輸出回報變量的内容。
在原有的輸出回報提示資訊的後面再追加上,謝謝您的N次參與。
其中測試次數是一個變量,由程式自動調用。
12、語音播報回報資訊。
13、停止check子線程。
14、如果沒有猜對,同時,還有測試機會。
15、将原來的輸出回報後面追加上您還有N次機會。
其中測試次數是一個變量,由程式自動調用。
16、語音播報測試回報。

猜數字004.png (226.67 KB, 下載下傳次數: 1)
2020-5-5 08:50 上傳
至此,猜數字小遊戲已經全部結束,仔細檢查一遍你的程式,運作測試一下吧!
喜歡更多原創作品請關注公衆号四五創客。

四五創客公衆号.jpg (28.06 KB, 下載下傳次數: 1)
2020-5-5 08:52 上傳