1 changed files with 96 additions and 0 deletions
			
			
		- 
					96manual.patch
 
@ -0,0 +1,96 @@ | 
			
		|||||
 | 
				""" | 
			
		||||
 | 
				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() | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				""" | 
			
		||||
						Write
						Preview
					
					
					Loading…
					
					Cancel
						Save
					
		Reference in new issue