def __init__(self, parent): # GUI init self.parent = parent self.parent.title("9.3 Crowded Room") self.frame = tkinter.Frame(self.parent) self.frame.pack(fill=tkinter.BOTH, expand=1) tkinter.Label(self.frame, text='Crowded room simulation').pack() size = settings.get().canvas_size self.canvas = tkinter.Canvas(self.frame, width=size, height=size) self.canvas.pack() tkinter.Button(self.frame, text='Prepare', command=self.setup_simulation).pack(fill='x') tkinter.Button(self.frame, text='Start', command=self.start_simulation).pack(fill='x') tkinter.Button(self.frame, text='Stop', command=self.stop_simulation).pack(fill='x') self.jitter = tkinter.IntVar(self.frame, value=0) tkinter.Checkbutton( self.frame, text='Enable jitter', variable=self.jitter, command=self._on_jitter ).pack(fill='x') self.parent.resizable(width=tkinter.FALSE, height=tkinter.FALSE) # create model self.party = Party() # intermediate logic self.person_painters = [] # type: List[PersonPainter] self.prepared = False self.running = False
def load_votes_matrix(box): parties = [] parties_matrix = zip(PARTIES, VOTES_MATRIX) for party, flags in dict(parties_matrix).items(): kwargs = {} for i, flag in enumerate(flags): counter = Counter(enabled=bool(flag)) kwargs[CANDIDATES[i]] = counter _votes = Votes(**kwargs) _votes.save() _party = Party(name=party, votes=_votes) _party.save() parties.append(_party) box.parties = parties box.save() other_votes = OtherVotes(blank=votes_constructor(), nulled=votes_constructor(), recurrent=votes_constructor(), refuted=votes_constructor()).save() box.other_votes = other_votes box.save()