実現したいこと
似たようなコードが繰り返さなくて済むようなコードの書き方が知りたい。
改善後のコード丸々ではなくてもいいので、簡潔にするテクニックが知りたい。
該当のソースコード
python
1def auto(): 2 3 temp1 = datetime.now() 4 5 p = pag.locateOnScreen(p1, grayscale=True 6 , confidence=0.8, region=p1_range) 7 if p: 8 temp2 = get_time2(temp1) 9 return p, temp2 10 p = pag.locateOnScreen( 11 p6, grayscale=True, confidence=0.8) 12 if p: 13 print() 14 print("p6",end="") 15 x = p[0] + 620 16 y = p[1] + 30 17 pag.rightClick(x,y) 18 x = x + 40 19 y = y + 55 20 pag.click(x, y) 21 else: 22 print("p6 not found") 23 print('\a') 24 sys.exit() 25 26 p = pag.locateOnScreen(p1, grayscale=True 27 , confidence=0.8, region=p1_range) 28 if p: 29 p02 = pag.locateOnScreen( 30 p11, grayscale=True, confidence=0.8) 31 sc = 0 32 for i in range(100): 33 if p02: 34 x2 = p02[0] + 236 35 y2 = p02[1] - 55 36 pag.click(x2, y2) 37 pag.moveTo(10, 10) 38 print("s"+str(sc),end="") 39 break 40 else: 41 t.sleep(0.1) 42 sc += 1 43 p = pag.locateOnScreen( 44 p11, grayscale=True, confidence=0.8) 45 print("p1 found") 46 temp2 = get_time2(temp1) 47 return p, temp2 48 49 t.sleep(0.5) 50 sc = 0 51 52 p = pag.locateOnScreen( 53 p7, grayscale=True, confidence=0.8) 54 55 for i in range(100): 56 if p: 57 print("s"+str(sc),end="") 58 print("p7",end="") 59 break 60 else: 61 t.sleep(0.1) 62 sc += 1 63 p = pag.locateOnScreen( 64 p7, grayscale=True, confidence=0.8) 65 else: 66 print("p7 not found") 67 print('\a') 68 sys.exit() 69 70 p = pag.locateOnScreen( 71 p8, grayscale=True, confidence=0.8) 72 sc = 0 73 74 for i in range(100): 75 if p: 76 print("s"+str(sc),end="") 77 print("p8",end="") 78 x = p[0] + 0 79 y = p[1] - 60 80 t.sleep(0.2) 81 pag.click(x, y) 82 break 83 else: 84 pag.scroll(-200,x,y) 85 t.sleep(0.1) 86 sc += 1 87 p = pag.locateOnScreen( 88 p8, grayscale=True, confidence=0.8) 89 else: 90 print("p8 not found") 91 print('\a') 92 sys.exit() 93 94 t.sleep(0.2) 95 sc = 0 96 97 p = pag.locateOnScreen( 98 p9, grayscale=True, confidence=0.8) 99 100 for i in range(100): 101 if p: 102 x = p[0] + 180 103 y = p[1] + 660 104 pag.click(x, y) 105 print("s"+str(sc),end="") 106 print("p9",end="") 107 break 108 else: 109 t.sleep(0.1) 110 sc += 1 111 p = pag.locateOnScreen( 112 p9, grayscale=True, confidence=0.8) 113 else: 114 print("p9 not found") 115 print('\a') 116 sys.exit() 117 118 p = pag.locateOnScreen(p1, grayscale=True 119 , confidence=0.8, region=p1_range) 120 121 t.sleep(2.2) 122 sc = 0 123 124 for i in range(100): 125 if p: 126 print("s"+str(sc),end="") 127 print("p1",end="") 128 break 129 else: 130 t.sleep(0.1) 131 sc += 1 132 p = pag.locateOnScreen(p1, grayscale=True 133 , confidence=0.8, region=p1_range) 134 else: 135 print("p1 not found") 136 print('\a') 137 sys.exit() 138 139 t.sleep(0.5) 140 sc = 0 141 142 p03 = pag.locateOnScreen(p12, grayscale=True 143 , confidence=0.8, region=p1_range) 144 145 for i in range(10): 146 if p03: 147 print("s"+str(sc),end="") 148 print("p12",end="") 149 clear_news() 150 p02 = pag.locateOnScreen(p11 151 , grayscale=True, confidence=0.8) 152 if p02: 153 print("p11",end="") 154 x2 = p02[0] + 236 155 y2 = p02[1] - 55 156 pag.click(x2, y2) 157 pag.moveTo(10, 10) 158 temp2 = get_time2(temp1) 159 print() 160 print(f"{temp2:.1f}s") 161 return p, temp2 162 else: 163 t.sleep(0.1) 164 sc += 1 165 p03 = pag.locateOnScreen(p12 166 , grayscale=True 167 , confidence=0.8, region=p1_range) 168 else: 169 print("p12 not found") 170 temp2 = get_time2(temp1) 171 return p, temp2 172 #print('\a') 173 #sys.exit()
回答2件
あなたの回答
tips
プレビュー
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
2023/02/13 17:14