def percolateFromFile(file_name): '''(str) -> None ''' try: f = open(file_name) except: print("ERRO: arquivo '%s' não foi encontrado" % file_name) return # leia a dimensão da grade: nos arquivos é apenas um inteiro # já que neles as grades são quadradas line = f.readline() n = int(line) # crie um objeto Percolation perc = Percolation((n, n)) # crie a janela screen = setScreen((n, n)) # desenhe a grade drawPercolation(perc, screen) # leia posições a serem abertas line = f.readline() running = True while line and running: # Limpa a string e Le as coordenadas pos = line.split() lin = int(pos[0]) col = int(pos[1]) # abra o sÃtio perc.open(lin, col) # desenhe a nova grade na janela drawPercolation(perc, screen) for event in pygame.event.get(): if event.type == pygame.QUIT: running = False # espere um pouco pygame.time.delay(DELAY) # pegue a nova posição line = f.readline() # espere o usuário fechar a janela while running: for event in pygame.event.get(): if event.type == pygame.QUIT: running = False print("Percolates: ", perc.percolates()) print("Open sites: ", perc.no_open()) f.close()
def __init__(self, shape, T): self.shape = shape self.T = T n, m = shape tests = [] for i in range(T): perc = Percolation((n, m)) while not perc.percolates(): lin = random.randint(0, n - 1) col = random.randint(0, m - 1) if not perc.is_open(lin, col): perc.open(lin, col) tests.append(perc.no_open()) testes = np.array(tests) self.testes = testes / (n * m)
def percolateIt(): # pegue a dimensão da grade dim_str = input("Digite a dimensão da grade (nlins e ncols): ") dim_lst = dim_str.split() try: nlins = int(dim_lst[0]) ncols = int(dim_lst[1]) except: print("ERRO: dimensão devem ser dois inteiros positivos") return # crie o objeto Percolation perc = Percolation((nlins, ncols)) # crie a janela screen = setScreen((nlins, ncols)) # desenhe a grade inicial drawPercolation(perc, screen) # comece a abrir sÃtios running = True while running: # examine a fila de eventos for event in pygame.event.get(): if event.type == pygame.QUIT: running = False elif event.type == pygame.MOUSEBUTTONDOWN: # usuário clicou # localize o sÃtio clicado col, lin = findRec(event.pos) # abra o sÃtio [lin][col] perc.open(lin, col) # desenhe a nova grade drawPercolation(perc, screen) # relatório print("Percolates: ", perc.percolates()) print("Open sites: ", perc.no_open())