用python实现自动玩Npubits的21点游戏
21点的主页面
https://---
(此处不提供链接,用户直接在网站首页点击21点后,地址栏的链接便是。)
需要知道的关键点
(写代码时用来抓取数据的关键点)
1. 等待开局
若之前的21点还没有结束(暂时没有对手上线),那么不能开局,需等待之前的结束。若需等待,主页面包含以下内容
<button type="submit" class="btn btn-default">刷新</button>2. 可以开始
若可以开始游戏,主页面包含以下内容
<button type="submit" class="btn btn-primary">开始游戏!</button>3. 开始21点
向主页面post数据
game: hit, start: yes4. 判断点数
判断每次操作后,主页面返回的网页内容。点数的html样式如下:
<b>点数 = 16</b>5. 继续摸牌
向主页面post数据
game: hit6. 停止摸牌
向主页面post数据
game: stopPython脚本思路
- 等待开局。
- 开始21点。
- 判断点数。
- 若点数大于20,回到第1步。
- 若点数大于17,则去到第8步。(17可变,只是我认为17点够大了)
- 若点数小于等于17,则去到第7步。
- 继续摸牌,回到第3步。
- 停止摸牌,回到第1步。
toulanboy - http://www.cnblogs.com/toulanboy/
代码实现
1. 关键逻辑:开始-摸牌-停止
#(**此处不提供链接,用户直接在网站首页点击21点后,地址栏的链接便是。**) url = 'https://----' #不停地玩21点 while True: #先看之前的是否结束了 result = getData(url) time.sleep(5) # toulanboy - http://www.cnblogs.com/toulanboy/ if result == 0: #如果还没结束,则继续刷新 print "之前的尚没结束,等待中" elif result == 1:#如果结束了,则开始游戏 point = postData(url, startValues)#发出“开始游戏”请求 print "已开局,当前点数 = %d" % point #大于20点,系统会自动结束,故在这里我只需在小于21点的情况下摸牌 while point <= 20: if point >= 17:#我认为只要大于17点我满足了,所以大于17点就停止摸牌 time.sleep(1) postData(url, stopValues)#发出“停止摸牌”请求 print "停止摸牌了,当前点数 = %d" % point break else:#小于17点则继续摸牌 time.sleep(1) point = postData(url, hitValues)#发出“继续摸牌”请求
