def rand_blink_by_iter(state_object, prob=.5): ''' ****************************** Need to be updated ''' new_state = grid_state.last_state().copy() # Led deletion phase for led in grid_state.last_state(): # With a probability of prob, we turn off the led if random.randint(0, 10) / 10 < prob: new_state = [i for i in new_state if i[0] != led[0]] # Led incorporation phase n_new_leds = random.randint(0, 4) for i in range(n_new_leds): new_led = random.randint(1, 100) if new_led not in [i[0] for i in new_state]: color = int(255 * intensity) led_object = (new_led, color, color, color) new_state.append(led_object) grid_state.append(new_state) state_transition(grid_state, strip, period=period, iterations=8)
def center_wave(grid_states, strip, period, intensity): progression = grid_states.kwargs.get('radial_progression') color = int(255 * intensity) for leds in progression: new_state = [(led, color, color, color) for led in leds] grid_states.append(new_state) state_transition(grid_states, strip, period=period, iterations=1)
def reverse_center_wave_by_it(state_object): ''' ****************************** Need to be updated ''' progression = grid_state.kwargs.get('radial_progression') progression.reverse() color = int(255 * intensity) for leds in progression: new_state = [(led, color, color, color) for led in leds] grid_state.append(new_state) state_transition(grid_state, strip, period=period, iterations=1)
def center_wave_by_it(state_object): ''' **************** This is a guide method ************** ''' # Steps of the wave pattern NUM_OF_IT = len(state_object['state'].kwargs['radial_progression']) # Current step of the pattern goal_iter = state_object['goal_iter'] # We update the goal number of steps if (goal_iter is None) or (goal_iter != NUM_OF_IT): state_object['goal_iter'] = NUM_OF_IT grid_state = state_object['state'] progression = grid_state.kwargs.get('radial_progression') color = int(255 * intensity) for leds in progression: new_state = [(led, color, color, color) for led in leds] grid_state.append(new_state) state_transition(grid_state, strip, period=period, iterations=1)