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
Getting ready to run rounds
[progcomp2013.git]
/
qchess
/
src
/
player.py
diff --git
a/qchess/src/player.py
b/qchess/src/player.py
index
b3f0eb7
..
0cc56c2
100644
(file)
--- a/
qchess/src/player.py
+++ b/
qchess/src/player.py
@@
-18,6
+18,9
@@
class Player():
def update(self, result):
pass
def update(self, result):
pass
+ def reset_board(self, s):
+ pass
+
# Player that runs from another process
class ExternalAgent(Player):
# Player that runs from another process
class ExternalAgent(Player):
@@
-85,6
+88,12
@@
class ExternalAgent(Player):
raise Exception("GIBBERISH \"" + str(line) + "\"")
return result
raise Exception("GIBBERISH \"" + str(line) + "\"")
return result
+ def reset_board(self, s):
+ self.send_message("BOARD")
+ for line in s.split("\n"):
+ self.send_message(line.strip(" \r\n"))
+ self.send_message("END BOARD")
+
def quit(self, final_result):
try:
self.send_message("QUIT " + final_result)
def quit(self, final_result):
try:
self.send_message("QUIT " + final_result)
@@
-167,6
+176,9
@@
class InternalAgent(Player):
self.board.update(result)
self.board.verify()
self.board.update(result)
self.board.verify()
+ def reset_board(self, s):
+ self.board.reset_board(s)
+
def quit(self, final_result):
pass
def quit(self, final_result):
pass
@@
-203,8
+215,6
@@
class AgentRandom(InternalAgent):
def run_agent(agent):
#sys.stderr.write(sys.argv[0] + " : Running agent " + str(agent) + "\n")
def run_agent(agent):
#sys.stderr.write(sys.argv[0] + " : Running agent " + str(agent) + "\n")
- colour = sys.stdin.readline().strip(" \r\n")
- agent.colour = colour
while True:
line = sys.stdin.readline().strip(" \r\n")
if line == "SELECTION?":
while True:
line = sys.stdin.readline().strip(" \r\n")
if line == "SELECTION?":
@@
-220,6
+230,14
@@
def run_agent(agent):
#sys.stderr.write(sys.argv[0] + " : Quitting\n")
agent.quit(" ".join(line.split(" ")[1:])) # Quits the game
break
#sys.stderr.write(sys.argv[0] + " : Quitting\n")
agent.quit(" ".join(line.split(" ")[1:])) # Quits the game
break
+ elif line.split(" ")[0] == "BOARD":
+ s = ""
+ line = sys.stdin.readline().strip(" \r\n")
+ while line != "END BOARD":
+ s += line + "\n"
+ line = sys.stdin.readline().strip(" \r\n")
+ agent.board.reset_board(s)
+
else:
agent.update(line) # Updates agent.board
return 0
else:
agent.update(line) # Updates agent.board
return 0
@@
-229,7
+247,7
@@
def run_agent(agent):
class ExternalWrapper(ExternalAgent):
def __init__(self, agent):
class ExternalWrapper(ExternalAgent):
def __init__(self, agent):
- run = "python -u -c \"import sys;import os;from qchess import *;agent = " + agent.__class__.__name__ + "('" + agent.name + "','"+agent.colour+"');sys.exit(run_agent(agent))\""
+ run = "python -u -c \"import sys;import os;from qchess import *;agent = " + agent.__class__.__name__ + "('" + agent.name + "','"+agent.colour+"');sys.
stdin.readline();sys.
exit(run_agent(agent))\""
# str(run)
ExternalAgent.__init__(self, run, agent.colour)
# str(run)
ExternalAgent.__init__(self, run, agent.colour)
UCC
git Repository :: git.ucc.asn.au