""" velocity_set = False for episode in range(10): total_reward = 0 j = 0 while not ale.game_over(): if not velocity_set: ale.setRAM(14,0) j += 1 a = input_to_action(repr(readchar.readchar())[1]) #a = Action.NOOP if a == "w": y_ram_setting -= 1 if y_ram_setting <= 61: y_ram_setting = 61 for i, r in enumerate(ramDICT[y_ram_setting]): ale.setRAM(i,r) ale.setRAM(25,x) ale.act(Action.NOOP) elif a == "s": y_ram_setting += 1 if y_ram_setting >= 1950: y_ram_setting = 1945 for i, r in enumerate(ramDICT[y_ram_setting]): ale.setRAM(i,r) ale.setRAM(25,x) ale.act(Action.NOOP) elif a == "a": x -= 1 if x <= 0: x = 0 ale.setRAM(25,x) ale.act(Action.NOOP) elif a == "d": x += 1 if x >= 144: x = 144 ale.setRAM(25,x) ale.act(Action.NOOP) elif a == "reset": ram_pos = input("Ram Position:") for i, r in enumerate(ramDICT[int(ram_pos)]): ale.setRAM(i,r) ale.act(Action.NOOP) # Apply an action and get the resulting reward elif a == "set_x": x = int(input("X:")) ale.setRAM(25, x) ale.act(Action.NOOP) elif a == "set_vel": vel = input("Velocity:") ale.setRAM(14, int(vel)) ale.act(Action.NOOP) velocity_set = True else: reward = ale.act(a) ram = ale.getRAM() #if j % 2 == 0: # y_pixel = int(j*1/2) + 55 # ramDICT[y_pixel] = ram # print(f"saving to {y_pixel:04}") # if y_pixel == 126 or y_pixel == 235: # input("") int_old_ram = list(map(int, oldram)) int_ram = list(map(int, ram)) difference = list() for o, r in zip(int_old_ram, int_ram): difference.append(r-o) oldram = deepcopy(ram) #print(f"player_x: {ram[25]},\tclock_m: {ram[104]},\tclock_s: {ram[105]},\tclock_ms: {ram[106]},\tscore: {ram[107]}") print(f"player_x: {ram[25]},\tplayer_y: {y_ram_setting}") #print(f"y_0: {ram[86]}, y_1: {ram[87]}, y_2: {ram[88]}, y_3: {ram[89]}, y_4: {ram[90]}, y_5: {ram[91]}, y_6: {ram[92]}, y_7: {ram[93]}, y_8: {ram[94]}") #for i, r in enumerate(ram): # print('{:03}:{:02x} '.format(i,r), end="") # if i % 16 == 15: print("") #print("") #for i, r in enumerate(difference): # string = '{:02}:{:03} '.format(i%100,r) # if r != 0: # print(color(string, fg='red'), end="") # else: # print(string, end="") # if i % 16 == 15: print("") print("Episode %d ended with score: %d" % (episode, total_reward)) input("") with open('all_positions_v2.pickle', 'wb') as handle: pickle.dump(ramDICT, handle, protocol=pickle.HIGHEST_PROTOCOL) ale.reset_game() """