-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathsearch.py
30 lines (28 loc) · 1.02 KB
/
search.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
import sys
import os
from board import TosBoard
import utils
import config as cfg
# get board object
initBoard = TosBoard()
# init
initBoard.randomInitialized()
if cfg.inputFileName != None:
if cfg.inputFileName.endswith("txt"):
initBoard.initFromFile(cfg.inputFileName)
else:
initBoard.initFromScreenshot(cfg.inputFileName)
# test evaluation
stones, boundary, combo, end = initBoard.evaluate()
# start searching
bestBoard, finalMoveList = utils.analyze(initBoard)
# evaluate and visualization
stones, boundary, combo, end = bestBoard.evaluate()
utils.visualizePath(initBoard, bestBoard, finalMoveList)
# dump result to txt file
with open(os.path.join(cfg.outputDir, "output.txt"), "w") as fout:
fout.write( "startRowIdx={}\n".format(initBoard.currentPosition[0]) )
fout.write( "startColIdx={}\n".format(initBoard.currentPosition[1]) )
for move in finalMoveList:
fout.write( "{} ".format(move) )
fout.write( "\nstones={}\ncombo={}\nsteps={}\n".format( stones, combo, len(finalMoveList) ) )