-
Notifications
You must be signed in to change notification settings - Fork 0
/
AIMove.py
75 lines (59 loc) · 2.13 KB
/
AIMove.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
71
72
73
74
75
'''
GAD - a simple program that plays a famous game against humans
Copyright 2019 Eugenio Menegatti
myindievg@gmail.com
This file is part of GAD.
The file COPYING describes the terms under which GAD is distributed.
GAD is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
GAD is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GAD. If not, see <http://www.gnu.org/licenses/>.
'''
import AI as mai
import GAD as mGAD
import IOUtils as mioutils
def loadBoard_FromCPP(fIN):
playerColor = None
firstLine = fIN.readline()
#print("Player color from file: [", firstLine, "]")
if "B" in firstLine or "b" in firstLine:
playerColor = mGAD.B
if "W" in firstLine or "w" in firstLine:
playerColor = mGAD.W
return playerColor, mioutils.readBoardFromFile(fIN)
def saveBoard_ToCPP(board, x, y, fOUT):
fOUT.write( str(x) + " " + str(y) + str('\n') )
mioutils.writeBoardToFile(board, fOUT)
def aiMove():
data_path = "C:\\Users\\darth_000\\Desktop\\workspaces\\python\\GadLearner\\"
board_InFileName = "boardIN.txt"
board_OutFileName = "boardOUT.txt"
fIN = open(data_path + board_InFileName,"r")
fOUT = open(data_path + board_OutFileName,"w+")
gad = mGAD.GAD()
gad.ai.init(mai.ALGORITHMIC)
gad.player, gad.currentBoard = loadBoard_FromCPP(fIN)
#gad.player = mGAD.B
print("Player color is: ", gad.player)
print("Input board is:")
mioutils.dumpBoard(gad.currentBoard)
computerMoved, x, y, _, _ = gad.computerMove()
if not computerMoved:
x = -1
y = -1
print("Computer passed")
else:
print("Computer moved in x=", x, " y=", y)
print("Output board is")
mioutils.dumpBoard(gad.currentBoard)
saveBoard_ToCPP(gad.currentBoard, x, y, fOUT)
fIN.close
fOUT.close
if __name__== "__main__":
aiMove()