Exemple #1
0
class Simulation:
    def __init__(self):

        agent_to_display = Queue(
        )  # For agent to signal its actions to the display
        agent_to_env = Queue(
        )  # for agent to signal its actions to the environment
        env_to_agent = Queue(
        )  # for environment to signal its mutations to the agent
        env_to_display = Queue(
        )  # for environment to signal its mutations to the display

        display_to_agent = Queue(
        )  # Only used for display to tell agent to switch mode (informed/uninformed)

        self.agent = Agent(env_to_agent, agent_to_env, agent_to_display,
                           display_to_agent)
        self.env = Environment(deepcopy(self.agent.get_position()),
                               agent_to_env, env_to_agent, env_to_display)
        self.display = Display(deepcopy(self.agent.get_position()),
                               env_to_display, agent_to_display,
                               display_to_agent)

        self.display.add_label("Environment")
        self.display.add_grid(self.env.get_grid())

        self.display.add_switch(
        )  # For switching between informed and uninformed search

        self.env.start()
        self.agent.start()
        self.display.start_loop()  # (blocking method)
 def draw(self):
     Disp.add_label(self._name)
     Disp.add_slider('R', 12, 0, 255, Config.red(), 3, self._changed_r,
                     self._focused)
     Disp.add_slider('G', 12, 0, 255, Config.green(), 3, self._changed_g,
                     self._focused)
     Disp.add_slider('B', 12, 0, 255, Config.blue(), 3, self._changed_b,
                     self._focused)
     Disp.add_slider('Brt', 12, 0, 100, Config.brightness(), 2,
                     self._changed_brt, self._focused)
     Disp.add_slider('Wdt', 12, 0, LED_COUNT, Config.width(), 2,
                     self._changed_wdt, self._focused)
     Disp.add_slider('Off', 12, -LED_COUNT // 2, LED_COUNT // 2,
                     Config.offset(), 1, self._changed_off, self._focused)
     super(ManualRGB, self).draw()