一、整體思路
棋子所在的座標以及下一步所要到的座標,根據兩個座標計算出兩點之間距離進行跳躍。
二、分布思路
1、根據命令截圖獲取初始圖儲存到手機,然後上傳到本地資料夾
2、將獲取的截圖放入新建的座標軸中(matplotlib)
3、通過滑鼠點選事件獲取所在初始座標以及重點座標,並計算出直線距離
4、進行跳躍,跳躍完成後清空座標並更新截圖
三、所用到的相關技術或模組
1、python3基礎
2、numpy
3、matplotlib
4、python中的os模組
5、adb工具包
四、**
__author__ = '周雁冰'
import os
import pil,numpy
import matplotlib.pyplot as plt
from matplotlib.animation import funcanimation
import time
need_update = true
# 獲取手機截圖
def get_screen_imag程式設計客棧e():
os.system('adb shell screencap -p /sdcard/screen.png') # 獲取手機當前介面截圖
os.system('adb pull /sdcard/screen.png') # **當前截圖到電腦當前資料夾下
return numpy.array(pil.image.open('screen.png')) #轉為array返回
# 計算弦的長度
def jump_to_next(point1, point2):
x1, y1 = point1; x2, y2 = point2
distance = ((x2-x1)**2 + (y2-y1)**2)**0.5 # 計算弦長度
os.system('adb shell input swipe 320 410 320 410 {}'.format(int(distance*1))) # 按下橫縱左邊 放開橫縱座標 按壓時間 2k的螢幕彈跳係數為1
# 繫結滑鼠單擊事件
def on_calck(event, coor=): # [(x,y),(x2,y2)]
global need_update
coor.append((event.xdata, event.ydata)) # 獲取x和y座標位置放入coor陣列中
if len(coor) == 2:
jump_to_next(coor.pop(), coor.pop()) # 獲取到兩個座標後計算長度並清空陣列
need_update = true
def update_screen(frame): # 更新
global need_update
if need_update:
time.sleep(1) # 因為跳躍需要時間所以這裡需要休眠1s,然後重新獲取
axes_image.set_array(get_screen_image())
need_update = false
return axes_image, # 返回元祖
figure = plt.figure() # 建立乙個空白的的物件/建立畫布
axes_image = plt.imshow(get_screen_image(), animated=true) # 把獲取程式設計客棧的放進座標軸
figure.canvas.mpl_connect('button_press_event', on_calck)
ani = funcanimation(figure, update_screen, interval=50, blit=true) # 例項化 funcanimation更新畫布 50為50ms
plt.show() # 展示座標圖
這裡獲取:跳一跳源**
本文標題: python3實現跳一跳點選跳躍
本文位址: /jiaoben/python/217036.html
python實現跳一跳
今天我們使用python來做一件有意思的事,使用python來完成跳一跳這個遊戲。在這裡先感謝一位大牛文章的啟迪,相關的程式和安裝包也由此位大牛提供。python輔助作者github賬號為 wangshub。作者的知乎專欄為 首先我們需要做好準備工作 windows10,乙個安卓真機,python3...
微信跳一跳python 微信跳一跳Python
1 安裝python,我用的是python2.7 5.安裝pillow,放在scripts資料夾中,通過 pip install pillow安裝 6.安裝adb工具包,可以直接放在專案 的資料夾裡面,或者放在c盤目錄不過要配置一下環境變數,我這裡是直接放在專案 資料夾中。內建了cmd 命令 7.把...
字母跳一跳
題目 有一無限長的迴圈字母表,任意輸入乙個字母,按照規定時刻進行跳轉,每個時刻跳轉規定的步數,最後顯示跳轉後得到的字母 include using namespace std int main char i word 輸入字母 int i k,i t,n 跳轉步數k,時間t,組數n cin n ch...