Fix bugs and documentate stuff
[progcomp2013.git] / qchess / src / agent_bishop.py
index 13be5bd..0323edb 100644 (file)
@@ -1,7 +1,7 @@
 # A sample agent
 
 
-class AgentBishop(InternalAgent): # Inherits from InternalAgent (in qchess)
+class AgentBishop(AgentRandom): # Inherits from AgentRandom (in qchess)
        def __init__(self, name, colour):
                InternalAgent.__init__(self, name, colour)
                self.value = {"pawn" : 1, "bishop" : 3, "knight" : 3, "rook" : 5, "queen" : 9, "king" : 100, "unknown" : 4}
@@ -47,10 +47,9 @@ class AgentBishop(InternalAgent): # Inherits from InternalAgent (in qchess)
                                
                                
                                # Get total probability that the move is protected
-                               [xx,yy] = [piece.x, piece.y]
-                               [piece.x, piece.y] = [x, y]
-                               self.board.grid[x][y] = piece
-                               self.board.grid[xx][yy] = None
+                               self.board.push_move(piece, x, y)
+                               
+
                                
                                defenders = self.board.coverage(x, y, piece.colour, reject_allied = False)
                                d_prob = 0.0
@@ -73,9 +72,8 @@ class AgentBishop(InternalAgent): # Inherits from InternalAgent (in qchess)
                                if (a_prob > 1.0):
                                        a_prob = 1.0
 
-                               self.board.grid[x][y] = target
-                               self.board.grid[xx][yy] = piece
-                               [piece.x, piece.y] = [xx, yy]
+                               self.board.pop_move()
+                               
 
                                
                                # Score of the move
@@ -163,6 +161,7 @@ class AgentBishop(InternalAgent): # Inherits from InternalAgent (in qchess)
        def select(self):
                #sys.stderr.write("Getting choice...")
                self.choice = self.select_best(self.colour)[0]
+               
                #sys.stderr.write(" Done " + str(self.choice)+"\n")
                return [self.choice.x, self.choice.y]
        
@@ -174,5 +173,5 @@ class AgentBishop(InternalAgent): # Inherits from InternalAgent (in qchess)
                if len(moves) > 0:
                        return moves[0][0]
                else:
-                       return InternalAgent.get_move(self)
+                       return AgentRandom.get_move(self)
 

UCC git Repository :: git.ucc.asn.au