# This is a wrapper so we can see our C-funcs in the profile

# it should be possible to swap it out without changing anything



__version__ = "$Revision: 1.4 $"



import icfp
def heuristic1(x,y):

    return icfp.heuristic1(x,y)



def distance1(x,y):

    return 1



class Board:

    def __init__(self, width, height):

        self._board = icfp.Board(width, height)

#        self._n = {}

        return

    def finalize(self):

        return self._board.finalize()



    def peek(self,x):

        return self._board.peek(x)

    def neighbors(self,x):

#        if (len(self._n) > 1000):

#            self._n = {}

#        if (self._n.has_key(x)):

#            return self._n[x]

        

#        self._n[x] = self._board.neighbors(x)

#        return self._n[x]

        return self._board.neighbors(x)

    def set_row(self,x,y):

        return self._board.set_row(x,y)

    def print_board(self):

        return self._board.print_board()

    def get_danger(self,x):

        return self._board.get_danger(x)

    def add_player(self,x):

        return self._board.add_player(x)

    def rm_player(self,x):

        return self._board.rm_player(x)



class PQueue:

    def __init__(self):

        self._pqueue = icfp.PQueue()

        return

    def peek(self, x):

        return self._pqueue.peek(x)

    def push(self, x):

        return self._pqueue.push(x)

    def pop(self):

        return self._pqueue.pop()

    def __len__(self):

        return len(self._pqueue)