for i in range(N_WORKERS): i_name = 'W_%i' % i # worker name workers.append(Worker(i_name, GLOBAL_AC)) worker = workers[0] worker.env.reset() worker.name # worker.env.render() # worker.env.close() worker.work() print('----- parameters: {}, \n----- episode: {}, Reward:{:.1f} '.format( (LR_A, LR_C), GLOBAL_RUNNING_R.index(max(GLOBAL_RUNNING_R)), max(GLOBAL_RUNNING_R))) print('# ({}, {}) - {:.1f};'.format(LR_A, LR_C, max(GLOBAL_RUNNING_R))) if (0): a_net = ActorCriticNet(n_input=N_S, n_out=N_A) n_input, n_out = N_S, N_A x = torch.randn([100, n_input]) print(a_net.forward(x)) for i in range(100): tt.sleep(0.1) if (tt.stop_alt()): print('break!') break 1
# results = results[0] except: # 若人物死亡 death_n += 1 print(death_n) # tt.sleep(0.0001) if (death_n < 3): continue death_n = 0 results = ((0, 0), (100, 100)) print('--- death! ---') # tt.sleep(1) for j in range(10): #plot death tt.sleep(0.01) screen0 = wind.grab_screen() # screen = screen0 #screen = pre_process_screen(screen0) screen = cv2.cvtColor(screen0, cv2.COLOR_BGR2RGB) # RGB if (cv_img(screen)): break wind.key_dp(vk.r, tmp) continue xy0, xy1 = results[0], results[1] # xy0, xy1 = (xy0[0] - 10, xy0[0] - 10), (xy1[0] + 10, xy1[0] + 10)
position_, press_shift, pos_passed = info s_ = preprocess_state(s_, position_, env) # plot if (arg.show_pre_image and cv_img(s_[-1])): break_flag = 1 break else: r = arg.reward_done position_ = (0, 0) s_ = preprocess_state(s_, position_, env) if (arg.show_pre_image and cv_img(s_[-1])): break_flag = 1 break tt.sleep(0.5) break # memory.push(s, r, done, info, s_) memory.push(s, a, r, info, s_) # if(steps % 100 == 0): # td_error = critic.learn(s, r, s_) # gradient = grad[r + gamma * V(s_) - V(s)] # actor.learn(s, a, td_error) # true_gradient = grad[logPi(s,a) * td_error] # model.learn() s = s_ print(i) # position = position_ cv2.destroyAllWindows()
# 前台后台 import win32api, win32con, win32gui import sys, os pre_path = os.getcwd().rsplit('\\', 1)[0] sys.path.append(pre_path + '\\mycode') from mycode.my_time import Time, vk from Env import Env import win32com import win32com.client tt = Time() env = Env() env.wind.hwnd hwnd = 395422 tt.sleep(1) win32gui.ShowWindow(hwnd, win32con.SW_RESTORE) shell = win32com.client.Dispatch("WScript.Shell") shell.SendKeys('%') win32gui.SetForegroundWindow(hwnd) tt.sleep(1) win32gui.SetBkMode(hwnd, win32con.TRANSPARENT) SendInput = ctypes.windll.user32.SendInput # C struct redefinitions PUL = ctypes.POINTER(ctypes.c_ulong) class KeyBdInput(ctypes.Structure):