使用python开发网页游戏_不敢想!不敢想!我用Python自动玩转2048游戏
近來在折騰selenium自動化, 感覺配合爬蟲很有意思, 大多數以前難以模擬登錄的網站都可以爬了,折騰了這么久,于是想自動玩?zhèn)€2048游戲!嘿嘿, 我是一個不擅長玩游戲的人, 以前玩2048就經常得了很低的分,每每想起都”痛心疾首”, 所以我打算拿2048開刀, 通過幾種方式, 讓程序幫我玩!
環(huán)境: python 3.5
用到的庫: re, random, time, selenium
2048網頁版: http://2048.oubk.com
本篇用到了selenium,運行前需要提前安裝selenium和chromedriver的驅動
先看一下效果圖
第一步: 瀏覽網頁確定需求
可以發(fā)現, 此網頁能注冊登錄, 還有各個時間段的積分排行榜, 游戲的玩法是按鍵盤的方向鍵,在游戲結束后, 會彈出這么一個框
于是我在想, 這個頁面能否自動成功登錄和退出呢,還希望把4*4方塊轉為對應的矩陣列表,并且在游戲結束后, 能自動點擊再玩一次
試試看說不定可以呢,我們一起來分析一下吧.
第二步: 按需分析目標網站
需求1:登錄指定賬號
進入開發(fā)者模式定位到”登錄”這元素:
selenium庫提供了很多獲取網頁中元素的方法, 個人喜歡通過XPath的方式來獲取, 于是復制其xpath路徑
在點擊登錄后, 會有一個彈窗:
采用同樣的方式, 獲取賬號輸入框 密碼輸入框 登錄 的xpath路徑
需求2:再玩一次
當游戲結束時, 會有此提示
圖片上傳失敗
重試
同樣的, 也獲取 再玩一次 的xpath的路徑
需求_3: 獲取矩陣
接下來, 我們需要將4*4方塊轉為矩陣, 先定位到任意的一個數字方塊
容易發(fā)現, 第一個數字是方塊上的數值, 之后數字為: 列 行, 后面若還接英文串, 則說明此方塊是新生成或新合并出的.采用通過正則獲取
image
需求_4: 模擬方向鍵
在selenium中, 通過send_keys()方法, 把鍵值發(fā)送至元素
需要注意的是, 方向鍵是發(fā)送給body元素, 而不是4**4方塊所在的的div
第三步: 如何玩游戲
方法一:隨機移動
在游戲未結束前, 上下左右隨意移動, 分數什么的, 就隨緣吧
方法二:每次最優(yōu)
在游戲未結束前, 每次移動, 都選擇得分最高的方向,這個比較復雜(具體可以看文末的源碼)
第四步: 運行程序看結果
1).用js代碼注冊
借用來自網上的一段用js進行post提交的代碼, 成功實現了注冊
2).開始玩游戲
我寫了個分析函數, 傳入次數, 在游戲結束后輸出平均分
次數我設置為3, 執(zhí)行程序,就會出現開頭的效果圖.
想要獲得源碼的同學可以私信我,私信關鍵詞:源碼,源代碼!
GitHub最新編程語言排行榜已出,我們來看下最新消息
最流行語言:JS 還第一,Python 反超 Java
GitHub Universe 是 GitHub 的年度盛會,今年10月10-12日,GitHub Universe 大會在舊金山召開。同時,GitHub 也在其官網發(fā)布了 2017 年年度數據報告 —— GitHub Octoverse 報告。
每年 GitHub 都會推出“Octoverse”報告,其中列出了一些年度的數據,包括其網站中最受歡迎的編程語言、開源項目等。今年的數據讓人眼前一亮,我們不妨關注一下。
整體數據:2400 萬用戶
150 萬組織
6700 萬 Repo
130 萬學生開發(fā)者
自 2016 年 9 月,10 億 Commit
自 2016 年 9 月,2530 萬活躍項目
自 2016 年 9 月,1250 萬活躍 Issue
自 2016 年 9 月,新增了 670 萬開發(fā)者
自 2016 年 9 月,新增了 45.1 萬個組織入駐 GitHub
自 2016 年 9 月,120 萬人提交了他們的第一個 Pull Request
自 2016 年 9 月,410 萬人創(chuàng)建了他們的第一個 Repo
19.1 萬人 star 或 fork 了項目但沒有提交代碼
自
2016 年 9 月,130 萬新 Pull Request ,包括 Linus Torvald 的第一個 GitHub Pull
Request:https://github.com/Subsurface-divelog/subsurface/pull/155
合并了 100,000,000 次 Pull Request
關閉了 68,800,000 個 Issue
不包括框架和語言,下面的標簽被使用得最多
machine-learning
game
iOS
API
blog
website
deep-learning
library
arduino
plugin
database
bot
接著看一下
2017 GitHub 上最受歡迎的前 15 門語言
可以看到,Python 已代替 Java 從去年的第三突進了第二,相比去年它新增了 40% 的 Pull Request。越來越多開發(fā)者在感慨“人生苦短” 了?
Java 則被擠下到第三位,不過 Java 9 剛發(fā)布不久,而且它的模塊化特性深受開發(fā)者喜愛,霸主地位還是很難撼動的。
排名第一的依然是 JavaScript,而且遠甩其他語言好幾條街。聯想到近幾年前端技術的火熱發(fā)展,所以并沒有太大意外。
排名前十五的語言(按先后順序):JavaScript、Python、Java、Ruby、PHP、C++、CSS、C#、Go、C、TypeScript、Shell、Swift、Scala、Objective-C
被 fork 最多的前十個項目
貢獻者最多的前十個項目
review 最多的前十個項目
discuss 最多的前十個項目
上面四個排行榜,TensorFlow 在其中三個都留下了自己的名字,人工智能技術越來越多地被關注,經歷了被稱為“人工智能元年”的2016年,人工智能在2017年也迎來了更大的發(fā)展
文章轉載自:菜鳥學Python,另外,在這里給大家推薦一個學習交流Q-un,719-139-688,只是希望大家能夠一起學習交流,雖然不能保證每個人都滿意,但是我也會盡我所能幫助大家的學習。
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的使用python开发网页游戏_不敢想!不敢想!我用Python自动玩转2048游戏的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mac 下用 brew 安装mongod
- 下一篇: 简单c语言程序例子与运行结果图,C语言程