def nigeria(self): # scalable cols = SchedulerState.get_cols() b1 = cols // 3 b2 = cols - b1 for i in range(0, b1): self.model.set_column(i, (0, 0.53, 0.31)) for i in range(b1, b2): self.model.set_column(i, name_to_rgb('white')) for i in range(b2, cols): self.model.set_column(i, (0, 0.53, 0.31))
def cameroon(self): # scalable a = (0, 0.62, 0.27) b = (0.75, 0.25, 0.25) y = name_to_rgb('yellow') cols = SchedulerState.get_cols() rows = SchedulerState.get_rows() b1 = cols // 3 b2 = cols - b1 for i in range(0, b1): self.model.set_column(i, a) for i in range(b1, b2): self.model.set_column(i, b) for i in range(b2, cols): self.model.set_column(i, y) b3 = rows // 3 b4 = rows - b3 for r in range(b3, b4): for c in range(b1 + (b1 // 3), b2 - (b1 // 3)): self.model.set_pixel(r, c, name_to_rgb('yellow'))
def brazil(self): # scalable cols = SchedulerState.get_cols() rows = SchedulerState.get_rows() midr = rows / 2 midc = cols / 2 y = name_to_rgb('yellow') self.model.set_all(name_to_rgb('green')) if (rows % 2 == 0): cinf = int(midc) - 1 csup = int(midc) + 1 else: cinf = int(midc) csup = int(midc) + 1 for r in range(1, int(midr)): for c in range(cinf, csup): self.model.set_pixel(r, c, y) if (midc > midr): cinf = max(cinf - 2, 1) csup = min(csup + 2, cols - 1) else: cinf = max(cinf - 1, 1) csup = min(csup + 1, cols - 1) if (rows % 2 == 0): cinf = int(midc) - 1 csup = int(midc) + 1 else: cinf = int(midc) csup = int(midc) + 1 for r in range(rows - 2, int(midr) - 1, -1): for c in range(cinf, csup): self.model.set_pixel(r, c, y) if (midc > midr): cinf = max(cinf - 2, 1) csup = min(csup + 2, cols - 1) else: cinf = max(cinf - 1, 1) csup = min(csup + 1, cols - 1) quarr = rows / 4 quarc = cols / 4 rank = min(quarc, quarr) for i in range(int(midr - rank), int(midr + rank)): for j in range(int(midc - rank), int(midc + rank)): self.model.set_pixel(i, j, name_to_rgb('navy'))
def lebanon(self): # scalable rows = SchedulerState.get_rows() cols = SchedulerState.get_cols() self.model.set_all((1, 1, 1)) for i in range(rows // 3): self.model.set_line(i, (1, 0, 0)) for i in range(int(rows / 3 * 2), rows): self.model.set_line(i, (1, 0, 0)) for c in range(cols // 3, int(cols / 3 * 2)): for r in range(rows // 3, int(rows / 3 * 2)): self.model.set_pixel(r, c, name_to_rgb('darkgreen'))
def austria(self): # scalable rows = SchedulerState.get_rows() tierr = rows / 3 if (rows < 3): self.model.set_all('darked') else: for i in range(0, int(tierr)): self.model.set_line(i, (0.75, 0.25, 0.25)) for i in range(int(tierr), int(2 * tierr)): self.model.set_line(i, name_to_rgb('white')) for i in range(int(2 * tierr), rows): self.model.set_line(i, (0.75, 0.25, 0.25))
def burkina(self): # scalable rows = SchedulerState.get_rows() cols = SchedulerState.get_cols() if (rows < 2 or cols < 2): self.model.set_all((0, 0, 0)) return midc = cols // 2 midr = rows // 2 if (midr * 2 != rows): rows = rows - 1 self.model.set_all((0, 0, 0)) for i in range(0, midr): self.model.set_line(i, (0.75, 0.25, 0.25)) for i in range(midr, rows): self.model.set_line(i, (0, 0.62, 0.27)) for r in range(max(0, midr - 1), max(midr + 1, 2)): for c in range(max(0, midc - 1), max(2, midc + 1)): self.model.set_pixel(r, c, name_to_rgb('yellow'))
def swiss(self): # scalable rows = SchedulerState.get_rows() cols = SchedulerState.get_cols() self.model.set_all((1, 0, 0)) for i in range(int(rows / 2 / 5 * 4), max(int(rows / 2 / 5 * 6), int(rows / 2 / 5 * 4) + 2)): self.model.set_line(i, name_to_rgb('white')) for i in range(int(cols / 2 / 5 * 4), int(cols / 2 / 5 * 6)): self.model.set_column(i, name_to_rgb('white')) self.model.set_line(0, name_to_rgb('red')) self.model.set_line(rows - 1, name_to_rgb('red')) self.model.set_column(0, name_to_rgb('red')) self.model.set_column(cols - 1, name_to_rgb('red'))
def set_all(self, color): if isinstance(color, str): color = name_to_rgb(color) for w in range(self.width): for h in range(self.height): self._model[h, w] = color
def yemen(self): self.model.set_line(0, name_to_rgb('red')) self.model.set_line(1, name_to_rgb('white'))
def venezuela(self): self.model.set_line(0, name_to_rgb('yellow')) self.model.set_line(1, name_to_rgb('navy')) self.model.set_line(2, name_to_rgb('firebrick')) for c in [8, 9, 10]: self.model.set_pixel(1, c, name_to_rgb('white'))
def sweden(self): self.model.set_all((0, 0.41, 0.66)) self.model.set_line(1, name_to_rgb('yellow')) self.model.set_line(2, name_to_rgb('yellow')) self.model.set_column(6, name_to_rgb('yellow')) self.model.set_column(7, name_to_rgb('yellow'))
def netherlands(self): self.model.set_line(0, name_to_rgb('firebrick')) self.model.set_line(1, name_to_rgb('white')) self.model.set_line(2, name_to_rgb('navy'))
def lituania(self): self.model.set_line(0, name_to_rgb('yellow')) self.model.set_line(1, name_to_rgb('darkgreen')) self.model.set_line(2, name_to_rgb('red'))
def indonesia(self): # scalable rows = SchedulerState.get_rows() for i in range(rows // 2): self.model.set_line(i, name_to_rgb('red')) for i in range(rows // 2, rows): self.model.set_line(i, name_to_rgb('white'))
def japan(self): self.model.set_all((1, 1, 1)) for r in range(1, 3): for c in range(8, 11): self.model.set_pixel(r, c, name_to_rgb('red'))
def libya(self): self.model.set_line(0, (1, 0, 0)) self.model.set_line(3, name_to_rgb('darkgreen'))
def malta(self): for i in range(0, 9): self.model.set_column(i, name_to_rgb('white')) for i in range(9, 18): self.model.set_column(i, name_to_rgb('red'))
def luxembourg(self): self.model.set_line(0, name_to_rgb('red')) self.model.set_line(1, name_to_rgb('white')) self.model.set_line(2, name_to_rgb('skyblue'))
def armenia(self): self.model.set_line(0, name_to_rgb('darkred')) self.model.set_line(1, name_to_rgb('navy')) self.model.set_line(2, name_to_rgb('yellow')) self.model.set_line(3, name_to_rgb('black'))
def poland(self): self.model.set_line(3, name_to_rgb('red')) self.model.set_line(2, name_to_rgb('red')) self.model.set_line(1, name_to_rgb('white')) self.model.set_line(0, name_to_rgb('white'))
def austria(self): self.model.set_line(0, (0.75, 0.25, 0.25)) self.model.set_line(1, name_to_rgb('white')) self.model.set_line(2, (0.75, 0.25, 0.25)) self.model.set_line(3, name_to_rgb('black'))
def swiss(self): self.model.set_all((1, 0, 0)) self.model.set_line(1, name_to_rgb('white')) self.model.set_line(2, name_to_rgb('white')) self.model.set_column(9, name_to_rgb('white')) self.model.set_column(10, name_to_rgb('white'))
def china(self): self.model.set_all('red') for r in range(0, 2): for c in [1, 2, 4]: self.model.set_pixel(r, c, name_to_rgb('yellow'))
def vietnam(self): self.model.set_all('red') for c in range(8, 11): self.model.set_pixel(1, c, name_to_rgb('yellow')) self.model.set_pixel(2, c, name_to_rgb('yellow'))
def colombia(self): self.model.set_line(0, name_to_rgb('yellow')) self.model.set_line(1, name_to_rgb('yellow')) self.model.set_line(2, name_to_rgb('navy')) self.model.set_line(3, name_to_rgb('red'))
def saudi(self): self.model.set_all('darkgreen') for i in range(5, 14): self.model.set_pixel(1, i, name_to_rgb('white')) for i in range(7, 12): self.model.set_pixel(2, i, name_to_rgb('white'))
def indonesia(self): self.model.set_line(0, name_to_rgb('red')) self.model.set_line(1, name_to_rgb('red')) self.model.set_line(2, name_to_rgb('white')) self.model.set_line(3, name_to_rgb('white'))
def set_pixel(self, h, w, color): if isinstance(color, str): color = name_to_rgb(color) self._model[h, w] = color
def draw_matrix(self, matrix, offset): off_x, off_y = offset for y, row in enumerate(matrix): for x, val in enumerate(row): if val >0: self.model.set_pixel(x + off_x, y + off_y, name_to_rgb(self.colors[val]))