import sys import tkinter as tk from tkinter import ttk import pygame as pg from modules.agente import Agente from modules.mapa import Mapa flags = 0 def devolveCor(agente: Agente) -> tuple[int, int, int, int]: match agente.estrategia: case "Neutro": return (255, 255, 255, 0) case "Tit4Tat": return (255, 255, 0, 0) case "Vingativo": return (255, 0, 0, 0) case "Lunatico": return (0, 0, 255, 0) case _: return (0, 0, 0, 0) def criarTabuleiro( surface: pg.Surface, dimensao_tabuleiro: tuple[int, int], mapa: Mapa, ) -> None: dimensoes_surface_principal: tuple[int, int] = surface.get_size() max_altura: int = int( (dimensoes_surface_principal[0]-20)/dimensao_tabuleiro[0]) max_largura: int = int( (dimensoes_surface_principal[1]-20)/dimensao_tabuleiro[1]) tamanho_quadrado: int = max_altura if max_altura < max_largura else max_largura cor_quadrado: tuple[int, int, int, int] for pos_y in range(0, dimensao_tabuleiro[0]): for pos_x in range(0, dimensao_tabuleiro[1]): agente: Agente | None = mapa.posicao((pos_y, pos_x)) cor_quadrado = devolveCor(agente) pg.draw.rect(surface, cor_quadrado, [10+(tamanho_quadrado*pos_y), 10+(tamanho_quadrado*pos_x), tamanho_quadrado, tamanho_quadrado], 0) def main(mapa: Mapa | None): if mapa is None: print("SEM MAPA!!") pg.init() janela = pg.display.set_mode((1280, 800), flags) pg.display.set_caption("Game Theory of Life") clock = pg.time.Clock() running: bool = True cor1: tuple[int, int, int, int] = (255, 0, 0, 0) cor2: tuple[int, int, int, int] = (0, 255, 0, 0) while running: for event in pg.event.get(): if event.type == pg.QUIT: running = False if event.type == pg.KEYDOWN: if event.key == pg.K_q: running = False if event.key == pg.K_c: # trocar cor pass # (367, 250) criarTabuleiro(janela, mapa.dimensao, mapa) pg.display.flip() clock.tick(60) pg.quit() sys.exit() class Frame_Mapa(ttk.Frame): def __init__(self, mapa: Mapa): super().__init__() self.n_linhas: int = mapa.dimensao[0] self.n_colunas: int = mapa.dimensao[1] for grid_y in range(0, self.n_linhas): for grid_x in range(0, self.n_colunas): tmp_label = tk.Label(self, text="0") tmp_label.grid(column=grid_x, row=grid_y) class App(tk.Tk): def __init__(self, mapa: Mapa) -> None: super().__init__() # titulo e icone self.title('Game Theory of Life') self.iconbitmap() # definir frames dentro da janela principal self.frame_mapa = Frame_Mapa(mapa) self.frame_mapa.grid(row=0, column=0) # iniciar janela da aplicação self.mainloop() if __name__ == '__main__': mapa_mundo: Mapa = Mapa((10, 10)) app = App(mapa_mundo)