Esempio n. 1
0
class MainController():
    """ Controller for the Main View.
    """
    def __init__(self):
        self.ca = None
        self.rules = Rules()
        root = Tk()
        self.main_view = MainView(root, self)
        self.reload()
        root.mainloop()

    def reload(self):
        self.main_view.resize_cells()

        # Get the set of rules
        rule = self.main_view.cbx_rules.get()
        rules = self.rules.get(rule)
        self.ca = CellularAutomaton(rules)

        # Get the number of generations
        gens = int(self.main_view.spx_gens.get())
        for gen in range(gens):
            # Draw the generation
            self.main_view.draw_generation(self.ca.cells, gen)

            # Add the generation as a row
            self.ca.add_row(gen)

            # The CA evolves!
            self.ca.evolve()

        # Write the cellular automaton in a file
        self.ca.save(rule, gens)