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