aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorclarkzjw <[email protected]>2018-01-02 21:59:04 +0800
committerclarkzjw <[email protected]>2018-01-02 21:59:04 +0800
commitf3e1d8caa70829ab3167632905bccaed0b1fb3cd (patch)
treed0b63973e6fed302022cbcfd3a11dbde199dadbf
parent66240fe4c0704c5481fe203119367bcac7790e23 (diff)
downloadLumberJack-f3e1d8caa70829ab3167632905bccaed0b1fb3cd.tar.gz
924
-rw-r--r--bot.py111
-rw-r--r--requirements.txt83
2 files changed, 118 insertions, 76 deletions
diff --git a/bot.py b/bot.py
index e8f7a3c..f19694a 100644
--- a/bot.py
+++ b/bot.py
@@ -1,89 +1,48 @@
1import pyautogui as pg 1import time
2from time import sleep
3
4 2
5def move(_pos, _now): 3import mss
6 if _pos == 'left' and _now == 'left': 4import pyautogui as pg
7 pg.typewrite(['left']) 5from keyboard import press_and_release
8 pg.typewrite(['left']) 6from numpy import array, uint8
9 elif _pos == 'left' and _now == 'right':
10 pg.typewrite(['right'])
11 pg.typewrite(['right'])
12 elif _pos == 'right' and _now == 'right':
13 pg.typewrite(['right'])
14 pg.typewrite(['right'])
15 elif _pos == 'right' and _now == 'left':
16 pg.typewrite(['left'])
17 pg.typewrite(['left'])
18
19width, height = pg.size()
20width *= 0.5
21pg.moveTo(333, 600)
22pg.click()
23 7
24posY = [360, 260, 160]
25posX = [276, 398]
26 8
27q = ['left', 'left', 'left'] 9def begin():
10 pg.click(440, 900, 2)
28 11
29im = pg.screenshot(region=(0, 0, width, height))
30l0 = im.getpixel((posX[0], posY[0]))
31l1 = im.getpixel((posX[0], posY[1]))
32l2 = im.getpixel((posX[0], posY[2]))
33 12
34r0 = im.getpixel((posX[1], posY[0])) 13TREE = uint8([56, 116, 161])
35r1 = im.getpixel((posX[1], posY[1]))
36r2 = im.getpixel((posX[1], posY[2]))
37 14
38if l0[0] == 161 and l0[1] == 116 and l0[2] == 56: 15# from left to right
39 q[0] = 'right' 16posY = [360, 460]
40 pos = 'right' 17# from bottom to up
41else: 18posX = [640, 540, 440, 340, 240, 140]
42 pos = 'left'
43if l1[0] == 161 and l1[1] == 116 and l1[2] == 56:
44 q[1] = 'right'
45if l2[0] == 161 and l2[1] == 116 and l2[2] == 56:
46 q[2] = 'right'
47 19
48qlen = 3
49 20
50while True: 21def is_tree(c1):
51 if qlen == 3: 22 if c1[0] == TREE[0] and c1[1] == TREE[1] and c1[2] == TREE[2]:
52 now = q[0] 23 return True
53 move(pos, now) 24 else:
54 now = q[1] 25 return False
55 move(pos, now)
56 now = q[2]
57 move(pos, now)
58 qlen = 0
59 elif qlen == 0:
60 im = pg.screenshot(region=(0, 0, width, height))
61 l0 = im.getpixel((posX[0], posY[0]))
62 l1 = im.getpixel((posX[0], posY[1]))
63 l2 = im.getpixel((posX[0], posY[2]))
64 26
65 r0 = im.getpixel((posX[1], posY[0]))
66 r1 = im.getpixel((posX[1], posY[1]))
67 r2 = im.getpixel((posX[1], posY[2]))
68 27
69 if l0[0] == 161 and l0[1] == 116 and l0[2] == 56: 28def parse_screen(img, moves):
70 q[0] = 'right' 29 left = [img[x, posY[0]] for x in posX]
30 for i in range(6):
31 if is_tree(left[i]):
32 moves.append("right, right")
71 else: 33 else:
72 q[0] = 'left' 34 moves.append("left, left")
73 if l1[0] == 161 and l1[1] == 116 and l1[2] == 56: 35
74 q[1] = 'right'
75 else:
76 q[1] = 'left'
77 if l2[0] == 161 and l2[1] == 116 and l2[2] == 56:
78 q[2] = 'right'
79 else:
80 q[2] = 'left'
81 36
82 now = q[0] 37with mss.mss() as sct:
83 move(pos, now) 38 screen = sct.monitors[1]
84 now = q[1] 39 screen["width"] = screen["width"] / 2.0
85 move(pos, now) 40 begin()
86 now = q[2]
87 move(pos, now)
88 41
89 sleep(0.095) 42 while True:
43 img = array(sct.grab(screen))
44 moves = list()
45 parse_screen(img, moves)
46 for m in moves:
47 press_and_release(m)
48 time.sleep(0.145)
diff --git a/requirements.txt b/requirements.txt
index 54b4a43..4084e6d 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,2 +1,85 @@
1mss==3.1.1
1numpy==1.13.3 2numpy==1.13.3
2opencv-python==3.4.0.12 3opencv-python==3.4.0.12
4Pillow==5.0.0
5PyAutoGUI==0.9.36
6PyMsgBox==1.0.6
7pyobjc==4.1
8pyobjc-core==4.1
9pyobjc-framework-Accounts==4.1
10pyobjc-framework-AddressBook==4.1
11pyobjc-framework-AppleScriptKit==4.1
12pyobjc-framework-AppleScriptObjC==4.1
13pyobjc-framework-ApplicationServices==4.1
14pyobjc-framework-Automator==4.1
15pyobjc-framework-AVFoundation==4.1
16pyobjc-framework-AVKit==4.1
17pyobjc-framework-CalendarStore==4.1
18pyobjc-framework-CFNetwork==4.1
19pyobjc-framework-CloudKit==4.1
20pyobjc-framework-Cocoa==4.1
21pyobjc-framework-Collaboration==4.1
22pyobjc-framework-Contacts==4.1
23pyobjc-framework-ContactsUI==4.1
24pyobjc-framework-CoreBluetooth==4.1
25pyobjc-framework-CoreData==4.1
26pyobjc-framework-CoreLocation==4.1
27pyobjc-framework-CoreServices==4.1
28pyobjc-framework-CoreText==4.1
29pyobjc-framework-CoreWLAN==4.1
30pyobjc-framework-CryptoTokenKit==4.1
31pyobjc-framework-DictionaryServices==4.1
32pyobjc-framework-DiskArbitration==4.1
33pyobjc-framework-EventKit==4.1
34pyobjc-framework-ExceptionHandling==4.1
35pyobjc-framework-FinderSync==4.1
36pyobjc-framework-FSEvents==4.1
37pyobjc-framework-GameCenter==4.1
38pyobjc-framework-GameController==4.1
39pyobjc-framework-GameKit==4.1
40pyobjc-framework-GameplayKit==4.1
41pyobjc-framework-ImageCaptureCore==4.1
42pyobjc-framework-IMServicePlugIn==4.1
43pyobjc-framework-InputMethodKit==4.1
44pyobjc-framework-InstallerPlugins==4.1
45pyobjc-framework-InstantMessage==4.1
46pyobjc-framework-Intents==4.1
47pyobjc-framework-IOSurface==4.1
48pyobjc-framework-iTunesLibrary==4.1
49pyobjc-framework-LatentSemanticMapping==4.1
50pyobjc-framework-LaunchServices==4.1
51pyobjc-framework-libdispatch==4.1
52pyobjc-framework-LocalAuthentication==4.1
53pyobjc-framework-MapKit==4.1
54pyobjc-framework-MediaAccessibility==4.1
55pyobjc-framework-MediaLibrary==4.1
56pyobjc-framework-MediaPlayer==4.1
57pyobjc-framework-ModelIO==4.1
58pyobjc-framework-MultipeerConnectivity==4.1
59pyobjc-framework-NetFS==4.1
60pyobjc-framework-NetworkExtension==4.1
61pyobjc-framework-NotificationCenter==4.1
62pyobjc-framework-OpenDirectory==4.1
63pyobjc-framework-Photos==4.1
64pyobjc-framework-PhotosUI==4.1
65pyobjc-framework-PreferencePanes==4.1
66pyobjc-framework-PubSub==4.1
67pyobjc-framework-QTKit==4.1
68pyobjc-framework-Quartz==4.1
69pyobjc-framework-SafariServices==4.1
70pyobjc-framework-SceneKit==4.1
71pyobjc-framework-ScreenSaver==4.1
72pyobjc-framework-ScriptingBridge==4.1
73pyobjc-framework-SearchKit==4.1
74pyobjc-framework-Security==4.1
75pyobjc-framework-SecurityFoundation==4.1
76pyobjc-framework-SecurityInterface==4.1
77pyobjc-framework-ServiceManagement==4.1
78pyobjc-framework-Social==4.1
79pyobjc-framework-SpriteKit==4.1
80pyobjc-framework-StoreKit==4.1
81pyobjc-framework-SyncServices==4.1
82pyobjc-framework-SystemConfiguration==4.1
83pyobjc-framework-WebKit==4.1
84PyScreeze==0.1.13
85PyTweening==1.0.3
Powered by cgit v1.2.3 (git 2.41.0)