git.ucc.asn.au
/
progcomp2013.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Made networking work hopefully
[progcomp2013.git]
/
qchess
/
src
/
player.py
diff --git
a/qchess/src/player.py
b/qchess/src/player.py
index
0cc56c2
..
53edb44
100644
(file)
--- a/
qchess/src/player.py
+++ b/
qchess/src/player.py
@@
-1,7
+1,7
@@
import subprocess
import select
import platform
import subprocess
import select
import platform
-
+import re
agent_timeout = -1.0 # Timeout in seconds for AI players to make moves
# WARNING: Won't work for windows based operating systems
agent_timeout = -1.0 # Timeout in seconds for AI players to make moves
# WARNING: Won't work for windows based operating systems
@@
-16,10
+16,16
@@
class Player():
self.colour = colour
def update(self, result):
self.colour = colour
def update(self, result):
- pass
+ return result
def reset_board(self, s):
pass
def reset_board(self, s):
pass
+
+ def __str__(self):
+ return self.name + "<"+str(self.colour)+">"
+
+ def base_player(self):
+ return self
# Player that runs from another process
class ExternalAgent(Player):
# Player that runs from another process
class ExternalAgent(Player):
@@
-53,7
+59,7
@@
class ExternalAgent(Player):
if self.p.stdout in ready:
#sys.stderr.write("Reading from " + str(self.p) + " 's stdout...\n")
try:
if self.p.stdout in ready:
#sys.stderr.write("Reading from " + str(self.p) + " 's stdout...\n")
try:
- result = self.p.stdout.readline().strip("\r\n")
+ result = self.p.stdout.readline().strip("
\t
\r\n")
#sys.stderr.write("Read \'" + result + "\' from " + str(self.p) + "\n")
return result
except: # Exception, e:
#sys.stderr.write("Read \'" + result + "\' from " + str(self.p) + "\n")
return result
except: # Exception, e:
@@
-67,7
+73,8
@@
class ExternalAgent(Player):
line = self.get_response()
try:
line = self.get_response()
try:
- result = map(int, line.split(" "))
+ m = re.match("\s*(\d+)\s+(\d+)\s*", line)
+ result = map(int, [m.group(1), m.group(2)])
except:
raise Exception("GIBBERISH \"" + str(line) + "\"")
return result
except:
raise Exception("GIBBERISH \"" + str(line) + "\"")
return result
@@
-75,7
+82,7
@@
class ExternalAgent(Player):
def update(self, result):
#print "Update " + str(result) + " called for AgentPlayer"
self.send_message(result)
def update(self, result):
#print "Update " + str(result) + " called for AgentPlayer"
self.send_message(result)
-
+ return result
def get_move(self):
def get_move(self):
@@
-83,7
+90,9
@@
class ExternalAgent(Player):
line = self.get_response()
try:
line = self.get_response()
try:
- result = map(int, line.split(" "))
+ m = re.match("\s*(\d+)\s+(\d+)\s*", line)
+ result = map(int, [m.group(1), m.group(2)])
+
except:
raise Exception("GIBBERISH \"" + str(line) + "\"")
return result
except:
raise Exception("GIBBERISH \"" + str(line) + "\"")
return result
@@
-159,6
+168,7
@@
class HumanPlayer(Player):
pass
else:
sys.stdout.write(result + "\n")
pass
else:
sys.stdout.write(result + "\n")
+ return result
# Default internal player (makes random moves)
# Default internal player (makes random moves)
@@
-174,7
+184,8
@@
class InternalAgent(Player):
def update(self, result):
self.board.update(result)
def update(self, result):
self.board.update(result)
- self.board.verify()
+ #self.board.verify()
+ return result
def reset_board(self, s):
self.board.reset_board(s)
def reset_board(self, s):
self.board.reset_board(s)
UCC
git Repository :: git.ucc.asn.au