puzzle script takes an algorithm to use to solve the given puzzles
This commit is contained in:
parent
65f4453e78
commit
d25a320c30
1 changed files with 10 additions and 3 deletions
13
puzzles.py
13
puzzles.py
|
@ -9,6 +9,7 @@ import os.path
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
from sudoku import Sudoku
|
from sudoku import Sudoku
|
||||||
|
from sudoku.solvers import backtracker
|
||||||
|
|
||||||
euler = []
|
euler = []
|
||||||
norvig = []
|
norvig = []
|
||||||
|
@ -44,9 +45,10 @@ def _parse_puzzle(puzzle, quiet):
|
||||||
def parse_args(args):
|
def parse_args(args):
|
||||||
parser = argparse.ArgumentParser()
|
parser = argparse.ArgumentParser()
|
||||||
parser.add_argument('--euler', '-e', dest='library', action='store_const', const=euler, default=None)
|
parser.add_argument('--euler', '-e', dest='library', action='store_const', const=euler, default=None)
|
||||||
parser.add_argument('--norvig', '-n', dest='library', action='store_const', const=norvig, default=None)
|
|
||||||
parser.add_argument('--verbose', '-v', action='store_true', default=False)
|
|
||||||
parser.add_argument('--library', '-l', dest='path', default='./puzzles')
|
parser.add_argument('--library', '-l', dest='path', default='./puzzles')
|
||||||
|
parser.add_argument('--norvig', '-n', dest='library', action='store_const', const=norvig, default=None)
|
||||||
|
parser.add_argument('--solver', '-s', default=None)
|
||||||
|
parser.add_argument('--verbose', '-v', action='store_true', default=False)
|
||||||
parser.add_argument('indexes', metavar='N', nargs='+', type=int)
|
parser.add_argument('indexes', metavar='N', nargs='+', type=int)
|
||||||
return parser.parse_args(args)
|
return parser.parse_args(args)
|
||||||
|
|
||||||
|
@ -54,7 +56,12 @@ def main():
|
||||||
args = parse_args(sys.argv[1:])
|
args = parse_args(sys.argv[1:])
|
||||||
parse_puzzle_files(args.path, quiet=not args.verbose)
|
parse_puzzle_files(args.path, quiet=not args.verbose)
|
||||||
for i in args.indexes:
|
for i in args.indexes:
|
||||||
print(args.library[i])
|
puzzle = args.library[i]
|
||||||
|
print(puzzle)
|
||||||
|
if args.solver is not None:
|
||||||
|
if args.solver == 'backtracking':
|
||||||
|
puzzle.solve(backtracker.solve)
|
||||||
|
print(puzzle)
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue