def set_up(props=None): """ A func to set up run that can also be used by test code. """ init_props(MODEL_NAME, props) execution_key = int(props[EXEC_KEY].val) \ if props is not None else CLI_EXEC_KEY blue_agents = Composite(group_names[BLUE_GRP_IDX], {"color": BLUE}, member_creator=create_resident, num_members=get_prop('num_blue', NUM_BLUE, execution_key=execution_key), group=BLUE, execution_key=execution_key) red_agents = Composite(group_names[RED_GRP_IDX], {"color": RED}, member_creator=create_resident, num_members=get_prop('num_red', NUM_RED, execution_key=execution_key), group=RED, execution_key=execution_key) city = Env(MODEL_NAME, members=[blue_agents, red_agents], height=get_prop('grid_height', DEF_CITY_DIM, execution_key=execution_key), width=get_prop('grid_width', DEF_CITY_DIM, execution_key=execution_key), execution_key=execution_key) city.exclude_menu_item("line_graph")
def set_up(props=None): """ A func to set up run that can also be used by test code. """ init_props(MODEL_NAME, props) execution_key = int(props[EXEC_KEY].val) \ if props is not None else CLI_EXEC_KEY calm = Composite(CALM, {"color": BLUE}, member_creator=create_resident, num_members=get_prop('num_people', NUM_CALM_AGENTS, execution_key=execution_key), group=BLUE, execution_key=execution_key) panic = Composite(PANIC, {"color": RED}, member_creator=create_resident, num_members=NUM_PANIC_AGENTS, group=RED, execution_key=execution_key) city = Env(MODEL_NAME, members=[calm, panic], height=get_prop('grid_height', DEF_CITY_DIM, execution_key=execution_key), width=get_prop('grid_width', DEF_CITY_DIM, execution_key=execution_key), execution_key=execution_key) set_env_attr(STATES, [CALM, PANIC], execution_key=execution_key) city.exclude_menu_item("line_graph")
def set_up(props=None): """ A func to set up run that can also be used by test code. """ init_props(MODEL_NAME, props) execution_key = int(props[EXEC_KEY].val) \ if props is not None else CLI_EXEC_KEY width = get_prop('grid_width', DEF_WIDTH, execution_key=execution_key) height = (width // 2) + (width % 2) groups = [ Composite(WHITE, {"color": WHITE}, execution_key=execution_key), Composite(BLACK, { "color": BLACK, "marker": SQUARE }, execution_key=execution_key) ] for y in range(height): for x in range(width): groups[W] += create_wolf_cell(x, y, execution_key) wolfram_env = Env(MODEL_NAME, action=wolfram_action, height=height, width=width, members=groups, attrs={ "size": 50, "hide_grid_lines": True, "hide_legend": True }, random_placing=False, execution_key=execution_key) rule_num = get_prop('rule_number', DEF_RULE, execution_key=execution_key) wolfram_env.set_attr("rule_num", rule_num) wolfram_env.set_attr("rule_dict", get_rule(rule_num)) wolfram_env.exclude_menu_item("line_graph") ''' This switch needs to happen before the environment is executed. Using add switch doesn't process the switch until after the environment is executed which breaks the model. ''' top_center_agent = \ wolfram_env.get_agent_at(width // 2, top_row(execution_key)) switch(top_center_agent.name, WHITE, BLACK, execution_key=execution_key) # top row is the "previous" because we just processed it set_env_attr("prev_row_idx", top_row(execution_key), execution_key=execution_key)
def set_up(props=None): """ A func to set up run that can also be used by test code. """ init_props(MODEL_NAME, props) blue_agents = Composite(group_names[BLUE_TEAM], {"color": BLUE}, member_creator=create_resident, num_members=get_prop('num_blue', NUM_BLUE)) red_agents = Composite(group_names[RED_TEAM], {"color": RED}, member_creator=create_resident, num_members=get_prop('num_red', NUM_RED)) city = Env("A city", members=[blue_agents, red_agents], height=get_prop('grid_height', DEF_CITY_DIM), width=get_prop('grid_width', DEF_CITY_DIM)) city.exclude_menu_item("line_graph")
def set_up(props=None): """ A func to set up run that can also be used by test code. """ global groups global curr_row global rule_dict global rule_num pa = get_props(MODEL_NAME, props) width = pa.get('grid_width', DEF_WIDTH) rule_num = pa.get('rule_number', DEF_RULE) rule_dict = get_rule(rule_num) height = 0 height = (width // 2) + (width % 2) white = Composite("White", {"color": WHITE}) black = Composite("Black", {"color": BLACK, "marker": SQUARE}) groups = [white, black] for y in range(height): for x in range(width): groups[W] += create_wolf_cell(x, y) wolfram_env = Env("Wolfram Model", action=wolfram_action, height=height, width=width, members=groups, attrs={ "size": 50, "hide_grid_lines": True, "hide_legend": True }, random_placing=False, props=pa) wolfram_env.exclude_menu_item("line_graph") wolfram_env.now_switch(wolfram_env.get_agent_at(width // 2, height - 1), groups[W], groups[B]) curr_row = wolfram_env.get_row_hood(wolfram_env.height - 1) return (wolfram_env, groups, rule_dict)