
發布
注冊
/
登錄小恐龍
關注創建者:他說Python 創建時間:2020-11-28

小恐龍的實例教程
相關文件
關注公眾號:Python學習指南,回復“恐龍跳一跳”即可獲取
環境搭建
安裝Python并添加到環境變量,pip安裝需要的相關模塊即可。
原理介紹
游戲規則簡介:
玩家通過空格鍵控制一只小恐龍的前進方式,當小恐龍觸碰到植物或者飛龍時,游戲結束。小恐龍躲避的植物和飛龍越多,得分越高。
逐步實現:
Step1:定義精靈類
為了方便實現小恐龍和植物以及飛龍之間的碰撞檢測,我們先定義一些精靈類,包括:
① 植物類
其中,move函數的作用為使隨機生成的植物不斷地左移,來實現小恐龍不斷右移的效果。
② 飛龍類
飛龍類的定義要略微復雜一些,因為如果我們想讓飛龍飛起來更逼真一些,就必須每隔一段很小的時間,就對飛龍的狀態進行轉換。具體而言,飛龍的飛行狀態有兩種,即翅膀向上和翅膀向下:
我們需要做的就是每隔很短的一段時間,就讓飛龍的翅膀由其中一種姿勢轉為另外一種姿勢。
③ 小恐龍類
小恐龍類的定義與飛龍類類似,只不過狀態要更加豐富一些,并且通過勻加速直線公式模擬恐龍的跳躍和下降的動作。
Step2:定義場景類
我們需要定義一個簡單的場景類(道路和云等場景),來使我們的游戲效果更加逼真:
這里唯一需要注意的就是場景的左移速度應當與植物類一致(畢竟它們理論上都應當是相對靜止的),并且需要三張場景圖同時左移來保證畫面的連續性。
Step3:游戲主循環
先初始化,內容包括加載游戲素材文件、實例化之前定義的精靈類和場景類、定義一些必要的常量和用戶事件等:
然后就可以進入游戲主循環了:
主循環主要包括四個功能,一是事件檢測;二是不斷地產生、移動并畫出相應的場景和精靈類;三是碰撞檢測;四是統計并顯示當前分數。
All Done!
展開 關注公眾號:Python學習指南,回復“小恐龍游戲2”獲取源碼
環境搭建
安裝Python并添加到環境變量,pip安裝需要的相關模塊即可。
原理簡介
T-Rex Rush是谷歌瀏覽器里自帶的一個彩蛋小游戲,電腦斷網的時候按下空格鍵就可以觸發?;蛘咧苯釉L問如下鏈接也可以:
https://chromedino.com/
大概長這個樣子:
玩法很簡單,玩家通過操縱空格鍵來控制小恐龍跳躍或者不跳躍,從而躲避路上的障礙物。當小恐龍不小心撞到障礙物時,游戲結束。
當前離小恐龍最近的障礙物與小恐龍的水平距離;
當前離小恐龍最近的障礙物離地面的高度;
當前離小恐龍最近的障礙物的寬度;
當前離小恐龍最近的障礙物的高度;
小恐龍水平方向上的奔跑速度.
拿兒童學步來舉例,如果小朋友努力邁出第一步,就會獲得父母的鼓勵——可能是鼓掌叫好,也可能是一塊糖;但如果小朋友堅決不肯學習走路,那父母就不會給他糖吃了。強化學習就是依照這類激勵行為而設置的。
而在這個游戲中,對我們的AI小恐龍來說,強化學習需要讓他在無監督的情況下,先認識到做出不同動作的結果,并且以獲得高分為最高激勵。
一個典型的強化學習閉環
Ravi Munde用Q-learning模擬了一個特殊函數,這個函數驅動AI在不同狀況下做出正確的選擇。
Q-learning是強化學習的一種無模型實現,根據Q值對每個狀態進行判斷此時如果采取行動,能獲得怎樣的獎勵。一個樣本Q表讓我們了解數據的結構。在恐龍跑酷游戲中,狀態是當前的游戲截圖,能采取的行動是跳或不跳[0,1]。
一個樣本Q表
Ravi Munde決定用深度神經網絡來決定小恐龍何時起跳,而且要在最簡單的強化學習實現基礎上,引入不同參數來輔助它。
缺乏已標記的數據讓強化學習非常不穩定。為了獲得適用于這個游戲的數據,Munde小哥決定,先讓小恐龍自己瞎跳幾千次,把每個動作的反饋記下來,然后從數據中隨機挑選一些來訓練模型。
但之后,Munde小哥發現,他訓練了一個倔強的模型。模型堅定地認為,跳一定比不跳好。所以,為了讓模型在訓練時能在跳與不跳之間多嘗試一下,他引入了一個函數?來決定行動的隨機性,然后再逐漸減小它的值來削減隨機性,最終讓模型去選擇最有可能獲得獎勵的行動。
贊譽分布(Credit Assignment)問題可能會讓模型陷入混亂——目前獲得的獎勵究竟來自于過去的哪個行為呢?在恐龍跑酷游戲中,小恐龍跳到半空中后無法再次跳躍,但模型可能會在恐龍處于半空中時發出跳躍指令,這種情況就讓恐龍非常容易砸到仙人掌上。
展開 方法:安裝插件“小恐龍公文排版助手”,官網:https://gw.xkonglong.com

小恐龍的相關專題、標簽、搜索
小恐龍的最新內容
方法:安裝插件“小恐龍公文排版助手”,官網:https://gw.xkonglong.com
(1911)、海底擴張(1950–1960)、板塊學說 (1960)、對流層和平流層(1890)、宇宙輻射(1911)、磁場倒轉(1906)、周期性冰河時期(1930)、全球變暖(20世紀晚期)、地質變動(1830)、放射性定年法(1907)
5.生命科學(起源與進化)
恐龍因小行星撞擊滅絕
原理介紹
游戲規則簡介:
玩家通過空格鍵控制一只小恐龍的前進方式,當小恐龍觸碰到植物或者飛龍時,游戲結束。小恐龍躲避的植物和飛龍越多,得分越高。
逐步實現:
Step1:定義精靈類
為了方便實現小恐龍和植物以及飛龍之間的碰撞檢測,我們先定義一些精靈類,包括:
① 植物類
其中,move函數的作用為使隨機生成的植物不斷地左移,來實現小恐龍不斷右移的效果。
;
當前離小恐龍最近的障礙物離地面的高度;
當前離小恐龍最近的障礙物的寬度;
當前離小恐龍最近的障礙物的高度;
小恐龍水平方向上的奔跑速度.
或者直接訪問如下鏈接也可以:
https://chromedino.com/
大概長這個樣子:
玩法很簡單,玩家通過操縱空格鍵來控制小恐龍跳躍或者不跳躍,從而躲避路上的障礙物。當小恐龍不小心撞到障礙物時,游戲結束。
此次GE重組,仍然面臨著新小恐龍的挑戰。C3IoT加強了軟件攻勢,而一直就以挑戰Predix為己任的Uptake在有GE前高管相助,又拿下了全球最大的設備故障庫,早已擺脫創始人最早做團購網站GroupOn的氣質,這個公司渾身上下充滿了工業金屬的味道,而且是純粹數據分析基因。這都意味著“新來乍到”的GE Predix自然會受到全新的圍堵。
你有沒有注意到畫面里那個小恐龍?當你遇到打不開網頁的時候,只需要再點擊一下這個頁面(手機),或者按下空格(電腦),隨著小恐龍輕輕一跳,一個新世界開啟了。
這個“恐龍跳一跳”其實是藏在Chrome瀏覽器里好多年的一個彩蛋。小恐龍是一只霸王龍(T-Rex)。
2013年Chrome瀏覽器開始用這個小恐龍的圖像代替令人煩惱的404頁面。