diff --git a/Board.py b/Board.py index d3432ed6cd3a2968805fc303f3cd1f2469031e3d..3ca9c7a80b7c720f050f0acb4abacdf2dba5aa1c 100644 --- a/Board.py +++ b/Board.py @@ -1,9 +1,6 @@ import Tile class Board: # List of exit tiles. Only red at the moment - exit_tiles = {'red':[(3,-3), (3,-2), (3,-1), (3,0)], - 'green':[(-3,3),(-2,3),(-1,3),(0,3)], - 'blue':[(0,-3),(-1,-2),(-2,-1),(-3,0)]} """ directions = ['l', 'tl', 'tr', 'r', 'br', 'bl'] moves = {'l':(-1,0), 'tl':(0,-1), 'tr':(1,-1), 'r':(1,0), @@ -15,6 +12,10 @@ class Board: def __init__(self): # Create board state array # None means an empty tile and 0 means a tile not on the board + + self.exit_tiles = {'red':[(3,-3), (3,-2), (3,-1), (3,0)], + 'green':[(-3,3),(-2,3),(-1,3),(0,3)], + 'blue':[(0,-3),(-1,-2),(-2,-1),(-3,0)]} self.tiles = [[None for i in range(7)] for j in range(7)] self.tiles[0][0] = 0 self.tiles[0][1] = 0 diff --git a/__pycache__/Board.cpython-36.pyc b/__pycache__/Board.cpython-36.pyc index 59ff8c998f3173122c9a776294ea3b006d6e8b36..16ddc245c98bb8521a0a6d91764c5285997893a0 100644 Binary files a/__pycache__/Board.cpython-36.pyc and b/__pycache__/Board.cpython-36.pyc differ diff --git a/game.py b/game.py index 49e87cabaf1deb06192deaca406b9ff2d2ac0ec0..e26f2233d18adaef5c3e765c0276181683cb8cbf 100644 --- a/game.py +++ b/game.py @@ -43,6 +43,8 @@ def main(): bdict = make_bdict(node) print_board(bdict) """ + bdict = make_bdict(node) + print_board(node) if not node.toMove: continue if node.toMove[0] == 'e': diff --git a/game2.py b/game2.py index 8de950219d961ba72a58ef83eab82dc02a073154..d06f48ccede005249296b4a391867dc08a1861d3 100644 --- a/game2.py +++ b/game2.py @@ -1,4 +1,5 @@ import cProfile +import pickle import sys import heapq import json @@ -13,6 +14,12 @@ exit_tiles = {'red':[(3,-3),(3,-2),(3,-1),(3,0)], 'green':[(-3,3),(-2,3),(-1,3),(0,3)], 'blue':[(0,-3),(-1,-2),(-2,-1),(-3,0)]} +tile_map = {"0-3":1,"1,-3":2,"2-3":3,"3-3":4,"-1-2":5,"0-2":6,"1-2":7,"2-2":8, + "3-2":9,"-2-1":10,"-1-1":11,"0-1":12,"1-1":13,"2-1":14,"3-1":15, + "-30":16,"-20":17,"-10":18,"00":19,"10":20,"20":21,"30":22,"-31":23, + "-21":24,"-11":25,"01":26,"11":27,"21":28,"-32":29,"-22":30,"-12":31, + "02":32,"12":33,"-33":34,"-23":35,"-13":36,"03":37} + def main(): with open(sys.argv[1]) as file: @@ -33,16 +40,25 @@ def main(): colour = data['colour'] bdict = make_bdict(board) print_board(bdict) + + nonBlockTiles = [] + for tile in exit_tiles[colour]: + if type(board.tiles[tile[1]+3][tile[0]+3]) == Block.Block: + pass + else: + nonBlockTiles.append(tile) + exit_tiles[colour] = nonBlockTiles + board.exit_tiles[colour] = nonBlockTiles + print(exit_tiles[colour]) + + # Run a* search and print solution if one exists path = A_Star(board) if path is None: print("No path found") else: for node in path: - """ - bdict = make_bdict(node) - print_board(bdict) - """ + if not node.toMove: continue if node.toMove[0] == 'e': @@ -55,16 +71,33 @@ def main(): print ("JUMP from " + str(node.toMove[1]) + " to " + str(node.toMove[2]) + ".") +def makeHash(node): + h = str(len(node.pieces)) + spos = [] + for p in node.pieces: + s = str(p.pos[0]) + str(p.pos[1]) + spos.append(s) + spos.sort() + for piece in spos: + h += piece + return h + + + + def A_Star(start): # Initialise open and closed sets closedSet = {} openSet = [start] openSet2 = {} + idx = makeHash(start) + """ idx = str(len(start.pieces)) + ":" for p in start.pieces: idx += str(p.pos[0]) + ":" idx += str(p.pos[1]) + """ openSet2[idx] = start # Initial path length and heuristic @@ -90,10 +123,13 @@ def A_Star(start): # Remove the current node from the open set and add it to the closed set #openSet.remove(current) + idx = makeHash(current) + """ idx = str(len(current.pieces)) + ":" for p in current.pieces: idx += str(p.pos[0]) + ":" idx += str(p.pos[1]) + """ del openSet2[idx] closedSet[idx] = current @@ -144,17 +180,30 @@ def A_Star(start): heapq.heappush(openSet, neighbor) #openSet.append(neighbor) """ + idx = makeHash(neighbor) + """ idx = str(len(neighbor.pieces)) + ":" for p in neighbor.pieces: idx += str(p.pos[0]) + ":" idx += str(p.pos[1]) + """ if idx in openSet2: node = openSet2[idx] if tentative_gScore < node.g: + """ node.parent = current node.g = tentative_gScore node.f = node.g + heuristic(node) + heapq.heapify(openSet)""" + del openSet2[idx] + openSet.remove(node) + neighbor.parent = current + neighbor.g = tentative_gScore + neighbor.f = neighbor.g + heuristic(neighbor) heapq.heapify(openSet) + heapq.heappush(openSet, neighbor) + openSet2[idx] = neighbor + else: neighbor.parent = current @@ -174,15 +223,62 @@ def listCompare(list1, list2): return True # Calculates the heuristic for a given board state +""" def heuristic(node): h = 0 for piece in node.pieces: min_dist = 10 for tile in exit_tiles[piece.colour]: - if board.distance(piece.pos, tile) <= min_dist: - min_dist = board.distance(piece.pos, tile) + if node.distance(piece.pos, tile) <= min_dist: + min_dist = node.distance(piece.pos, tile) h += (min_dist / 2) + 1 return h +""" + +# Calculates the heuristic for a given board state +def heuristic(node): + h = 0 + for piece in node.pieces: + + h += (min_dist(piece)-position_value(node, piece) / 2) + 1 + return h + +def position_value(node, piece): + adjacent_piece = pickle.loads(pickle.dumps(piece)) + value = 0 + for move in node.moves: + adjacent_piece.pos = (piece.pos[0] + move[0], piece.pos[1] + move[1]) + adjacent_min = min_dist(adjacent_piece) + current_min = min_dist(piece) + if checkJump(node, piece.pos, move): + if adjacent_min < current_min: + value += 0.75 + if adjacent_min == current_min: + value += 0.3 + return value + + +def min_dist(piece): + min_dist = 10 + for tile in exit_tiles[piece.colour]: + if board.distance(piece.pos, tile) <= min_dist: + min_dist = board.distance(piece.pos, tile) + return min_dist + +def on_board(position): + if position[0] >= -3 and position[0] <= 3 and position[1] >= -3 and position[1] <= 3: + return True + else: + return False + +def checkJump(node, position, move): + new = (position[0] + move[0], position[1] + move[1]) + new_jump = (position[0] + 2*move[0], position[1] + 2*move[1]) + if on_board(new) and on_board(new_jump): + if type(board.tiles[new[0]+3][new[1]+3]) == Block.Block or type(board.tiles[new[0]+3][new[1]+3]) == Piece.Piece and type(board.tiles[new_jump[0]+3][new_jump[1]+3]) == None: + return True + else: + return False # Check if the goal has been reached def checkGoal(state): @@ -210,7 +306,9 @@ def getNeighbors(current, closedSet): # getMoves returns only a Piece object if a piece is on an exit tile # In that case, the only neighbor is the same board with that piece removed if isinstance(moves, Piece.Piece): - neighbor = copy.deepcopy(current) + #neighbor = copy.deepcopy(current) + neighbor = pickle.loads(pickle.dumps(current)) + neighbor.toMove = None neighbor.toMove = ['e'] + list(moves.pos) for piece in neighbor.pieces: @@ -226,15 +324,22 @@ def getNeighbors(current, closedSet): # Otherwise, it returns a list of possible moves # In that case, return a list of board states with those moves applied for move in moves: - current.move(move[1], move[2]) + current.move(move[1], move[2]) + idx = makeHash(current) + """ idx = str(len(current.pieces)) + ":" for p in current.pieces: idx += str(p.pos[0]) + ":" idx += str(p.pos[1]) + """ if idx not in closedSet: - neighbor = copy.deepcopy(current) - neighbor.toMove = list(move) + neighbor = pickle.loads(pickle.dumps(current)) + #neighbor = copy.deepcopy(current) + neighbor.toMove = None + neighbor.toMove = list(move) + if current.toMove == neighbor.toMove: + print(current.toMove) neighbors.append(neighbor) current.move(move[2], move[1]) diff --git a/in10 b/in10 new file mode 100644 index 0000000000000000000000000000000000000000..a669eb2aaa50a1d425e58b80528b97c496aaa14e --- /dev/null +++ b/in10 @@ -0,0 +1,108 @@ +# +# .-'-._.-'-._.-'-._.-'-. +# | p | p | p | b | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | b | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | p | | | | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | +# '-._.-'-._.-'-._.-'-._.-' +[(3, 0)] +MOVE from (0, -3) to (0, -2). +JUMP from (1, -3) to (-1, -1). +JUMP from (0, -2) to (-2, 0). +JUMP from (-3, 0) to (-1, 0). +JUMP from (-1, -1) to (-1, 1). +MOVE from (2, -3) to (1, -2). +MOVE from (1, -2) to (0, -1). +JUMP from (0, -1) to (-2, 1). +JUMP from (-2, 0) to (-2, 2). +JUMP from (-2, 1) to (-2, 3). +JUMP from (-1, 1) to (-1, 3). +JUMP from (-2, 3) to (0, 3). +MOVE from (0, 3) to (1, 2). +MOVE from (-2, 2) to (-2, 3). +JUMP from (-2, 3) to (0, 3). +MOVE from (-1, 0) to (-1, 1). +JUMP from (0, 3) to (2, 1). +MOVE from (-1, 3) to (0, 3). +JUMP from (1, 2) to (3, 0). +EXIT from (3, 0). +JUMP from (-1, 1) to (-1, 3). +MOVE from (0, 3) to (1, 2). +JUMP from (1, 2) to (3, 0). +EXIT from (3, 0). +MOVE from (-1, 3) to (0, 3). +MOVE from (0, 3) to (1, 2). +JUMP from (1, 2) to (3, 0). +EXIT from (3, 0). +MOVE from (2, 1) to (3, 0). +EXIT from (3, 0). + 65727069 function calls in 144.263 seconds + + Ordered by: internal time + + ncalls tottime percall cumtime percall filename:lineno(function) + 211533 73.989 0.000 73.989 0.000 {built-in method _pickle.loads} + 211533 30.804 0.000 30.804 0.000 {built-in method _pickle.dumps} + 7743 10.738 0.001 21.267 0.003 {built-in method _heapq.heapify} + 48629750 10.624 0.000 10.624 0.000 Board.py:38(__lt__) + 1 5.361 5.361 144.103 144.103 game2.py:88(A_Star) + 9510 3.505 0.000 3.505 0.000 {method 'remove' of 'list' objects} + 2606214 1.696 0.000 2.198 0.000 Board.py:72(distance) + 328657 1.647 0.000 1.956 0.000 game2.py:74(makeHash) + 1303107 1.181 0.000 3.379 0.000 game2.py:261(min_dist) + 601434 0.840 0.000 1.138 0.000 game2.py:274(checkJump) + 15101 0.814 0.000 106.646 0.007 game2.py:302(getNeighbors) + 100239 0.771 0.000 5.865 0.000 game2.py:246(position_value) + 7818642 0.502 0.000 0.502 0.000 {built-in method builtins.abs} + 15101 0.370 0.000 0.388 0.000 Board.py:42(getMoves) + 404522 0.363 0.000 0.363 0.000 Board.py:65(move) + 1128172 0.298 0.000 0.298 0.000 game2.py:268(on_board) + 1 0.160 0.160 144.263 144.263 game2.py:23(main) + 328657 0.159 0.000 0.159 0.000 {method 'sort' of 'list' objects} + 1579953 0.135 0.000 0.135 0.000 {method 'append' of 'list' objects} + 26510 0.120 0.000 6.319 0.000 game2.py:239(heuristic) + 15102 0.076 0.000 0.155 0.000 {built-in method _heapq.heappop} + 328658 0.051 0.000 0.051 0.000 {built-in method builtins.len} + 26509 0.038 0.000 0.055 0.000 {built-in method _heapq.heappush} + 15196 0.012 0.000 0.012 0.000 {built-in method builtins.isinstance} + 15102 0.008 0.000 0.008 0.000 game2.py:284(checkGoal) + 32 0.000 0.000 0.000 0.000 {built-in method builtins.print} + 1 0.000 0.000 0.000 0.000 {built-in method io.open} + 1 0.000 0.000 0.000 0.000 game2.py:350(make_bdict) + 1 0.000 0.000 0.000 0.000 game2.py:363(print_board) + 1 0.000 0.000 0.000 0.000 decoder.py:345(raw_decode) + 1 0.000 0.000 0.000 0.000 game2.py:291(retrace) + 1 0.000 0.000 0.000 0.000 game2.py:433(<listcomp>) + 30 0.000 0.000 0.000 0.000 {method 'insert' of 'list' objects} + 1 0.000 0.000 0.000 0.000 decoder.py:334(decode) + 1 0.000 0.000 0.000 0.000 {method 'read' of '_io.TextIOWrapper' objects} + 3 0.000 0.000 0.000 0.000 copyreg.py:96(_slotnames) + 1 0.000 0.000 0.000 0.000 {method 'format' of 'str' objects} + 1 0.000 0.000 0.000 0.000 __init__.py:274(load) + 1 0.000 0.000 0.000 0.000 __init__.py:302(loads) + 14 0.000 0.000 0.000 0.000 {method 'center' of 'str' objects} + 3 0.000 0.000 0.000 0.000 {built-in method builtins.hasattr} + 3 0.000 0.000 0.000 0.000 {method 'get' of 'mappingproxy' objects} + 4 0.000 0.000 0.000 0.000 Piece.py:2(__init__) + 1 0.000 0.000 0.000 0.000 codecs.py:318(decode) + 1 0.000 0.000 0.000 0.000 _bootlocale.py:23(getpreferredencoding) + 2 0.000 0.000 0.000 0.000 {method 'match' of '_sre.SRE_Pattern' objects} + 1 0.000 0.000 0.000 0.000 {built-in method _locale.nl_langinfo} + 1 0.000 0.000 0.000 0.000 {built-in method _codecs.utf_8_decode} + 10 0.000 0.000 0.000 0.000 Block.py:2(__init__) + 1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects} + 1 0.000 0.000 0.000 0.000 codecs.py:259(__init__) + 1 0.000 0.000 0.000 0.000 codecs.py:308(__init__) + 1 0.000 0.000 0.000 0.000 {method 'startswith' of 'str' objects} + 2 0.000 0.000 0.000 0.000 {method 'end' of '_sre.SRE_Match' objects} + + diff --git a/in6old b/in6old new file mode 100644 index 0000000000000000000000000000000000000000..3eba2efb629af01e2f6ad055ba52415cb97e3809 --- /dev/null +++ b/in6old @@ -0,0 +1,92 @@ +# +# .-'-._.-'-._.-'-._.-'-. +# | | p | p | b | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | b | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | p | +# '-._.-'-._.-'-._.-'-._.-' +MOVE from (0, 3) to (1, 2). +MOVE from (1, -3) to (1, -2). +JUMP from (2, -3) to (0, -1). +JUMP from (1, -2) to (-1, 0). +MOVE from (-1, 0) to (-1, 1). +JUMP from (-1, 1) to (-1, 3). +MOVE from (-1, 3) to (0, 3). +JUMP from (0, 3) to (2, 1). +JUMP from (1, 2) to (3, 0). +EXIT from (3, 0). +MOVE from (0, -1) to (0, 0). +MOVE from (0, 0) to (-1, 1). +JUMP from (-1, 1) to (-1, 3). +MOVE from (-1, 3) to (0, 3). +MOVE from (0, 3) to (1, 2). +JUMP from (1, 2) to (3, 0). +EXIT from (3, 0). +MOVE from (2, 1) to (3, 0). +EXIT from (3, 0). + 839260 function calls in 6.864 seconds + + Ordered by: internal time + + ncalls tottime percall cumtime percall filename:lineno(function) + 17514 3.129 0.000 3.129 0.000 {built-in method _pickle.loads} + 17514 2.845 0.000 2.845 0.000 {built-in method _pickle.dumps} + 1 0.271 0.271 6.845 6.845 game2.py:76(A_Star) + 53944 0.203 0.000 0.241 0.000 game2.py:62(makeHash) + 3254 0.108 0.000 6.351 0.002 game2.py:290(getNeighbors) + 66350 0.057 0.000 0.057 0.000 Board.py:64(move) + 3254 0.057 0.000 0.059 0.000 Board.py:41(getMoves) + 70790 0.049 0.000 0.063 0.000 Board.py:71(distance) + 3469 0.029 0.000 0.091 0.000 game2.py:215(heuristic) + 1 0.019 0.019 6.864 6.864 game2.py:23(main) + 53944 0.019 0.000 0.019 0.000 {method 'sort' of 'list' objects} + 205490 0.018 0.000 0.018 0.000 {method 'append' of 'list' objects} + 63603 0.016 0.000 0.016 0.000 Board.py:37(__lt__) + 212370 0.014 0.000 0.014 0.000 {built-in method builtins.abs} + 3255 0.010 0.000 0.019 0.000 {built-in method _heapq.heappop} + 53945 0.007 0.000 0.007 0.000 {built-in method builtins.len} + 29 0.006 0.000 0.012 0.000 {built-in method _heapq.heapify} + 3468 0.003 0.000 0.005 0.000 {built-in method _heapq.heappush} + 363 0.002 0.000 0.002 0.000 {method 'remove' of 'list' objects} + 3350 0.002 0.000 0.002 0.000 {built-in method builtins.isinstance} + 3255 0.001 0.000 0.001 0.000 game2.py:272(checkGoal) + 1 0.000 0.000 0.000 0.000 {built-in method io.open} + 1 0.000 0.000 0.000 0.000 game2.py:338(make_bdict) + 20 0.000 0.000 0.000 0.000 {built-in method builtins.print} + 1 0.000 0.000 0.000 0.000 game2.py:351(print_board) + 1 0.000 0.000 0.000 0.000 game2.py:279(retrace) + 1 0.000 0.000 0.000 0.000 decoder.py:345(raw_decode) + 1 0.000 0.000 0.000 0.000 game2.py:421(<listcomp>) + 1 0.000 0.000 0.000 0.000 {method 'read' of '_io.TextIOWrapper' objects} + 1 0.000 0.000 0.000 0.000 __init__.py:274(load) + 1 0.000 0.000 0.000 0.000 decoder.py:334(decode) + 3 0.000 0.000 0.000 0.000 copyreg.py:96(_slotnames) + 1 0.000 0.000 0.000 0.000 {method 'format' of 'str' objects} + 1 0.000 0.000 0.000 0.000 __init__.py:302(loads) + 3 0.000 0.000 0.000 0.000 {built-in method builtins.hasattr} + 1 0.000 0.000 0.000 0.000 codecs.py:318(decode) + 19 0.000 0.000 0.000 0.000 {method 'insert' of 'list' objects} + 2 0.000 0.000 0.000 0.000 {method 'match' of '_sre.SRE_Pattern' objects} + 1 0.000 0.000 0.000 0.000 {built-in method _locale.nl_langinfo} + 1 0.000 0.000 0.000 0.000 codecs.py:308(__init__) + 1 0.000 0.000 0.000 0.000 _bootlocale.py:23(getpreferredencoding) + 13 0.000 0.000 0.000 0.000 {method 'center' of 'str' objects} + 1 0.000 0.000 0.000 0.000 {method 'startswith' of 'str' objects} + 2 0.000 0.000 0.000 0.000 {method 'end' of '_sre.SRE_Match' objects} + 1 0.000 0.000 0.000 0.000 {built-in method _codecs.utf_8_decode} + 3 0.000 0.000 0.000 0.000 {method 'get' of 'mappingproxy' objects} + 3 0.000 0.000 0.000 0.000 Piece.py:2(__init__) + 1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects} + 1 0.000 0.000 0.000 0.000 codecs.py:259(__init__) + 10 0.000 0.000 0.000 0.000 Block.py:2(__init__) + + diff --git a/input10.json b/input10.json new file mode 100644 index 0000000000000000000000000000000000000000..5fcca17a2fc649ef9a8d89853558048d2fb1731d --- /dev/null +++ b/input10.json @@ -0,0 +1,5 @@ +{ + "colour": "red", + "pieces": [[0,-3],[1,-3],[2,-3],[-3,0]], + "blocks": [[3,-3],[3,-2],[3,-1],[2,-1],[2,0],[1,0],[1,1],[0,1],[0,2],[-1,2]] +} diff --git a/input9.json b/input9.json new file mode 100644 index 0000000000000000000000000000000000000000..e59d3b9dfe9986d8421bbe4e34a5bfa71f89cdaa --- /dev/null +++ b/input9.json @@ -0,0 +1,5 @@ +{ + "colour" : "red", + "pieces" : [[0,-3],[-3,0],[0,3],[-3,3]], + "blocks": [] +} diff --git a/out b/out new file mode 100644 index 0000000000000000000000000000000000000000..3516f5d1dd539289da69d95e99300ab0582df373 --- /dev/null +++ b/out @@ -0,0 +1,100 @@ +# +# .-'-._.-'-._.-'-._.-'-. +# | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | p | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | b | p | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | p | b | | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | +# '-._.-'-._.-'-._.-'-._.-' +3-210-100 +JUMP from (-2, 1) to (0, 1). +MOVE from (0, -1) to (1, -1). +JUMP from (0, 0) to (2, -2). +JUMP from (1, -1) to (3, -3). +EXIT from (3, -3). +JUMP from (0, 1) to (2, 1). +MOVE from (2, -2) to (3, -2). +EXIT from (3, -2). +MOVE from (2, 1) to (3, 0). +EXIT from (3, 0). + 9957876 function calls (8380073 primitive calls) in 3.653 seconds + + Ordered by: internal time + + ncalls tottime percall cumtime percall filename:lineno(function) +1341336/2356 1.419 0.000 3.523 0.001 copy.py:132(deepcopy) + 2736077 0.363 0.000 0.363 0.000 {method 'get' of 'dict' objects} +106810/32043 0.296 0.000 3.122 0.000 copy.py:210(_deepcopy_list) +84384/2356 0.239 0.000 3.504 0.001 copy.py:268(_reconstruct) + 1984141 0.184 0.000 0.184 0.000 {built-in method builtins.id} +84384/2356 0.162 0.000 3.481 0.001 copy.py:236(_deepcopy_dict) + 89293 0.153 0.000 0.449 0.000 copy.py:219(_deepcopy_tuple) + 275578 0.133 0.000 0.186 0.000 copy.py:252(_keep_alive) + 947999 0.089 0.000 0.089 0.000 {method 'append' of 'list' objects} + 945486 0.086 0.000 0.086 0.000 copy.py:190(_deepcopy_atomic) + 84384 0.074 0.000 0.074 0.000 {method '__reduce_ex__' of 'object' objects} + 168768 0.062 0.000 0.062 0.000 {built-in method builtins.getattr} + 89293 0.061 0.000 0.288 0.000 copy.py:220(<listcomp>) + 84387 0.044 0.000 0.044 0.000 {built-in method builtins.hasattr} + 168768 0.042 0.000 0.162 0.000 copy.py:273(<genexpr>) + 84384 0.033 0.000 0.044 0.000 copyreg.py:87(__newobj__) + 169141 0.029 0.000 0.029 0.000 {built-in method builtins.isinstance} + 5561 0.023 0.000 0.027 0.000 game2.py:64(makeHash) + 84384 0.022 0.000 0.022 0.000 {method 'update' of 'dict' objects} + 277 0.019 0.000 3.569 0.013 game2.py:236(getNeighbors) + 1 0.016 0.016 3.651 3.651 game2.py:78(A_Star) + 23100 0.015 0.000 0.020 0.000 Board.py:71(distance) + 84384 0.012 0.000 0.012 0.000 {built-in method builtins.issubclass} + 66 0.012 0.000 0.021 0.000 {built-in method _heapq.heapify} + 84384 0.012 0.000 0.012 0.000 {built-in method __new__ of type object at 0x9e3d20} + 84384 0.011 0.000 0.011 0.000 {method 'items' of 'dict' objects} + 57199 0.011 0.000 0.011 0.000 Board.py:37(__lt__) + 1172 0.009 0.000 0.029 0.000 game2.py:207(heuristic) + 5854 0.006 0.000 0.006 0.000 Board.py:64(move) + 277 0.005 0.000 0.005 0.000 Board.py:41(getMoves) + 69300 0.005 0.000 0.005 0.000 {built-in method builtins.abs} + 5561 0.002 0.000 0.002 0.000 {method 'sort' of 'list' objects} + 1 0.002 0.002 3.653 3.653 game2.py:22(main) + 1105 0.001 0.000 0.001 0.000 {built-in method _heapq.heappush} + 5562 0.001 0.000 0.001 0.000 {built-in method builtins.len} + 278 0.001 0.000 0.002 0.000 {built-in method _heapq.heappop} + 278 0.000 0.000 0.000 0.000 game2.py:218(checkGoal) + 70 0.000 0.000 0.000 0.000 {method 'remove' of 'list' objects} + 1 0.000 0.000 0.000 0.000 {built-in method io.open} + 1 0.000 0.000 0.000 0.000 game2.py:278(make_bdict) + 1 0.000 0.000 0.000 0.000 game2.py:291(print_board) + 12 0.000 0.000 0.000 0.000 {built-in method builtins.print} + 1 0.000 0.000 0.000 0.000 game2.py:361(<listcomp>) + 1 0.000 0.000 0.000 0.000 game2.py:225(retrace) + 1 0.000 0.000 0.000 0.000 {method 'read' of '_io.TextIOWrapper' objects} + 3 0.000 0.000 0.000 0.000 copyreg.py:96(_slotnames) + 1 0.000 0.000 0.000 0.000 decoder.py:334(decode) + 1 0.000 0.000 0.000 0.000 decoder.py:345(raw_decode) + 1 0.000 0.000 0.000 0.000 {method 'format' of 'str' objects} + 1 0.000 0.000 0.000 0.000 __init__.py:274(load) + 2 0.000 0.000 0.000 0.000 {method 'match' of '_sre.SRE_Pattern' objects} + 1 0.000 0.000 0.000 0.000 __init__.py:302(loads) + 1 0.000 0.000 0.000 0.000 {built-in method _locale.nl_langinfo} + 1 0.000 0.000 0.000 0.000 codecs.py:318(decode) + 10 0.000 0.000 0.000 0.000 {method 'insert' of 'list' objects} + 3 0.000 0.000 0.000 0.000 {method 'get' of 'mappingproxy' objects} + 1 0.000 0.000 0.000 0.000 codecs.py:308(__init__) + 1 0.000 0.000 0.000 0.000 _bootlocale.py:23(getpreferredencoding) + 7 0.000 0.000 0.000 0.000 {method 'center' of 'str' objects} + 1 0.000 0.000 0.000 0.000 {method 'startswith' of 'str' objects} + 1 0.000 0.000 0.000 0.000 {built-in method _codecs.utf_8_decode} + 3 0.000 0.000 0.000 0.000 Piece.py:2(__init__) + 4 0.000 0.000 0.000 0.000 Block.py:2(__init__) + 1 0.000 0.000 0.000 0.000 codecs.py:259(__init__) + 2 0.000 0.000 0.000 0.000 {method 'end' of '_sre.SRE_Match' objects} + 1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects} + + diff --git a/out10 b/out10 new file mode 100644 index 0000000000000000000000000000000000000000..852b5b19d624e8cddcab0496977eadea5b2d10c3 --- /dev/null +++ b/out10 @@ -0,0 +1,104 @@ +# +# .-'-._.-'-._.-'-._.-'-. +# | p | p | p | b | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | b | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | p | | | | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | +# '-._.-'-._.-'-._.-'-._.-' +4-300-31-32-3 +MOVE from (-3, 0) to (-2, 0). +MOVE from (1, -3) to (0, -2). +JUMP from (0, -3) to (0, -1). +JUMP from (0, -2) to (0, 0). +MOVE from (2, -3) to (1, -2). +JUMP from (1, -2) to (-1, 0). +JUMP from (0, -1) to (-2, 1). +MOVE from (-1, 0) to (-1, 1). +JUMP from (-1, 1) to (-1, 3). +JUMP from (-2, 0) to (-2, 2). +JUMP from (-2, 1) to (-2, 3). +MOVE from (1, -1) to (0, 0). +MOVE from (1, -1) to (0, 0). +MOVE from (-2, 2) to (-2, 3). +MOVE from (1, -1) to (0, 0). +MOVE from (1, -1) to (0, 0). +JUMP from (1, 2) to (3, 0). +MOVE from (1, -1) to (0, 0). +MOVE from (1, -1) to (0, 0). +MOVE from (1, -1) to (0, 0). +JUMP from (1, 2) to (3, 0). +MOVE from (1, -1) to (0, 0). +MOVE from (0, 0) to (-1, 1). +JUMP from (-1, 1) to (-1, 3). +MOVE from (-1, 3) to (0, 3). +MOVE from (0, 3) to (1, 2). +JUMP from (1, 2) to (3, 0). +EXIT from (3, 0). +MOVE from (2, 1) to (3, 0). +EXIT from (3, 0). + 9235593 function calls in 113.392 seconds + + Ordered by: internal time + + ncalls tottime percall cumtime percall filename:lineno(function) + 144971 66.942 0.000 66.942 0.000 {built-in method _pickle.loads} + 144971 35.750 0.000 35.750 0.000 {built-in method _pickle.dumps} + 1 4.051 4.051 113.242 113.242 game2.py:79(A_Star) + 449312 2.093 0.000 2.491 0.000 game2.py:65(makeHash) + 22035 0.937 0.000 106.289 0.005 game2.py:237(getNeighbors) + 2263762 0.563 0.000 0.563 0.000 Board.py:37(__lt__) + 22035 0.522 0.000 0.546 0.000 Board.py:41(getMoves) + 564610 0.497 0.000 0.497 0.000 Board.py:64(move) + 545 0.492 0.001 0.937 0.002 {built-in method _heapq.heapify} + 613593 0.422 0.000 0.543 0.000 Board.py:71(distance) + 22584 0.255 0.000 0.798 0.000 game2.py:208(heuristic) + 449312 0.202 0.000 0.202 0.000 {method 'sort' of 'list' objects} + 2156482 0.176 0.000 0.176 0.000 {method 'append' of 'list' objects} + 1 0.149 0.149 113.392 113.392 game2.py:23(main) + 1840779 0.121 0.000 0.121 0.000 {built-in method builtins.abs} + 22036 0.100 0.000 0.206 0.000 {built-in method _heapq.heappop} + 449313 0.065 0.000 0.065 0.000 {built-in method builtins.len} + 22038 0.029 0.000 0.041 0.000 {built-in method _heapq.heappush} + 22130 0.014 0.000 0.014 0.000 {built-in method builtins.isinstance} + 22036 0.008 0.000 0.008 0.000 game2.py:219(checkGoal) + 2925 0.002 0.000 0.002 0.000 {method 'remove' of 'list' objects} + 32 0.000 0.000 0.000 0.000 {built-in method builtins.print} + 1 0.000 0.000 0.000 0.000 game2.py:294(print_board) + 1 0.000 0.000 0.000 0.000 {built-in method io.open} + 1 0.000 0.000 0.000 0.000 game2.py:281(make_bdict) + 30 0.000 0.000 0.000 0.000 {method 'insert' of 'list' objects} + 1 0.000 0.000 0.000 0.000 game2.py:364(<listcomp>) + 1 0.000 0.000 0.000 0.000 decoder.py:345(raw_decode) + 1 0.000 0.000 0.000 0.000 game2.py:226(retrace) + 1 0.000 0.000 0.000 0.000 {method 'read' of '_io.TextIOWrapper' objects} + 3 0.000 0.000 0.000 0.000 copyreg.py:96(_slotnames) + 1 0.000 0.000 0.000 0.000 __init__.py:274(load) + 1 0.000 0.000 0.000 0.000 decoder.py:334(decode) + 1 0.000 0.000 0.000 0.000 {method 'format' of 'str' objects} + 10 0.000 0.000 0.000 0.000 Block.py:2(__init__) + 1 0.000 0.000 0.000 0.000 __init__.py:302(loads) + 1 0.000 0.000 0.000 0.000 codecs.py:318(decode) + 1 0.000 0.000 0.000 0.000 _bootlocale.py:23(getpreferredencoding) + 14 0.000 0.000 0.000 0.000 {method 'center' of 'str' objects} + 3 0.000 0.000 0.000 0.000 {built-in method builtins.hasattr} + 2 0.000 0.000 0.000 0.000 {method 'match' of '_sre.SRE_Pattern' objects} + 1 0.000 0.000 0.000 0.000 {built-in method _locale.nl_langinfo} + 3 0.000 0.000 0.000 0.000 {method 'get' of 'mappingproxy' objects} + 1 0.000 0.000 0.000 0.000 codecs.py:308(__init__) + 1 0.000 0.000 0.000 0.000 {method 'startswith' of 'str' objects} + 2 0.000 0.000 0.000 0.000 {method 'end' of '_sre.SRE_Match' objects} + 1 0.000 0.000 0.000 0.000 {built-in method _codecs.utf_8_decode} + 1 0.000 0.000 0.000 0.000 codecs.py:259(__init__) + 4 0.000 0.000 0.000 0.000 Piece.py:2(__init__) + 1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects} + + diff --git a/out4 b/out4 index f95cf7f6c6f4ef66e1f77fba55033f851d97ce51..b080c8d12a745da6f6c6d3c6e71daddeac0f79c2 100644 --- a/out4 +++ b/out4 @@ -14,89 +14,92 @@ # '-._.-'-._.-'-._.-'-._.-'-._.-' # | | | | | # '-._.-'-._.-'-._.-'-._.-' +4-21-300-100 +MOVE from (0, -1) to (1, -2). +JUMP from (0, 1) to (0, -1). MOVE from (-3, 0) to (-2, 0). MOVE from (-2, 0) to (-1, -1). -JUMP from (-1, -1) to (1, -1). -JUMP from (-2, 1) to (0, 1). -JUMP from (0, -1) to (2, -1). -JUMP from (0, 1) to (2, 1). -JUMP from (0, 0) to (2, -2). +MOVE from (2, -2) to (1, -2). +MOVE from (0, 0) to (0, -1). +JUMP from (2, -1) to (2, -3). JUMP from (1, -1) to (3, -3). +JUMP from (2, -1) to (2, -3). +JUMP from (1, -2) to (3, -2). +JUMP from (2, -1) to (2, -3). +MOVE from (2, -3) to (3, -3). EXIT from (3, -3). -MOVE from (2, 1) to (3, 0). -EXIT from (3, 0). -MOVE from (2, -1) to (3, -2). -EXIT from (3, -2). MOVE from (2, -2) to (3, -3). EXIT from (3, -3). - 568057445 function calls (483975328 primitive calls) in 241.139 seconds + 438377765 function calls (370325947 primitive calls) in 168.217 seconds Ordered by: internal time ncalls tottime percall cumtime percall filename:lineno(function) -71237512/79022 82.996 0.000 213.082 0.003 copy.py:132(deepcopy) -145111869 20.880 0.000 20.880 0.000 {method 'get' of 'dict' objects} -5273690/1582107 16.499 0.000 190.758 0.000 copy.py:210(_deepcopy_list) -4695044/79022 15.684 0.000 212.355 0.003 copy.py:268(_reconstruct) - 5026161 12.114 0.000 30.281 0.000 copy.py:219(_deepcopy_tuple) - 1509 11.717 0.008 22.342 0.015 {built-in method _heapq.heapify} - 43876398 10.721 0.000 10.721 0.000 Board.py:37(__lt__) -4695044/79022 10.654 0.000 211.468 0.003 copy.py:236(_deepcopy_dict) -105670251 10.594 0.000 10.594 0.000 {built-in method builtins.id} - 14663778 7.589 0.000 10.837 0.000 copy.py:252(_keep_alive) - 47712449 5.137 0.000 5.137 0.000 {method 'append' of 'list' objects} - 49489374 4.713 0.000 4.713 0.000 copy.py:190(_deepcopy_atomic) - 4695044 4.655 0.000 4.655 0.000 {method '__reduce_ex__' of 'object' objects} - 9390088 4.175 0.000 4.175 0.000 {built-in method builtins.getattr} - 5026161 3.711 0.000 17.685 0.000 copy.py:220(<listcomp>) - 4695047 3.074 0.000 3.074 0.000 {built-in method builtins.hasattr} - 9390088 2.572 0.000 9.921 0.000 copy.py:273(<genexpr>) - 4695044 2.319 0.000 3.128 0.000 copyreg.py:87(__newobj__) - 9397928 1.886 0.000 1.886 0.000 {built-in method builtins.isinstance} - 7745 1.809 0.000 215.417 0.028 game2.py:206(getNeighbors) - 1 1.714 1.714 241.036 241.036 game2.py:58(A_Star) - 4695044 1.467 0.000 1.467 0.000 {method 'update' of 'dict' objects} - 4695044 0.810 0.000 0.810 0.000 {built-in method __new__ of type object at 0x9e3d20} - 4695044 0.804 0.000 0.804 0.000 {built-in method builtins.issubclass} - 4695044 0.778 0.000 0.778 0.000 {method 'items' of 'dict' objects} - 1010061 0.714 0.000 0.922 0.000 Board.py:71(distance) - 37241 0.425 0.000 1.346 0.000 game2.py:177(heuristic) - 201026 0.268 0.000 0.268 0.000 Board.py:64(move) - 3030183 0.207 0.000 0.207 0.000 {built-in method builtins.abs} - 7745 0.202 0.000 0.214 0.000 Board.py:41(getMoves) - 1 0.103 0.103 241.139 241.139 game2.py:16(main) - 7746 0.056 0.000 0.122 0.000 {built-in method _heapq.heappop} - 35731 0.047 0.000 0.076 0.000 {built-in method _heapq.heappush} - 187282 0.042 0.000 0.042 0.000 {built-in method builtins.len} - 7746 0.004 0.000 0.004 0.000 game2.py:188(checkGoal) - 2206 0.001 0.000 0.001 0.000 {method 'remove' of 'list' objects} +57661115/65260 62.393 0.000 157.650 0.002 copy.py:132(deepcopy) +117459285 15.855 0.000 15.855 0.000 {method 'get' of 'dict' objects} +4274110/1282233 12.277 0.000 141.112 0.000 copy.py:210(_deepcopy_list) +3797303/65260 10.903 0.000 157.089 0.002 copy.py:268(_reconstruct) + 4065160 8.476 0.000 22.083 0.000 copy.py:219(_deepcopy_tuple) + 85528967 7.871 0.000 7.871 0.000 {built-in method builtins.id} +3797303/65260 7.815 0.000 156.424 0.002 copy.py:236(_deepcopy_dict) + 11868716 5.710 0.000 8.102 0.000 copy.py:252(_keep_alive) + 39270749 3.955 0.000 3.955 0.000 {method 'append' of 'list' objects} + 3797303 3.556 0.000 3.556 0.000 {method '__reduce_ex__' of 'object' objects} + 40066991 3.541 0.000 3.541 0.000 copy.py:190(_deepcopy_atomic) + 1284 3.493 0.003 6.576 0.005 {built-in method _heapq.heapify} + 14315544 3.143 0.000 3.143 0.000 Board.py:37(__lt__) + 7594606 3.128 0.000 3.128 0.000 {built-in method builtins.getattr} + 4065160 2.730 0.000 13.240 0.000 copy.py:220(<listcomp>) + 3797306 2.058 0.000 2.058 0.000 {built-in method builtins.hasattr} + 7594606 1.901 0.000 7.357 0.000 copy.py:273(<genexpr>) + 3797303 1.506 0.000 2.039 0.000 copyreg.py:87(__newobj__) + 7602203 1.372 0.000 1.372 0.000 {built-in method builtins.isinstance} + 3797303 1.009 0.000 1.009 0.000 {method 'update' of 'dict' objects} + 1 0.901 0.901 168.166 168.166 game2.py:78(A_Star) + 168094 0.881 0.000 1.059 0.000 game2.py:64(makeHash) + 7502 0.780 0.000 159.464 0.021 game2.py:236(getNeighbors) + 3797303 0.580 0.000 0.580 0.000 {built-in method builtins.issubclass} + 3797303 0.558 0.000 0.558 0.000 {method 'items' of 'dict' objects} + 3797303 0.534 0.000 0.534 0.000 {built-in method __new__ of type object at 0x9e3d20} + 517188 0.359 0.000 0.466 0.000 Board.py:71(distance) + 19433 0.210 0.000 0.676 0.000 game2.py:207(heuristic) + 190662 0.202 0.000 0.202 0.000 Board.py:64(move) + 7502 0.168 0.000 0.178 0.000 Board.py:41(getMoves) + 1551564 0.107 0.000 0.107 0.000 {built-in method builtins.abs} + 168094 0.094 0.000 0.094 0.000 {method 'sort' of 'list' objects} + 1 0.051 0.051 168.217 168.217 game2.py:22(main) + 7503 0.043 0.000 0.090 0.000 {built-in method _heapq.heappop} + 168095 0.029 0.000 0.029 0.000 {built-in method builtins.len} + 18148 0.023 0.000 0.036 0.000 {built-in method _heapq.heappush} + 7503 0.003 0.000 0.003 0.000 game2.py:218(checkGoal) + 2172 0.001 0.000 0.001 0.000 {method 'remove' of 'list' objects} + 1 0.000 0.000 0.000 0.000 game2.py:291(print_board) 1 0.000 0.000 0.000 0.000 {built-in method io.open} - 1 0.000 0.000 0.000 0.000 game2.py:258(print_board) - 16 0.000 0.000 0.000 0.000 {built-in method builtins.print} - 1 0.000 0.000 0.000 0.000 game2.py:195(retrace) - 1 0.000 0.000 0.000 0.000 game2.py:245(make_bdict) - 1 0.000 0.000 0.000 0.000 game2.py:328(<listcomp>) - 1 0.000 0.000 0.000 0.000 decoder.py:345(raw_decode) - 15 0.000 0.000 0.000 0.000 {method 'insert' of 'list' objects} + 1 0.000 0.000 0.000 0.000 game2.py:278(make_bdict) + 17 0.000 0.000 0.000 0.000 {built-in method builtins.print} 1 0.000 0.000 0.000 0.000 {method 'read' of '_io.TextIOWrapper' objects} + 1 0.000 0.000 0.000 0.000 game2.py:361(<listcomp>) + 1 0.000 0.000 0.000 0.000 game2.py:225(retrace) 3 0.000 0.000 0.000 0.000 copyreg.py:96(_slotnames) - 1 0.000 0.000 0.000 0.000 __init__.py:274(load) + 1 0.000 0.000 0.000 0.000 decoder.py:345(raw_decode) + 1 0.000 0.000 0.000 0.000 decoder.py:334(decode) 1 0.000 0.000 0.000 0.000 {method 'format' of 'str' objects} 2 0.000 0.000 0.000 0.000 {method 'match' of '_sre.SRE_Pattern' objects} - 1 0.000 0.000 0.000 0.000 __init__.py:302(loads) - 1 0.000 0.000 0.000 0.000 decoder.py:334(decode) + 1 0.000 0.000 0.000 0.000 __init__.py:274(load) + 15 0.000 0.000 0.000 0.000 {method 'insert' of 'list' objects} 1 0.000 0.000 0.000 0.000 codecs.py:318(decode) + 1 0.000 0.000 0.000 0.000 __init__.py:302(loads) + 1 0.000 0.000 0.000 0.000 _bootlocale.py:23(getpreferredencoding) 8 0.000 0.000 0.000 0.000 {method 'center' of 'str' objects} 1 0.000 0.000 0.000 0.000 {built-in method _locale.nl_langinfo} 3 0.000 0.000 0.000 0.000 {method 'get' of 'mappingproxy' objects} - 4 0.000 0.000 0.000 0.000 Piece.py:2(__init__) - 4 0.000 0.000 0.000 0.000 Block.py:2(__init__) 1 0.000 0.000 0.000 0.000 codecs.py:308(__init__) - 1 0.000 0.000 0.000 0.000 _bootlocale.py:23(getpreferredencoding) - 2 0.000 0.000 0.000 0.000 {method 'end' of '_sre.SRE_Match' objects} - 1 0.000 0.000 0.000 0.000 {built-in method _codecs.utf_8_decode} 1 0.000 0.000 0.000 0.000 {method 'startswith' of 'str' objects} - 1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects} + 1 0.000 0.000 0.000 0.000 {built-in method _codecs.utf_8_decode} + 4 0.000 0.000 0.000 0.000 Piece.py:2(__init__) 1 0.000 0.000 0.000 0.000 codecs.py:259(__init__) + 2 0.000 0.000 0.000 0.000 {method 'end' of '_sre.SRE_Match' objects} + 4 0.000 0.000 0.000 0.000 Block.py:2(__init__) + 1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects} diff --git a/out5 b/out5 new file mode 100644 index 0000000000000000000000000000000000000000..c0262db52914bb6be6659682912cfa616b67de5b --- /dev/null +++ b/out5 @@ -0,0 +1,89 @@ +# +# .-'-._.-'-._.-'-._.-'-. +# | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | p | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | p | | b | p | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | p | b | | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | +# '-._.-'-._.-'-._.-'-._.-' +4-21-300-100 +MOVE from (0, -1) to (1, -2). +JUMP from (0, 1) to (0, -1). +MOVE from (-3, 0) to (-2, 0). +MOVE from (-2, 0) to (-1, -1). +MOVE from (2, -2) to (1, -2). +MOVE from (0, 0) to (0, -1). +JUMP from (2, -1) to (2, -3). +JUMP from (1, -1) to (3, -3). +JUMP from (2, -1) to (2, -3). +JUMP from (1, -2) to (3, -2). +JUMP from (2, -1) to (2, -3). +MOVE from (2, -3) to (3, -3). +EXIT from (3, -3). +MOVE from (2, -2) to (3, -3). +EXIT from (3, -3). + 18074063 function calls in 25.926 seconds + + Ordered by: internal time + + ncalls tottime percall cumtime percall filename:lineno(function) + 65260 9.595 0.000 9.595 0.000 {built-in method _pickle.loads} + 65260 6.442 0.000 6.442 0.000 {built-in method _pickle.dumps} + 1284 3.537 0.003 6.683 0.005 {built-in method _heapq.heapify} + 14315544 3.187 0.000 3.187 0.000 Board.py:37(__lt__) + 168094 0.816 0.000 0.978 0.000 game2.py:65(makeHash) + 1 0.754 0.754 25.862 25.862 game2.py:79(A_Star) + 517188 0.341 0.000 0.442 0.000 Board.py:71(distance) + 7502 0.331 0.000 17.274 0.002 game2.py:237(getNeighbors) + 19433 0.197 0.000 0.639 0.000 game2.py:208(heuristic) + 190662 0.165 0.000 0.165 0.000 Board.py:64(move) + 7502 0.157 0.000 0.166 0.000 Board.py:41(getMoves) + 1551564 0.101 0.000 0.101 0.000 {built-in method builtins.abs} + 785576 0.081 0.000 0.081 0.000 {method 'append' of 'list' objects} + 168094 0.074 0.000 0.074 0.000 {method 'sort' of 'list' objects} + 1 0.064 0.064 25.926 25.926 game2.py:23(main) + 7503 0.033 0.000 0.064 0.000 {built-in method _heapq.heappop} + 168095 0.023 0.000 0.023 0.000 {built-in method builtins.len} + 18148 0.019 0.000 0.030 0.000 {built-in method _heapq.heappush} + 7597 0.004 0.000 0.004 0.000 {built-in method builtins.isinstance} + 7503 0.003 0.000 0.003 0.000 game2.py:219(checkGoal) + 2172 0.001 0.000 0.001 0.000 {method 'remove' of 'list' objects} + 1 0.000 0.000 0.000 0.000 {built-in method io.open} + 1 0.000 0.000 0.000 0.000 game2.py:294(print_board) + 1 0.000 0.000 0.000 0.000 game2.py:281(make_bdict) + 17 0.000 0.000 0.000 0.000 {built-in method builtins.print} + 1 0.000 0.000 0.000 0.000 game2.py:226(retrace) + 1 0.000 0.000 0.000 0.000 game2.py:364(<listcomp>) + 3 0.000 0.000 0.000 0.000 copyreg.py:96(_slotnames) + 1 0.000 0.000 0.000 0.000 {method 'read' of '_io.TextIOWrapper' objects} + 1 0.000 0.000 0.000 0.000 decoder.py:334(decode) + 1 0.000 0.000 0.000 0.000 decoder.py:345(raw_decode) + 1 0.000 0.000 0.000 0.000 __init__.py:274(load) + 1 0.000 0.000 0.000 0.000 {method 'format' of 'str' objects} + 1 0.000 0.000 0.000 0.000 __init__.py:302(loads) + 3 0.000 0.000 0.000 0.000 {built-in method builtins.hasattr} + 1 0.000 0.000 0.000 0.000 codecs.py:318(decode) + 2 0.000 0.000 0.000 0.000 {method 'match' of '_sre.SRE_Pattern' objects} + 1 0.000 0.000 0.000 0.000 {built-in method _locale.nl_langinfo} + 3 0.000 0.000 0.000 0.000 {method 'get' of 'mappingproxy' objects} + 15 0.000 0.000 0.000 0.000 {method 'insert' of 'list' objects} + 1 0.000 0.000 0.000 0.000 codecs.py:308(__init__) + 1 0.000 0.000 0.000 0.000 _bootlocale.py:23(getpreferredencoding) + 8 0.000 0.000 0.000 0.000 {method 'center' of 'str' objects} + 1 0.000 0.000 0.000 0.000 {built-in method _codecs.utf_8_decode} + 4 0.000 0.000 0.000 0.000 Piece.py:2(__init__) + 4 0.000 0.000 0.000 0.000 Block.py:2(__init__) + 1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects} + 1 0.000 0.000 0.000 0.000 codecs.py:259(__init__) + 1 0.000 0.000 0.000 0.000 {method 'startswith' of 'str' objects} + 2 0.000 0.000 0.000 0.000 {method 'end' of '_sre.SRE_Match' objects} + + diff --git a/out6 b/out6 new file mode 100644 index 0000000000000000000000000000000000000000..dcb8912691e2dd68eb2c752e95d89ab900a884ac --- /dev/null +++ b/out6 @@ -0,0 +1,93 @@ +# +# .-'-._.-'-._.-'-._.-'-. +# | | p | p | b | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | b | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | p | +# '-._.-'-._.-'-._.-'-._.-' +3031-32-3 +MOVE from (0, 3) to (1, 2). +MOVE from (1, -3) to (1, -2). +JUMP from (2, -3) to (0, -1). +JUMP from (1, -2) to (-1, 0). +MOVE from (-1, 0) to (-1, 1). +JUMP from (-1, 1) to (-1, 3). +MOVE from (1, -2) to (0, -1). +MOVE from (1, -2) to (0, -1). +JUMP from (1, 2) to (3, 0). +MOVE from (1, -2) to (0, -1). +MOVE from (0, -1) to (0, 0). +MOVE from (0, 0) to (-1, 1). +JUMP from (-1, 1) to (-1, 3). +MOVE from (-1, 3) to (0, 3). +MOVE from (0, 3) to (1, 2). +JUMP from (1, 2) to (3, 0). +EXIT from (3, 0). +MOVE from (2, 1) to (3, 0). +EXIT from (3, 0). + 844265 function calls in 6.940 seconds + + Ordered by: internal time + + ncalls tottime percall cumtime percall filename:lineno(function) + 17558 3.168 0.000 3.168 0.000 {built-in method _pickle.loads} + 17558 2.859 0.000 2.860 0.000 {built-in method _pickle.dumps} + 1 0.282 0.282 6.920 6.920 game2.py:79(A_Star) + 54174 0.208 0.000 0.248 0.000 game2.py:65(makeHash) + 3276 0.105 0.000 6.408 0.002 game2.py:237(getNeighbors) + 3276 0.058 0.000 0.061 0.000 Board.py:41(getMoves) + 66678 0.058 0.000 0.058 0.000 Board.py:64(move) + 70755 0.049 0.000 0.063 0.000 Board.py:71(distance) + 3466 0.032 0.000 0.095 0.000 game2.py:208(heuristic) + 1 0.020 0.020 6.940 6.940 game2.py:23(main) + 54174 0.019 0.000 0.019 0.000 {method 'sort' of 'list' objects} + 206411 0.018 0.000 0.018 0.000 {method 'append' of 'list' objects} + 66668 0.017 0.000 0.017 0.000 Board.py:37(__lt__) + 212265 0.014 0.000 0.014 0.000 {built-in method builtins.abs} + 3277 0.011 0.000 0.020 0.000 {built-in method _heapq.heappop} + 31 0.008 0.000 0.015 0.000 {built-in method _heapq.heapify} + 54175 0.007 0.000 0.007 0.000 {built-in method builtins.len} + 3434 0.004 0.000 0.005 0.000 {built-in method _heapq.heappush} + 3372 0.002 0.000 0.002 0.000 {built-in method builtins.isinstance} + 3277 0.001 0.000 0.001 0.000 game2.py:219(checkGoal) + 340 0.000 0.000 0.000 0.000 {method 'remove' of 'list' objects} + 1 0.000 0.000 0.000 0.000 {built-in method io.open} + 21 0.000 0.000 0.000 0.000 {built-in method builtins.print} + 1 0.000 0.000 0.000 0.000 game2.py:294(print_board) + 1 0.000 0.000 0.000 0.000 game2.py:281(make_bdict) + 1 0.000 0.000 0.000 0.000 game2.py:226(retrace) + 1 0.000 0.000 0.000 0.000 game2.py:364(<listcomp>) + 1 0.000 0.000 0.000 0.000 decoder.py:345(raw_decode) + 1 0.000 0.000 0.000 0.000 {method 'read' of '_io.TextIOWrapper' objects} + 1 0.000 0.000 0.000 0.000 decoder.py:334(decode) + 3 0.000 0.000 0.000 0.000 copyreg.py:96(_slotnames) + 1 0.000 0.000 0.000 0.000 {method 'format' of 'str' objects} + 1 0.000 0.000 0.000 0.000 __init__.py:274(load) + 19 0.000 0.000 0.000 0.000 {method 'insert' of 'list' objects} + 13 0.000 0.000 0.000 0.000 {method 'center' of 'str' objects} + 1 0.000 0.000 0.000 0.000 __init__.py:302(loads) + 1 0.000 0.000 0.000 0.000 codecs.py:318(decode) + 2 0.000 0.000 0.000 0.000 {method 'match' of '_sre.SRE_Pattern' objects} + 1 0.000 0.000 0.000 0.000 _bootlocale.py:23(getpreferredencoding) + 3 0.000 0.000 0.000 0.000 {built-in method builtins.hasattr} + 1 0.000 0.000 0.000 0.000 {built-in method _locale.nl_langinfo} + 3 0.000 0.000 0.000 0.000 {method 'get' of 'mappingproxy' objects} + 1 0.000 0.000 0.000 0.000 codecs.py:308(__init__) + 1 0.000 0.000 0.000 0.000 {built-in method _codecs.utf_8_decode} + 1 0.000 0.000 0.000 0.000 codecs.py:259(__init__) + 1 0.000 0.000 0.000 0.000 {method 'startswith' of 'str' objects} + 2 0.000 0.000 0.000 0.000 {method 'end' of '_sre.SRE_Match' objects} + 3 0.000 0.000 0.000 0.000 Piece.py:2(__init__) + 10 0.000 0.000 0.000 0.000 Block.py:2(__init__) + 1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects} + + diff --git a/out8 b/out8 new file mode 100644 index 0000000000000000000000000000000000000000..48ce15108c645e95accf98c0e75274380109d295 --- /dev/null +++ b/out8 @@ -0,0 +1,111 @@ +# +# .-'-._.-'-._.-'-._.-'-. +# | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | b | b | b | | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | b | b | b | b | | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | b | b | b | b | b | b | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | b | b | b | b | p | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | b | b | b | p | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | p | p | +# '-._.-'-._.-'-._.-'-._.-' +4-13031221 +JUMP from (0, 3) to (-2, 3). +JUMP from (-1, 3) to (-3, 3). +MOVE from (-3, 3) to (-3, 2). +MOVE from (-2, 3) to (-3, 3). +JUMP from (-3, 3) to (-3, 1). +JUMP from (-3, 2) to (-3, 0). +MOVE from (-3, 0) to (-2, -1). +MOVE from (-3, 1) to (-3, 0). +JUMP from (-3, 0) to (-1, -2). +JUMP from (-2, -1) to (0, -3). +MOVE from (0, -3) to (1, -3). +JUMP from (2, 1) to (0, 3). +MOVE from (0, 3) to (-1, 3). +MOVE from (1, 2) to (0, 3). +JUMP from (0, 3) to (-2, 3). +JUMP from (-1, 3) to (-3, 3). +MOVE from (-3, 3) to (-3, 2). +MOVE from (-2, 3) to (-3, 3). +JUMP from (-3, 3) to (-3, 1). +JUMP from (-3, 2) to (-3, 0). +MOVE from (-3, 0) to (-2, -1). +MOVE from (-3, 2) to (-3, 1). +MOVE from (-3, 2) to (-3, 1). +JUMP from (1, -3) to (3, -3). +MOVE from (-3, 2) to (-3, 1). +MOVE from (-3, 1) to (-3, 0). +MOVE from (-3, 0) to (-2, -1). +JUMP from (-2, -1) to (0, -3). +MOVE from (0, -3) to (1, -3). +JUMP from (1, -3) to (3, -3). +EXIT from (3, -3). +MOVE from (-1, -2) to (0, -3). +MOVE from (0, -3) to (1, -3). +JUMP from (1, -3) to (3, -3). +EXIT from (3, -3). +MOVE from (2, -3) to (3, -3). +EXIT from (3, -3). + 455753 function calls in 8.351 seconds + + Ordered by: internal time + + ncalls tottime percall cumtime percall filename:lineno(function) + 5794 4.033 0.001 4.033 0.001 {built-in method _pickle.loads} + 5794 3.638 0.001 3.638 0.001 {built-in method _pickle.dumps} + 1 0.338 0.338 8.337 8.337 game2.py:79(A_Star) + 18172 0.090 0.000 0.107 0.000 game2.py:65(makeHash) + 2115 0.047 0.000 7.847 0.004 game2.py:237(getNeighbors) + 2115 0.047 0.000 0.048 0.000 Board.py:41(getMoves) + 56028 0.039 0.000 0.050 0.000 Board.py:71(distance) + 2257 0.028 0.000 0.078 0.000 game2.py:208(heuristic) + 20524 0.020 0.000 0.020 0.000 Board.py:64(move) + 1 0.014 0.014 8.351 8.351 game2.py:23(main) + 168084 0.011 0.000 0.011 0.000 {built-in method builtins.abs} + 45918 0.010 0.000 0.010 0.000 Board.py:37(__lt__) + 18172 0.009 0.000 0.009 0.000 {method 'sort' of 'list' objects} + 83294 0.007 0.000 0.007 0.000 {method 'append' of 'list' objects} + 141 0.007 0.000 0.012 0.000 {built-in method _heapq.heapify} + 2116 0.006 0.000 0.010 0.000 {built-in method _heapq.heappop} + 2115 0.003 0.000 0.004 0.000 {built-in method _heapq.heappush} + 18173 0.003 0.000 0.003 0.000 {built-in method builtins.len} + 2210 0.001 0.000 0.001 0.000 {built-in method builtins.isinstance} + 2116 0.001 0.000 0.001 0.000 game2.py:219(checkGoal) + 457 0.000 0.000 0.000 0.000 {method 'remove' of 'list' objects} + 39 0.000 0.000 0.000 0.000 {built-in method builtins.print} + 1 0.000 0.000 0.000 0.000 game2.py:294(print_board) + 1 0.000 0.000 0.000 0.000 {built-in method io.open} + 1 0.000 0.000 0.000 0.000 game2.py:281(make_bdict) + 1 0.000 0.000 0.000 0.000 decoder.py:345(raw_decode) + 1 0.000 0.000 0.000 0.000 game2.py:226(retrace) + 1 0.000 0.000 0.000 0.000 __init__.py:274(load) + 1 0.000 0.000 0.000 0.000 game2.py:364(<listcomp>) + 37 0.000 0.000 0.000 0.000 {method 'insert' of 'list' objects} + 1 0.000 0.000 0.000 0.000 {method 'read' of '_io.TextIOWrapper' objects} + 1 0.000 0.000 0.000 0.000 decoder.py:334(decode) + 1 0.000 0.000 0.000 0.000 {method 'format' of 'str' objects} + 20 0.000 0.000 0.000 0.000 Block.py:2(__init__) + 3 0.000 0.000 0.000 0.000 copyreg.py:96(_slotnames) + 1 0.000 0.000 0.000 0.000 __init__.py:302(loads) + 24 0.000 0.000 0.000 0.000 {method 'center' of 'str' objects} + 3 0.000 0.000 0.000 0.000 {built-in method builtins.hasattr} + 2 0.000 0.000 0.000 0.000 {method 'match' of '_sre.SRE_Pattern' objects} + 1 0.000 0.000 0.000 0.000 codecs.py:318(decode) + 1 0.000 0.000 0.000 0.000 _bootlocale.py:23(getpreferredencoding) + 1 0.000 0.000 0.000 0.000 {built-in method _locale.nl_langinfo} + 4 0.000 0.000 0.000 0.000 Piece.py:2(__init__) + 3 0.000 0.000 0.000 0.000 {method 'get' of 'mappingproxy' objects} + 1 0.000 0.000 0.000 0.000 codecs.py:308(__init__) + 2 0.000 0.000 0.000 0.000 {method 'end' of '_sre.SRE_Match' objects} + 1 0.000 0.000 0.000 0.000 {built-in method _codecs.utf_8_decode} + 1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects} + 1 0.000 0.000 0.000 0.000 codecs.py:259(__init__) + 1 0.000 0.000 0.000 0.000 {method 'startswith' of 'str' objects} + + diff --git a/out9 b/out9 new file mode 100644 index 0000000000000000000000000000000000000000..11e6c35f1eb0091bd77fcebc7f9b378b7ac4c896 --- /dev/null +++ b/out9 @@ -0,0 +1,91 @@ +# +# .-'-._.-'-._.-'-._.-'-. +# | p | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | p | | | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | p | | | p | +# '-._.-'-._.-'-._.-'-._.-' +4-30-330-303 +MOVE from (-3, 3) to (-2, 3). +MOVE from (-2, 3) to (-1, 3). +MOVE from (0, 3) to (0, 2). +MOVE from (0, 3) to (0, 2). +MOVE from (-3, 0) to (-2, -1). +MOVE from (-2, -1) to (-1, -2). +MOVE from (0, -3) to (0, -2). +MOVE from (1, 2) to (1, 1). +JUMP from (0, 2) to (2, 0). +JUMP from (1, 1) to (3, -1). +MOVE from (2, 1) to (2, 0). +JUMP from (0, -2) to (2, -2). +JUMP from (1, -2) to (3, -2). +EXIT from (3, -2). +MOVE from (2, 0) to (3, 0). +EXIT from (3, 0). +MOVE from (2, -2) to (3, -3). +EXIT from (3, -3). + 17685363 function calls in 42.611 seconds + + Ordered by: internal time + + ncalls tottime percall cumtime percall filename:lineno(function) + 156974 19.057 0.000 19.057 0.000 {built-in method _pickle.loads} + 156974 12.084 0.000 12.084 0.000 {built-in method _pickle.dumps} + 9467319 2.282 0.000 2.282 0.000 Board.py:37(__lt__) + 484 2.255 0.005 4.424 0.009 {built-in method _heapq.heapify} + 421170 1.900 0.000 2.254 0.000 game2.py:65(makeHash) + 1 1.538 1.538 42.506 42.506 game2.py:79(A_Star) + 18728 0.791 0.000 34.116 0.002 game2.py:237(getNeighbors) + 994986 0.684 0.000 0.879 0.000 Board.py:71(distance) + 490934 0.420 0.000 0.420 0.000 Board.py:64(move) + 36946 0.384 0.000 1.263 0.000 game2.py:208(heuristic) + 18728 0.376 0.000 0.398 0.000 Board.py:41(getMoves) + 2984958 0.195 0.000 0.195 0.000 {built-in method builtins.abs} + 421170 0.177 0.000 0.177 0.000 {method 'sort' of 'list' objects} + 1997816 0.162 0.000 0.162 0.000 {method 'append' of 'list' objects} + 1 0.105 0.105 42.611 42.611 game2.py:23(main) + 18729 0.088 0.000 0.179 0.000 {built-in method _heapq.heappop} + 421171 0.055 0.000 0.055 0.000 {built-in method builtins.len} + 36461 0.039 0.000 0.062 0.000 {built-in method _heapq.heappush} + 18823 0.010 0.000 0.010 0.000 {built-in method builtins.isinstance} + 18729 0.006 0.000 0.006 0.000 game2.py:219(checkGoal) + 4186 0.002 0.000 0.002 0.000 {method 'remove' of 'list' objects} + 1 0.000 0.000 0.000 0.000 {built-in method io.open} + 20 0.000 0.000 0.000 0.000 {built-in method builtins.print} + 1 0.000 0.000 0.000 0.000 game2.py:294(print_board) + 1 0.000 0.000 0.000 0.000 game2.py:281(make_bdict) + 1 0.000 0.000 0.000 0.000 game2.py:364(<listcomp>) + 1 0.000 0.000 0.000 0.000 {method 'read' of '_io.TextIOWrapper' objects} + 1 0.000 0.000 0.000 0.000 game2.py:226(retrace) + 1 0.000 0.000 0.000 0.000 decoder.py:345(raw_decode) + 1 0.000 0.000 0.000 0.000 __init__.py:274(load) + 2 0.000 0.000 0.000 0.000 copyreg.py:96(_slotnames) + 1 0.000 0.000 0.000 0.000 {method 'format' of 'str' objects} + 1 0.000 0.000 0.000 0.000 decoder.py:334(decode) + 18 0.000 0.000 0.000 0.000 {method 'insert' of 'list' objects} + 4 0.000 0.000 0.000 0.000 {method 'center' of 'str' objects} + 2 0.000 0.000 0.000 0.000 {method 'match' of '_sre.SRE_Pattern' objects} + 1 0.000 0.000 0.000 0.000 {built-in method _locale.nl_langinfo} + 1 0.000 0.000 0.000 0.000 __init__.py:302(loads) + 1 0.000 0.000 0.000 0.000 codecs.py:318(decode) + 4 0.000 0.000 0.000 0.000 Piece.py:2(__init__) + 1 0.000 0.000 0.000 0.000 codecs.py:308(__init__) + 1 0.000 0.000 0.000 0.000 _bootlocale.py:23(getpreferredencoding) + 2 0.000 0.000 0.000 0.000 {built-in method builtins.hasattr} + 2 0.000 0.000 0.000 0.000 {method 'end' of '_sre.SRE_Match' objects} + 1 0.000 0.000 0.000 0.000 {built-in method _codecs.utf_8_decode} + 2 0.000 0.000 0.000 0.000 {method 'get' of 'mappingproxy' objects} + 1 0.000 0.000 0.000 0.000 {method 'startswith' of 'str' objects} + 1 0.000 0.000 0.000 0.000 codecs.py:259(__init__) + 1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects} + + diff --git a/outnew b/outnew new file mode 100644 index 0000000000000000000000000000000000000000..633b7c4d24b0fb7f66dceaad2a0d1c4c96f60257 --- /dev/null +++ b/outnew @@ -0,0 +1,280 @@ +# +# .-'-._.-'-._.-'-._.-'-. +# | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | p | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | b | p | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | p | b | | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | +# '-._.-'-._.-'-._.-'-._.-' +3-210-100 +# +# .-'-._.-'-._.-'-._.-'-. +# | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | p | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | b | p | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | p | b | | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | +# '-._.-'-._.-'-._.-'-._.-' +# +# .-'-._.-'-._.-'-._.-'-. +# | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | p | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | b | p | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | b | p | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | +# '-._.-'-._.-'-._.-'-._.-' +JUMP from (-2, 1) to (0, 1). +# +# .-'-._.-'-._.-'-._.-'-. +# | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | p | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | b | p | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | b | | b | p | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | +# '-._.-'-._.-'-._.-'-._.-' +JUMP from (0, 1) to (2, 1). +# +# .-'-._.-'-._.-'-._.-'-. +# | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | p | p | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | b | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | b | | b | p | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | +# '-._.-'-._.-'-._.-'-._.-' +MOVE from (0, 0) to (1, -1). +# +# .-'-._.-'-._.-'-._.-'-. +# | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | p | p | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | b | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | b | | b | p | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | +# '-._.-'-._.-'-._.-'-._.-' +JUMP from (0, -1) to (2, -1). +# +# .-'-._.-'-._.-'-._.-'-. +# | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | p | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | p | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | b | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | b | | b | p | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | +# '-._.-'-._.-'-._.-'-._.-' +MOVE from (2, -1) to (3, -2). +# +# .-'-._.-'-._.-'-._.-'-. +# | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | p | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | b | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | b | | b | p | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | +# '-._.-'-._.-'-._.-'-._.-' +EXIT from (3, -2). +# +# .-'-._.-'-._.-'-._.-'-. +# | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | p | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | b | | | | p | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | b | | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | +# '-._.-'-._.-'-._.-'-._.-' +MOVE from (2, 1) to (3, 0). +# +# .-'-._.-'-._.-'-._.-'-. +# | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | p | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | b | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | b | | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | +# '-._.-'-._.-'-._.-'-._.-' +EXIT from (3, 0). +# +# .-'-._.-'-._.-'-._.-'-. +# | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | p | | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | b | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | b | | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | +# '-._.-'-._.-'-._.-'-._.-' +MOVE from (1, -1) to (2, -2). +# +# .-'-._.-'-._.-'-._.-'-. +# | | | | p | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | b | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | b | | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | +# '-._.-'-._.-'-._.-'-._.-' +MOVE from (2, -2) to (3, -3). +# +# .-'-._.-'-._.-'-._.-'-. +# | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | b | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | b | | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | +# '-._.-'-._.-'-._.-'-._.-' +EXIT from (3, -3). + 136349 function calls in 0.084 seconds + + Ordered by: internal time + + ncalls tottime percall cumtime percall filename:lineno(function) + 30074 0.022 0.000 0.028 0.000 Board.py:71(distance) + 459 0.016 0.000 0.016 0.000 {built-in method _pickle.dumps} + 459 0.015 0.000 0.015 0.000 {built-in method _pickle.loads} + 4095 0.012 0.000 0.040 0.000 game2.py:241(min_dist) + 90222 0.006 0.000 0.006 0.000 {built-in method builtins.abs} + 1890 0.003 0.000 0.004 0.000 game2.py:254(checkJump) + 315 0.003 0.000 0.047 0.000 game2.py:226(position_value) + 311 0.002 0.000 0.002 0.000 game2.py:65(makeHash) + 1 0.001 0.001 0.083 0.083 game2.py:79(A_Star) + 3738 0.001 0.000 0.001 0.000 game2.py:248(on_board) + 23 0.001 0.000 0.029 0.001 game2.py:282(getNeighbors) + 125 0.000 0.000 0.051 0.000 game2.py:220(heuristic) + 23 0.000 0.000 0.000 0.000 Board.py:41(getMoves) + 286 0.000 0.000 0.000 0.000 Board.py:64(move) + 124 0.000 0.000 0.000 0.000 {built-in method _heapq.heappush} + 1 0.000 0.000 0.084 0.084 game2.py:23(main) + 13 0.000 0.000 0.000 0.000 game2.py:326(make_bdict) + 13 0.000 0.000 0.000 0.000 game2.py:339(print_board) + 1569 0.000 0.000 0.000 0.000 {method 'append' of 'list' objects} + 1270 0.000 0.000 0.000 0.000 {built-in method builtins.isinstance} + 311 0.000 0.000 0.000 0.000 {method 'sort' of 'list' objects} + 480 0.000 0.000 0.000 0.000 Board.py:37(__lt__) + 13 0.000 0.000 0.000 0.000 game2.py:409(<listcomp>) + 25 0.000 0.000 0.000 0.000 {built-in method builtins.print} + 24 0.000 0.000 0.000 0.000 {built-in method _heapq.heappop} + 13 0.000 0.000 0.000 0.000 {method 'format' of 'str' objects} + 312 0.000 0.000 0.000 0.000 {built-in method builtins.len} + 1 0.000 0.000 0.000 0.000 {built-in method io.open} + 80 0.000 0.000 0.000 0.000 {method 'center' of 'str' objects} + 3 0.000 0.000 0.000 0.000 copyreg.py:96(_slotnames) + 1 0.000 0.000 0.000 0.000 decoder.py:345(raw_decode) + 1 0.000 0.000 0.000 0.000 {method 'read' of '_io.TextIOWrapper' objects} + 1 0.000 0.000 0.000 0.000 __init__.py:274(load) + 24 0.000 0.000 0.000 0.000 game2.py:264(checkGoal) + 1 0.000 0.000 0.000 0.000 game2.py:271(retrace) + 10 0.000 0.000 0.000 0.000 {method 'remove' of 'list' objects} + 2 0.000 0.000 0.000 0.000 {method 'match' of '_sre.SRE_Pattern' objects} + 1 0.000 0.000 0.000 0.000 {built-in method _locale.nl_langinfo} + 3 0.000 0.000 0.000 0.000 {method 'get' of 'mappingproxy' objects} + 1 0.000 0.000 0.000 0.000 codecs.py:318(decode) + 3 0.000 0.000 0.000 0.000 {built-in method builtins.hasattr} + 1 0.000 0.000 0.000 0.000 decoder.py:334(decode) + 1 0.000 0.000 0.000 0.000 __init__.py:302(loads) + 11 0.000 0.000 0.000 0.000 {method 'insert' of 'list' objects} + 2 0.000 0.000 0.000 0.000 {method 'end' of '_sre.SRE_Match' objects} + 3 0.000 0.000 0.000 0.000 Piece.py:2(__init__) + 1 0.000 0.000 0.000 0.000 codecs.py:308(__init__) + 1 0.000 0.000 0.000 0.000 _bootlocale.py:23(getpreferredencoding) + 1 0.000 0.000 0.000 0.000 {method 'startswith' of 'str' objects} + 1 0.000 0.000 0.000 0.000 {built-in method _codecs.utf_8_decode} + 4 0.000 0.000 0.000 0.000 Block.py:2(__init__) + 1 0.000 0.000 0.000 0.000 codecs.py:259(__init__) + 1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects} + + diff --git a/outnew10 b/outnew10 new file mode 100644 index 0000000000000000000000000000000000000000..62131c408174e340dcd095b5dc22d120e79ce409 --- /dev/null +++ b/outnew10 @@ -0,0 +1,109 @@ +# +# .-'-._.-'-._.-'-._.-'-. +# | p | p | p | b | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | b | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | p | | | | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | +# '-._.-'-._.-'-._.-'-._.-' +4-300-31-32-3 +MOVE from (0, -3) to (0, -2). +MOVE from (2, -3) to (2, -2). +MOVE from (2, -2) to (1, -1). +JUMP from (1, -3) to (-1, -1). +JUMP from (0, -2) to (-2, 0). +JUMP from (0, -2) to (-2, 0). +MOVE from (2, -2) to (1, -1). +MOVE from (0, -1) to (-1, 0). +JUMP from (2, -2) to (0, 0). +JUMP from (2, -2) to (0, 0). +JUMP from (2, -2) to (0, 0). +JUMP from (2, -2) to (0, 0). +JUMP from (2, -2) to (0, 0). +JUMP from (2, -2) to (0, 0). +JUMP from (2, -2) to (0, 0). +JUMP from (1, 2) to (3, 0). +EXIT from (3, 0). +JUMP from (1, -1) to (-1, 1). +MOVE from (1, -1) to (0, 0). +MOVE from (1, -1) to (0, 0). +MOVE from (1, -1) to (0, 0). +JUMP from (1, 2) to (3, 0). +EXIT from (3, 0). +MOVE from (0, 0) to (-1, 1). +JUMP from (-1, 1) to (-1, 3). +MOVE from (-1, 3) to (0, 3). +MOVE from (0, 3) to (1, 2). +JUMP from (1, 2) to (3, 0). +EXIT from (3, 0). +MOVE from (2, 1) to (3, 0). +EXIT from (3, 0). + 55588767 function calls in 138.217 seconds + + Ordered by: internal time + + ncalls tottime percall cumtime percall filename:lineno(function) + 221664 69.996 0.000 69.996 0.000 {built-in method _pickle.loads} + 221664 36.922 0.000 36.922 0.000 {built-in method _pickle.dumps} + 8378682 5.703 0.000 7.388 0.000 Board.py:71(distance) + 1 5.483 5.483 138.067 138.067 game2.py:79(A_Star) + 3342 4.040 0.001 7.875 0.002 {built-in method _heapq.heapify} + 15035121 3.988 0.000 3.988 0.000 Board.py:37(__lt__) + 1171976 3.105 0.000 10.493 0.000 game2.py:241(min_dist) + 400870 2.256 0.000 2.684 0.000 game2.py:65(makeHash) + 25136046 1.685 0.000 1.685 0.000 {built-in method builtins.abs} + 19030 1.100 0.000 109.724 0.006 game2.py:282(getNeighbors) + 540912 0.831 0.000 1.133 0.000 game2.py:254(checkJump) + 90152 0.791 0.000 12.575 0.000 game2.py:226(position_value) + 19030 0.540 0.000 0.565 0.000 Board.py:41(getMoves) + 500654 0.521 0.000 0.521 0.000 Board.py:64(move) + 1009461 0.302 0.000 0.302 0.000 game2.py:248(on_board) + 400870 0.229 0.000 0.229 0.000 {method 'sort' of 'list' objects} + 1934188 0.179 0.000 0.179 0.000 {method 'append' of 'list' objects} + 1 0.150 0.150 138.217 138.217 game2.py:23(main) + 23972 0.134 0.000 13.618 0.001 game2.py:220(heuristic) + 19031 0.114 0.000 0.242 0.000 {built-in method _heapq.heappop} + 400871 0.069 0.000 0.069 0.000 {built-in method builtins.len} + 20629 0.047 0.000 0.071 0.000 {built-in method _heapq.heappush} + 19125 0.019 0.000 0.019 0.000 {built-in method builtins.isinstance} + 19031 0.011 0.000 0.011 0.000 game2.py:264(checkGoal) + 2320 0.002 0.000 0.002 0.000 {method 'remove' of 'list' objects} + 33 0.000 0.000 0.000 0.000 {built-in method builtins.print} + 1 0.000 0.000 0.000 0.000 game2.py:326(make_bdict) + 1 0.000 0.000 0.000 0.000 {built-in method io.open} + 1 0.000 0.000 0.000 0.000 game2.py:271(retrace) + 1 0.000 0.000 0.000 0.000 game2.py:339(print_board) + 31 0.000 0.000 0.000 0.000 {method 'insert' of 'list' objects} + 1 0.000 0.000 0.000 0.000 decoder.py:345(raw_decode) + 3 0.000 0.000 0.000 0.000 copyreg.py:96(_slotnames) + 1 0.000 0.000 0.000 0.000 game2.py:409(<listcomp>) + 1 0.000 0.000 0.000 0.000 {method 'read' of '_io.TextIOWrapper' objects} + 1 0.000 0.000 0.000 0.000 {method 'format' of 'str' objects} + 1 0.000 0.000 0.000 0.000 decoder.py:334(decode) + 1 0.000 0.000 0.000 0.000 __init__.py:274(load) + 1 0.000 0.000 0.000 0.000 __init__.py:302(loads) + 14 0.000 0.000 0.000 0.000 {method 'center' of 'str' objects} + 2 0.000 0.000 0.000 0.000 {method 'match' of '_sre.SRE_Pattern' objects} + 3 0.000 0.000 0.000 0.000 {built-in method builtins.hasattr} + 1 0.000 0.000 0.000 0.000 {built-in method _locale.nl_langinfo} + 3 0.000 0.000 0.000 0.000 {method 'get' of 'mappingproxy' objects} + 1 0.000 0.000 0.000 0.000 {built-in method _codecs.utf_8_decode} + 10 0.000 0.000 0.000 0.000 Block.py:2(__init__) + 1 0.000 0.000 0.000 0.000 codecs.py:318(decode) + 1 0.000 0.000 0.000 0.000 _bootlocale.py:23(getpreferredencoding) + 2 0.000 0.000 0.000 0.000 {method 'end' of '_sre.SRE_Match' objects} + 1 0.000 0.000 0.000 0.000 codecs.py:259(__init__) + 1 0.000 0.000 0.000 0.000 codecs.py:308(__init__) + 1 0.000 0.000 0.000 0.000 {method 'startswith' of 'str' objects} + 4 0.000 0.000 0.000 0.000 Piece.py:2(__init__) + 1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects} + + diff --git a/outnew10.1 b/outnew10.1 new file mode 100644 index 0000000000000000000000000000000000000000..993f24ba98de544792387e6d038aec102dda717b --- /dev/null +++ b/outnew10.1 @@ -0,0 +1,621 @@ +# +# .-'-._.-'-._.-'-._.-'-. +# | p | p | p | b | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | b | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | p | | | | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | +# '-._.-'-._.-'-._.-'-._.-' +4-300-31-32-3 +# +# .-'-._.-'-._.-'-._.-'-. +# | p | p | p | b | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | b | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | p | | | | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | +# '-._.-'-._.-'-._.-'-._.-' +# +# .-'-._.-'-._.-'-._.-'-. +# | | p | p | b | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | p | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | b | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | p | | | | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | +# '-._.-'-._.-'-._.-'-._.-' +MOVE from (0, -3) to (0, -2). +# +# .-'-._.-'-._.-'-._.-'-. +# | | p | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | p | | p | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | b | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | p | | | | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | +# '-._.-'-._.-'-._.-'-._.-' +MOVE from (2, -3) to (2, -2). +# +# .-'-._.-'-._.-'-._.-'-. +# | | p | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | p | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | p | b | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | p | | | | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | +# '-._.-'-._.-'-._.-'-._.-' +MOVE from (2, -2) to (1, -1). +# +# .-'-._.-'-._.-'-._.-'-. +# | | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | p | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | p | | p | b | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | p | | | | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | +# '-._.-'-._.-'-._.-'-._.-' +JUMP from (1, -3) to (-1, -1). +# +# .-'-._.-'-._.-'-._.-'-. +# | | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | p | | p | b | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | p | p | | | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | +# '-._.-'-._.-'-._.-'-._.-' +JUMP from (0, -2) to (-2, 0). +# +# .-'-._.-'-._.-'-._.-'-. +# | | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | p | | p | b | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | p | p | | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | +# '-._.-'-._.-'-._.-'-._.-' +JUMP from (0, -2) to (-2, 0). +# +# .-'-._.-'-._.-'-._.-'-. +# | | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | p | b | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | p | p | | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | p | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | +# '-._.-'-._.-'-._.-'-._.-' +MOVE from (2, -2) to (1, -1). +# +# .-'-._.-'-._.-'-._.-'-. +# | | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | p | b | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | p | p | | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | p | | +# '-._.-'-._.-'-._.-'-._.-' +MOVE from (0, -1) to (-1, 0). +# +# .-'-._.-'-._.-'-._.-'-. +# | | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | p | b | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | p | p | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | p | | +# '-._.-'-._.-'-._.-'-._.-' +JUMP from (2, -2) to (0, 0). +# +# .-'-._.-'-._.-'-._.-'-. +# | | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | p | b | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | p | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | p | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | p | | +# '-._.-'-._.-'-._.-'-._.-' +JUMP from (2, -2) to (0, 0). +# +# .-'-._.-'-._.-'-._.-'-. +# | | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | p | b | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | p | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | p | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | p | +# '-._.-'-._.-'-._.-'-._.-' +JUMP from (2, -2) to (0, 0). +# +# .-'-._.-'-._.-'-._.-'-. +# | | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | p | b | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | p | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | p | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | b | b | p | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | +# '-._.-'-._.-'-._.-'-._.-' +JUMP from (2, -2) to (0, 0). +# +# .-'-._.-'-._.-'-._.-'-. +# | | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | p | b | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | p | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | b | b | p | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | p | | +# '-._.-'-._.-'-._.-'-._.-' +JUMP from (2, -2) to (0, 0). +# +# .-'-._.-'-._.-'-._.-'-. +# | | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | p | b | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | p | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | b | b | p | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | p | +# '-._.-'-._.-'-._.-'-._.-' +JUMP from (2, -2) to (0, 0). +# +# .-'-._.-'-._.-'-._.-'-. +# | | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | p | b | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | p | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | b | b | p | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | b | b | p | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | +# '-._.-'-._.-'-._.-'-._.-' +JUMP from (2, -2) to (0, 0). +# +# .-'-._.-'-._.-'-._.-'-. +# | | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | p | b | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | p | b | b | p | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | b | b | p | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | +# '-._.-'-._.-'-._.-'-._.-' +JUMP from (1, 2) to (3, 0). +# +# .-'-._.-'-._.-'-._.-'-. +# | | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | p | b | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | p | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | b | b | p | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | +# '-._.-'-._.-'-._.-'-._.-' +EXIT from (3, 0). +# +# .-'-._.-'-._.-'-._.-'-. +# | | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | b | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | p | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | p | b | b | p | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | +# '-._.-'-._.-'-._.-'-._.-' +JUMP from (1, -1) to (-1, 1). +# +# .-'-._.-'-._.-'-._.-'-. +# | | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | b | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | p | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | b | b | p | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | p | | +# '-._.-'-._.-'-._.-'-._.-' +MOVE from (1, -1) to (0, 0). +# +# .-'-._.-'-._.-'-._.-'-. +# | | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | b | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | p | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | b | b | p | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | p | +# '-._.-'-._.-'-._.-'-._.-' +MOVE from (1, -1) to (0, 0). +# +# .-'-._.-'-._.-'-._.-'-. +# | | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | b | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | p | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | b | b | p | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | b | b | p | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | +# '-._.-'-._.-'-._.-'-._.-' +MOVE from (1, -1) to (0, 0). +# +# .-'-._.-'-._.-'-._.-'-. +# | | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | b | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | p | b | b | p | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | b | b | p | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | +# '-._.-'-._.-'-._.-'-._.-' +JUMP from (1, 2) to (3, 0). +# +# .-'-._.-'-._.-'-._.-'-. +# | | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | b | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | p | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | b | b | p | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | +# '-._.-'-._.-'-._.-'-._.-' +EXIT from (3, 0). +# +# .-'-._.-'-._.-'-._.-'-. +# | | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | b | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | p | b | b | p | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | +# '-._.-'-._.-'-._.-'-._.-' +MOVE from (0, 0) to (-1, 1). +# +# .-'-._.-'-._.-'-._.-'-. +# | | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | b | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | b | b | p | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | p | | +# '-._.-'-._.-'-._.-'-._.-' +JUMP from (-1, 1) to (-1, 3). +# +# .-'-._.-'-._.-'-._.-'-. +# | | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | b | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | b | b | p | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | p | +# '-._.-'-._.-'-._.-'-._.-' +MOVE from (-1, 3) to (0, 3). +# +# .-'-._.-'-._.-'-._.-'-. +# | | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | b | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | b | b | p | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | b | b | p | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | +# '-._.-'-._.-'-._.-'-._.-' +MOVE from (0, 3) to (1, 2). +# +# .-'-._.-'-._.-'-._.-'-. +# | | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | b | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | b | b | p | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | b | b | p | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | +# '-._.-'-._.-'-._.-'-._.-' +JUMP from (1, 2) to (3, 0). +# +# .-'-._.-'-._.-'-._.-'-. +# | | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | b | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | b | b | p | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | +# '-._.-'-._.-'-._.-'-._.-' +EXIT from (3, 0). +# +# .-'-._.-'-._.-'-._.-'-. +# | | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | b | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | b | b | p | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | +# '-._.-'-._.-'-._.-'-._.-' +MOVE from (2, 1) to (3, 0). +# +# .-'-._.-'-._.-'-._.-'-. +# | | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | b | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | b | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | +# '-._.-'-._.-'-._.-'-._.-' +EXIT from (3, 0). + 55593567 function calls in 137.304 seconds + + Ordered by: internal time + + ncalls tottime percall cumtime percall filename:lineno(function) + 221664 69.671 0.000 69.671 0.000 {built-in method _pickle.loads} + 221664 36.460 0.000 36.460 0.000 {built-in method _pickle.dumps} + 8378682 5.680 0.000 7.355 0.000 Board.py:71(distance) + 1 5.501 5.501 137.139 137.139 game2.py:79(A_Star) + 3342 4.050 0.001 7.867 0.002 {built-in method _heapq.heapify} + 15035121 3.972 0.000 3.972 0.000 Board.py:37(__lt__) + 1171976 3.085 0.000 10.440 0.000 game2.py:241(min_dist) + 400870 2.252 0.000 2.672 0.000 game2.py:65(makeHash) + 25136046 1.676 0.000 1.676 0.000 {built-in method builtins.abs} + 19030 1.063 0.000 108.947 0.006 game2.py:282(getNeighbors) + 540912 0.834 0.000 1.133 0.000 game2.py:254(checkJump) + 90152 0.761 0.000 12.423 0.000 game2.py:226(position_value) + 19030 0.537 0.000 0.562 0.000 Board.py:41(getMoves) + 500654 0.511 0.000 0.511 0.000 Board.py:64(move) + 1009461 0.299 0.000 0.299 0.000 game2.py:248(on_board) + 400870 0.224 0.000 0.224 0.000 {method 'sort' of 'list' objects} + 1935372 0.177 0.000 0.177 0.000 {method 'append' of 'list' objects} + 1 0.161 0.161 137.304 137.304 game2.py:23(main) + 23972 0.130 0.000 13.458 0.001 game2.py:220(heuristic) + 19031 0.112 0.000 0.242 0.000 {built-in method _heapq.heappop} + 400871 0.068 0.000 0.068 0.000 {built-in method builtins.len} + 20629 0.047 0.000 0.071 0.000 {built-in method _heapq.heappush} + 22161 0.019 0.000 0.019 0.000 {built-in method builtins.isinstance} + 19031 0.012 0.000 0.012 0.000 game2.py:264(checkGoal) + 2320 0.002 0.000 0.002 0.000 {method 'remove' of 'list' objects} + 33 0.001 0.000 0.002 0.000 game2.py:326(make_bdict) + 33 0.001 0.000 0.002 0.000 game2.py:339(print_board) + 33 0.000 0.000 0.000 0.000 game2.py:409(<listcomp>) + 33 0.000 0.000 0.000 0.000 {method 'format' of 'str' objects} + 65 0.000 0.000 0.000 0.000 {built-in method builtins.print} + 434 0.000 0.000 0.000 0.000 {method 'center' of 'str' objects} + 1 0.000 0.000 0.000 0.000 {built-in method io.open} + 1 0.000 0.000 0.000 0.000 game2.py:271(retrace) + 1 0.000 0.000 0.000 0.000 decoder.py:345(raw_decode) + 3 0.000 0.000 0.000 0.000 copyreg.py:96(_slotnames) + 1 0.000 0.000 0.000 0.000 {method 'read' of '_io.TextIOWrapper' objects} + 1 0.000 0.000 0.000 0.000 decoder.py:334(decode) + 1 0.000 0.000 0.000 0.000 __init__.py:302(loads) + 31 0.000 0.000 0.000 0.000 {method 'insert' of 'list' objects} + 2 0.000 0.000 0.000 0.000 {method 'match' of '_sre.SRE_Pattern' objects} + 1 0.000 0.000 0.000 0.000 {built-in method _locale.nl_langinfo} + 1 0.000 0.000 0.000 0.000 __init__.py:274(load) + 1 0.000 0.000 0.000 0.000 codecs.py:318(decode) + 3 0.000 0.000 0.000 0.000 {built-in method builtins.hasattr} + 10 0.000 0.000 0.000 0.000 Block.py:2(__init__) + 1 0.000 0.000 0.000 0.000 codecs.py:308(__init__) + 2 0.000 0.000 0.000 0.000 {method 'end' of '_sre.SRE_Match' objects} + 3 0.000 0.000 0.000 0.000 {method 'get' of 'mappingproxy' objects} + 1 0.000 0.000 0.000 0.000 _bootlocale.py:23(getpreferredencoding) + 1 0.000 0.000 0.000 0.000 {built-in method _codecs.utf_8_decode} + 4 0.000 0.000 0.000 0.000 Piece.py:2(__init__) + 1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects} + 1 0.000 0.000 0.000 0.000 codecs.py:259(__init__) + 1 0.000 0.000 0.000 0.000 {method 'startswith' of 'str' objects} + + diff --git a/outnew2 b/outnew2 new file mode 100644 index 0000000000000000000000000000000000000000..0eb62f9c9e82cb389fc40a01b5882656ceb76c30 --- /dev/null +++ b/outnew2 @@ -0,0 +1,88 @@ +# +# .-'-._.-'-._.-'-._.-'-. +# | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | p | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | b | p | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | p | b | | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | +# '-._.-'-._.-'-._.-'-._.-' +3-210-100 +JUMP from (-2, 1) to (0, 1). +JUMP from (0, 1) to (2, 1). +MOVE from (0, 0) to (1, -1). +JUMP from (0, -1) to (2, -1). +MOVE from (2, -1) to (3, -2). +EXIT from (3, -2). +MOVE from (2, 1) to (3, 0). +EXIT from (3, 0). +MOVE from (1, -1) to (2, -2). +MOVE from (2, -2) to (3, -3). +EXIT from (3, -3). + 134621 function calls in 0.081 seconds + + Ordered by: internal time + + ncalls tottime percall cumtime percall filename:lineno(function) + 30074 0.022 0.000 0.028 0.000 Board.py:71(distance) + 459 0.015 0.000 0.015 0.000 {built-in method _pickle.dumps} + 459 0.013 0.000 0.013 0.000 {built-in method _pickle.loads} + 4095 0.012 0.000 0.040 0.000 game2.py:243(min_dist) + 90222 0.006 0.000 0.006 0.000 {built-in method builtins.abs} + 1890 0.003 0.000 0.004 0.000 game2.py:256(checkJump) + 315 0.003 0.000 0.047 0.000 game2.py:228(position_value) + 311 0.001 0.000 0.002 0.000 game2.py:65(makeHash) + 1 0.001 0.001 0.080 0.080 game2.py:79(A_Star) + 3738 0.001 0.000 0.001 0.000 game2.py:250(on_board) + 23 0.001 0.000 0.027 0.001 game2.py:284(getNeighbors) + 125 0.000 0.000 0.051 0.000 game2.py:221(heuristic) + 23 0.000 0.000 0.000 0.000 Board.py:41(getMoves) + 286 0.000 0.000 0.000 0.000 Board.py:64(move) + 124 0.000 0.000 0.000 0.000 {built-in method _heapq.heappush} + 1 0.000 0.000 0.081 0.081 game2.py:23(main) + 311 0.000 0.000 0.000 0.000 {method 'sort' of 'list' objects} + 480 0.000 0.000 0.000 0.000 Board.py:37(__lt__) + 1125 0.000 0.000 0.000 0.000 {method 'append' of 'list' objects} + 312 0.000 0.000 0.000 0.000 {built-in method builtins.len} + 24 0.000 0.000 0.000 0.000 {built-in method _heapq.heappop} + 1 0.000 0.000 0.000 0.000 game2.py:328(make_bdict) + 119 0.000 0.000 0.000 0.000 {built-in method builtins.isinstance} + 1 0.000 0.000 0.000 0.000 {built-in method io.open} + 1 0.000 0.000 0.000 0.000 game2.py:341(print_board) + 13 0.000 0.000 0.000 0.000 {built-in method builtins.print} + 3 0.000 0.000 0.000 0.000 copyreg.py:96(_slotnames) + 1 0.000 0.000 0.000 0.000 game2.py:411(<listcomp>) + 1 0.000 0.000 0.000 0.000 decoder.py:345(raw_decode) + 1 0.000 0.000 0.000 0.000 {method 'read' of '_io.TextIOWrapper' objects} + 24 0.000 0.000 0.000 0.000 game2.py:266(checkGoal) + 1 0.000 0.000 0.000 0.000 game2.py:273(retrace) + 10 0.000 0.000 0.000 0.000 {method 'remove' of 'list' objects} + 1 0.000 0.000 0.000 0.000 {method 'format' of 'str' objects} + 1 0.000 0.000 0.000 0.000 decoder.py:334(decode) + 1 0.000 0.000 0.000 0.000 __init__.py:274(load) + 3 0.000 0.000 0.000 0.000 {built-in method builtins.hasattr} + 11 0.000 0.000 0.000 0.000 {method 'insert' of 'list' objects} + 2 0.000 0.000 0.000 0.000 {method 'match' of '_sre.SRE_Pattern' objects} + 1 0.000 0.000 0.000 0.000 {built-in method _locale.nl_langinfo} + 3 0.000 0.000 0.000 0.000 {method 'get' of 'mappingproxy' objects} + 3 0.000 0.000 0.000 0.000 Piece.py:2(__init__) + 1 0.000 0.000 0.000 0.000 __init__.py:302(loads) + 1 0.000 0.000 0.000 0.000 codecs.py:308(__init__) + 1 0.000 0.000 0.000 0.000 codecs.py:318(decode) + 7 0.000 0.000 0.000 0.000 {method 'center' of 'str' objects} + 1 0.000 0.000 0.000 0.000 _bootlocale.py:23(getpreferredencoding) + 1 0.000 0.000 0.000 0.000 {method 'startswith' of 'str' objects} + 2 0.000 0.000 0.000 0.000 {method 'end' of '_sre.SRE_Match' objects} + 1 0.000 0.000 0.000 0.000 {built-in method _codecs.utf_8_decode} + 4 0.000 0.000 0.000 0.000 Block.py:2(__init__) + 1 0.000 0.000 0.000 0.000 codecs.py:259(__init__) + 1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects} + +