Ejemplo n.º 1
0
 def move(self, move, board):
     capture = True
     if board.fields[move.toField] is None:
         capture = False
     
     explosionMoves = super(AtomicGame, self).move(move, board)
     
     if not capture:
         return explosionMoves
     
     # create explosion moves
     target = move.toField
     for x in [-1, 0, 1]:
         for y in [-1, 0, 1]:
             # piece itself
             #if x == 0 and y == 0:
             #    continue
             # fields around it
             explosionTarget = board.moveByDirection(target, x, y)
             if explosionTarget is None:
                 continue
             if board.fields[explosionTarget] is None:
                 continue 
             if board.fields[explosionTarget].shortName in self.PAWN_PIECE_TYPES:
                 continue 
             move = Move(explosionTarget, explosionTarget)
             move.toPiece = '' # indicates that field will be cleared
             move.silent = True
             # execute on board
             board.move(move) 
             explosionMoves.append(move)
              
     return explosionMoves
Ejemplo n.º 2
0
 def move(self, move, board):
     coin_pos = board.findPieces('c', None).pop() # there only is one ;-)
     coin_target = coin_pos + (move.toField - move.fromField)
     coin_move = Move(coin_pos, coin_target)
     coin_move.silent = True
     board.move(coin_move)
     # normal stuff
     return [coin_move] + super(CoinGame, self).move(move, board)