def open_grid(self): """ Ouvre une grille préexistante dans une fenêtre d'édition """ filename = askopenfilename( initialdir=".", filetypes=(("JSON File", "*.json"), ("All Files", "*.*")), title="Choose a file.", ) if filename: grid = fio.read_grid(filename) self.destroy() self.master.change(Editor_Frame, [grid["width"], grid["height"], grid])
if __name__ == "__main__": if len(argv) < 3: print("Error: incorrect number of arguments", file=stderr) print( "Usage: {} <name of satsolver> path/to/grid/file path/to/sat/output/file".format( argv[0] ), file=stderr, ) print("Supported satsolvers: minisat, picosat", file=stderr) print("Sat output can be read from stdin", file=stderr) exit(1) # Lire la grille grid = read_grid(argv[2]) # Ouvrir le fichier sat if len(argv) == 3: satfile = stdin else: satfile = open(argv[3], "r") content = satfile.read() # Lire le contenu # Fermer le fichier if len(argv) > 2: satfile.close() # Parser le contenu if argv[1] == "minisat":
#!venv/bin/python from sys import argv, stderr from lib.file_io import read_grid, save_dimacs from lib.gen_formule import gen_cnf, sat_3sat if __name__ == "__main__": # vérification du nombre d'arguments if len(argv) < 2: print("Erreur: veuillez fournir au moins une grille en argument", file=stderr) print("Usage: {} path/to/grid.json path/to/another/grid.json ....". format(argv[0]), file=stderr) exit(1) # convertir chaque grille fournie en argument et les exporter au format DIMACS for i in range(1, len(argv)): # lire la grille grid = read_grid(argv[i]) # générer les clauses cnf = gen_cnf(grid["width"], grid["height"], grid["zones"], grid["blacks"]) # convertir les clauses en clauses 3-SAT cnf = sat_3sat(cnf, grid["height"], grid["width"]) # générer le nom du fichier de sortie output_filename = argv[i].split(".json")[0] + ".cnf" # exporter au format DIMACS save_dimacs(cnf, output_filename)