Example #1
0
    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
Example #2
0
                    #     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)
Example #3
0
                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()
Example #4
0
    # 前台后台
    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):