def filter_shape(args): context = get_type(GameTypes.LIST, args) elements = get_type(GameTypes.ELEMENT, context) props = get_type(GameTypes.PROPERTY, args) prop = next(props, None) if not prop: return None return [element for element in elements if element.shape == prop]
def match_element_color(args): elems = get_type(GameTypes.ELEMENT, args) props = get_type(GameTypes.PROPERTY, args) prop = next(props, None) elem = next(elems, None) if not prop or not elem: return None return elem.color == prop
def filter_property(args): f_gen = get_type(GameTypes.COGNITIVE_FUNCTION, args) f = next(f_gen, None) function_arguments = get_type(GameTypes.COGNITIVE_FUNCTION, args) f_args = [arg for arg in function_arguments] if not f or not f_args: return elements = f(function_arguments) return elements
def get_neighbors(args): env_gen = get_type(GameTypes.ENVIRONMENT, args) state_gen = get_type(GameTypes.STATE, args) env = next(env_gen, None) state = next(state_gen, None) if not env or not state: return return calculate_cardinal_neighbors(state.value.index[0], state.value.index[1], env.value.num_rows, env.value.num_columns)
def select_action(args): act = get_type(GameTypes.ACTION, args)
def extract_properties(args): elem = get_type(GameTypes.ELEMENT, args) for element in elem: print(element)