From d99d8919983a4942aafff4f529b0c71b4e5e287d Mon Sep 17 00:00:00 2001 From: Sean Paeglis <s.paeglis@student.unimelb.edu.au> Date: Thu, 11 Apr 2019 18:03:48 +1000 Subject: [PATCH] df --- Board.py | 7 +- __pycache__/Board.cpython-36.pyc | Bin 2757 -> 2935 bytes game.py | 2 + game2.py | 125 ++++++- in10 | 108 ++++++ in6old | 92 +++++ input10.json | 5 + input9.json | 5 + out | 100 +++++ out10 | 104 ++++++ out4 | 127 ++++--- out5 | 89 +++++ out6 | 93 +++++ out8 | 111 ++++++ out9 | 91 +++++ outnew | 280 ++++++++++++++ outnew10 | 109 ++++++ outnew10.1 | 621 +++++++++++++++++++++++++++++++ outnew2 | 88 +++++ 19 files changed, 2082 insertions(+), 75 deletions(-) create mode 100644 in10 create mode 100644 in6old create mode 100644 input10.json create mode 100644 input9.json create mode 100644 out create mode 100644 out10 create mode 100644 out5 create mode 100644 out6 create mode 100644 out8 create mode 100644 out9 create mode 100644 outnew create mode 100644 outnew10 create mode 100644 outnew10.1 create mode 100644 outnew2 diff --git a/Board.py b/Board.py index d3432ed..3ca9c7a 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 GIT binary patch delta 1267 zcmX>q`dy6En3tC;=;68;?TMVB^&Sii45<uJj42FJOeu^}%qapXLMb9CqA6l266tJF zEGaB0tSt;ttSM|M>@5sYY$+TmoGlDd>?vF++${`I94S00ye$k-oGE<444RU+Se^0{ zi&CnVa49G#D5PW-r6!kT=I0eF*eXP;=cwx_sFy&<A`rVsU8i0_JqgTC%2AI6Ys$?p zO9iQ~R?ktl($F>3G0=o)v(hlo(KQ5fiqx$%451td+dxwXtQ%x42!l)oX#lHFf|_Kg zS&O3RB_l&U149ub0|P@ch+tq~U;xqV3=9m;3=9m#EQ|~cDZDBCDS|0N=`1NCpg>8H zOlL`vPLWGdOi@l}NnxGCT*DC0012KF#uScbMi+)=#u|orrWBSMhAgHO7D<K_78?d6 z9y5YhFUgR?1m`lNC<XBlN|{jPI3*cUxZwJ@B^gq<ZD3Y_cnCQzNrn_oxEzRwP{}1} z1~w+0p@t!z8RWuv7BI;Q7GX;PiL<9L1T$!=_`PIiU|@L3#K6E%#60o7>g4~7s~LqS zuVzYR6rL=|Y+V161tiY~B3MDh-~a#rYcdsqM2kc~0{@T%L_q@okp#pT7#LuxL2&@q zqR9lNAZCEHXfhRnD2M=53y3OW0mY;y6F4p*vLGvA0w8t~SRF{WCKG}UF%BdJGaAGO z+X}NB<Qh$mTU@CXnI-WhnK`M&Mf?m547XUp>|1OFnW@RC#kVF`GMfqUfKrVXC>^nI zF>)~qF^Wt+$Sgeh0yE3xOU!N@(hyI|O;%u0WK`Si#PWeL5EQBq7lSM+5&{{`m|Fx2 z!Xg2XdiEkokQj48esPgFh{cwipOar&bc+?7Rf;6QVu=L>sd*`yY(;XDyVx8UwI-it zyX1*#wk8u;ZILp_RF)z+1_p*Gwvza?qWs(_mXi3A{33Nw<Z{9ZkZ+1K7#J8FCqHBF z7Xh0Fa+fCKE#}0eVomlUxyhXz7K|Q~4{<0*f&wqU=2f)W-5AT~?|*dUOACQ}iZ z4N?tL2o``!f~X?q$y{8TD!16<<5TjJ<Kv4|LGF_W5sDx}6GVU<S)@BTm`jm|kAZ=K QgN=nrfQdtDatoIu03&et6aWAK delta 1063 zcmew^c2tzpn3tF9kj|PI$%&ky^%)Ed45<uJj42FJOesPsA}L}i;^{0Yk}1+DvMF-u zEGY^p$|-6o8tE)4taF&7m{YV;bW-$E^ivE{jMCYnSW?(h*jpH)SW`GsI9nK^*iyJs zxLX*a*i(2?cv~2vI8yjh_*)pFI8y|I88nS=u{z}^7NxvoW?*1=$;80G!1R)F@&qQ; zdPW8Y29TgL0|P_xJq8Ab6vh;$7KRdr6y|0|7lvlW8ishr6qXu>EXEWTNrn^_8wMmE zD+-Sd&SOPU3F0ACvLVaWr?5*hq;SABa!N9!aH8-KavYKjDeQ1L5D%de#N)7GNN1>F zh-U&hFrFDqvVcWcQ$XTuDGb33np}R#AU`vJ!hnHc@(!jIj6#zWnNt~sCLd=uRwx2V z7O^rgFch(X!U{~Vfmk3hP4>x;S-iRVL4l<LGJ<)sJ!>3?I0FNNCR35r<fW{NjH;WD zvwmQV04Xm5g)GEGAqED9Ta3A2LyH7J>e-7#L1N4W`Ng-mQY$h`;!84fQj2e~CFkel zmloY(&CM@MEiMuPDPl`3C`ipq(PS%<n#{rBz^FOdljD*nsuh|{V6{c^Aj4UTq!<_& zqS#8}(~9zQqgYDfOY)0AE-vB(c@0ePfLN*w3=9sFQ#kuYz@~w`tI2qaIWehNlf6i4 zGCP+Aqx)nBF6H`{fB*mgugL`Qk~Szn{viqIfCT;{3Fv}c0aXnSQjiu+rXmmpF$1JU zlc@+qK?I;$KonR&lL-=Z;6SVgX@rS@*hOG<Al;fw2sXqxkQB^l5F2bO%yO`6K%y{x z$O3RS*hoz#NJ`LUU{D7|FgS=nN?;BF3m}`tI(ZM5rb3YdC}@>Hgfxhd1rcf>0u<au dT9Y}s6$L;kf`f^Rk&97)U4V&0Y_b`*BLMkZ#rXgL diff --git a/game.py b/game.py index 49e87ca..e26f223 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 8de9502..d06f48c 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 0000000..a669eb2 --- /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 0000000..3eba2ef --- /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 0000000..5fcca17 --- /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 0000000..e59d3b9 --- /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 0000000..3516f5d --- /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 0000000..852b5b1 --- /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 f95cf7f..b080c8d 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 0000000..c0262db --- /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 0000000..dcb8912 --- /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 0000000..48ce151 --- /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 0000000..11e6c35 --- /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 0000000..633b7c4 --- /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 0000000..62131c4 --- /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 0000000..993f24b --- /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 0000000..0eb62f9 --- /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} + + -- GitLab