program = day11_input panel_map = dict() robot_position = (0, 0) robot_angle = 90 paint_robot = IntCodeProgram(program, []) new_pos_counter = 0 while paint_robot.status != Status.HALTED: #scan current pos if robot_position not in panel_map.keys(): # first time at position panel_map[robot_position] = Color.BLACK.value new_pos_counter += 1 paint_robot.set_input(panel_map[robot_position]) paint_color = paint_robot.process() rotate_inst = paint_robot.process() #paint panel_map[robot_position] = paint_color #rotate robot if rotate_inst == 0: # turn left robot_angle = (robot_angle + 90) % 360 elif rotate_inst == 1: # turn right robot_angle = (robot_angle - 90) % 360 #move 1 position if robot_angle == 0: robot_position = (robot_position[0] + 1, robot_position[1])
program = ex3 all_settings = permutations([0, 1, 2, 3, 4], 5) output = 0 #loop all possible settings for setting in all_settings: input = 0 #loop instance of settings for s in setting: #amp = IntCodeProgram(program, [input, s]) #input = amp.process() amp = IntCodeProgram(program, [s]) input = amp.set_input(input).process() if input > output: output = input output_setting = setting print(output) print(output_setting) ################################################################################ # PART 2 ex4 = [ 3, 26, 1001, 26, -4, 26, 3, 27, 1002, 27, 2, 27, 1, 27, 26, 27, 4, 27, 1001, 28, -1, 28, 1005, 28, 6, 99, 0, 0, 5 ]