/
main.py
executable file
·70 lines (51 loc) · 1.66 KB
/
main.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#!/usr/bin/env python2.7
import argparse
import random
import sys
from termcolor import colored
from config import config
from playground import PlayGround, Position, FieldColorPalette
from solver import Area, Solver, RandomStrategy, MostPeripheralsStrategy, \
MostUnfloodedColorStrategy
def parse_cmdline(argv):
"""Parse applications commandline and feed into global config"""
parser = argparse.ArgumentParser()
parser.add_argument('-v', '--verbosity', action='count', default=0,
help='increase output verbosity')
parser.add_argument('--iterations', type=int, default=50,
help='number of iterations')
args = parser.parse_args(argv)
config['args'] = args
config['verbosity'] = args.verbosity
def main(argv):
parse_cmdline(argv)
print "Flood fill"
fp = FieldColorPalette(num_colors=6)
pg = PlayGround(12, 12, fp)
pg.fill_random()
pg.plot()
p = pg.copy()
solver1 = Solver(p, RandomStrategy(p))
sol1 = solver1.solve()
p = pg.copy()
solver2 = Solver(p, MostPeripheralsStrategy(p))
sol2 = solver2.solve()
p = pg.copy()
solver3 = Solver(p, MostUnfloodedColorStrategy(p))
sol3 = solver3.solve()
print sol1
print sol2
print sol3
if 'iterations' in config['args']:
steps = config['args'].iterations
print "Giving Random strategy %s tries" % steps
bs = sol1
for i in range(steps):
p = pg.copy()
solver1 = Solver(p, RandomStrategy(p))
sol = solver1.solve()
if sol.better_than(bs):
bs = sol
print bs
if __name__ == '__main__':
main(sys.argv[1:])