From 87d88a28697b9bc87dc3e1f76b45dd5fc7547f0e Mon Sep 17 00:00:00 2001 From: Sean Paeglis <s.paeglis@student.unimelb.edu.au> Date: Tue, 2 Apr 2019 13:51:07 +1100 Subject: [PATCH] updated2 --- Board.py | 82 ++++++++------ Piece.py | 4 +- __pycache__/Board.cpython-36.pyc | Bin 1975 -> 2401 bytes __pycache__/Piece.cpython-36.pyc | Bin 413 -> 413 bytes game.py | 156 ++++++++++++++++++++++----- input2.json | 5 + input3.json | 5 + input4.json | 5 + input5.json | 7 ++ out.txt | 80 ++++++++++++++ out1.txt | 176 +++++++++++++++++++++++++++++++ out2.txt | 0 out5.txt | 112 ++++++++++++++++++++ out6.txt | 176 +++++++++++++++++++++++++++++++ 14 files changed, 747 insertions(+), 61 deletions(-) create mode 100644 input2.json create mode 100644 input3.json create mode 100644 input4.json create mode 100644 input5.json create mode 100644 out.txt create mode 100644 out1.txt create mode 100644 out2.txt create mode 100644 out5.txt create mode 100644 out6.txt diff --git a/Board.py b/Board.py index 68574d3..15f7968 100644 --- a/Board.py +++ b/Board.py @@ -1,46 +1,60 @@ import Tile class Board: + exit_tiles = [(3,-3), (3,-2), (3,-1), (3,0)] + """ directions = ['l', 'tl', 'tr', 'r', 'br', 'bl'] moves = {'l':(-1,0), 'tl':(0,-1), 'tr':(1,-1), 'r':(1,0), 'br':(0,1), 'bl':(-1,1)} - tiles = [[None for i in range(7)] for j in range(7)] + """ + moves = [(-1,0), (0,-1), (1,-1), (1,0), (0,1), (-1,1)] def __init__(self): - r = -3 - for q in range(0, 4): - self.new_tile(q,r) - r = -2 - for q in range(-1, 4): - self.new_tile(q,r) - r = -1 - for q in range(-2, 4): - self.new_tile(q,r) - r = 0 - for q in range(-3, 4): - self.new_tile(q,r) - r = 1 - for q in range(-3, 3): - self.new_tile(q,r) - r = 2 - for q in range(-3, 2): - self.new_tile(q,r) - r = 3 - for q in range(-3, 1): - self.new_tile(q,r) + self.tiles = [[None for i in range(7)] for j in range(7)] + self.tiles[0][0] = 0 + self.tiles[0][1] = 0 + self.tiles[0][2] = 0 + self.tiles[1][0] = 0 + self.tiles[1][1] = 0 + self.tiles[2][0] = 0 + self.tiles[4][6] = 0 + self.tiles[5][5] = 0 + self.tiles[5][6] = 0 + self.tiles[6][4] = 0 + self.tiles[6][5] = 0 + self.tiles[6][6] = 0 + self.pieces = [] + self.g = 0 + self.f = 0 + self.parent = None + + def getMoves(self): + valid_moves = [] + for piece in self.pieces: + if piece.pos in self.exit_tiles: + return piece + p_r = piece.pos[1]+3 + p_q = piece.pos[0]+3 + for move in self.moves: + if p_r + move[1] > 6 or p_r + move[1] < 0 or p_q + move[0] > 6 or p_q + move[0] < 0: + continue - def new_tile(self, q, r): - tile = Tile.Tile((q,r)) - self.tiles[r+3][q+3] = tile + if self.tiles[p_r + move[1]][p_q + move[0]] is None: + valid_moves.append(((p_q-3, p_r-3),(p_q-3 + move[0], p_r-3 + move[1]))) + + elif p_r + move[1]*2 <= 6 and p_r + move[1]*2 >= 0 and p_q + move[0]*2 <= 6 and p_q + move[0]*2 >= 0: + if self.tiles[p_r + move[1]*2][p_q + move[0]*2] is None: + valid_moves.append(((p_q-3, p_r-3),(p_q-3 + move[0]*2, p_r-3 + move[1]*2))) + + return valid_moves def move(self, t_from, t_to): - tile_from = self.tiles[t_from[1]+3][t_from[0]+3] - tile_to = self.tiles[t_to[1]+3][t_to[0]+3] - tile_from.piece.pos = t_to - tile_to.piece = tile_from.piece - tile_from.piece = None + piece = self.tiles[t_from[1]+3][t_from[0]+3] + self.tiles[t_from[1]+3][t_from[0]+3] = None + self.tiles[t_to[1]+3][t_to[0]+3] = piece + self.tiles[t_to[1]+3][t_to[0]+3].pos = t_to def distance(self, start, end): - q1 = start.pos[0] - q2 = end.pos[0] - r1 = start.pos[1] - r2 = end.pos[1] + q1 = start[0] + q2 = end[0] + r1 = start[1] + r2 = end[1] return (abs(q1 - q2) + abs(q1 + r1 - q2 - r2) + abs(r1 - r2))/2 diff --git a/Piece.py b/Piece.py index 3ef6405..9331642 100644 --- a/Piece.py +++ b/Piece.py @@ -1,4 +1,4 @@ class Piece: - def __init__(self, pos): + def __init__(self, pos, colour): self.pos = pos - self.visited = [self.pos] + self.colour = colour diff --git a/__pycache__/Board.cpython-36.pyc b/__pycache__/Board.cpython-36.pyc index a0bf57e25c327c443cf9549e5232aef0d9d72a62..f9e8f3375bc235d21baf8a21e37f29b5d1235765 100644 GIT binary patch literal 2401 zcmXr!<>lH{yC5cygMr~O0}^0nU|?`yU|=YgVqjoMVMt-jVTfXIXGmd6VQyhaVQyxM zVoYHSX3%7L3DV@33?gBe9j4cVfq@~FA&N1DA&M!5KSeM_I7K9#C5kykEJY$kDn&X) zCPgltEs7<DHHEE(A&NDHJ%yu%A&M=9Gli>#A&NbPJB6o(A&Mh~H<&?F{uZlKeqvF| zOOVrEGBGePykulxU?>6+$sht`J%|R$JA<5l1LSnZ6s8u25|EP_T^O1fYZ&4gQ&?&k zvKUiXBpFgzY#5MutSCG-IFA)YC5VSm$%Z1wF3FI>0oTVV$&kW{!b8Y$NHV0b!{tCc zgh~*P!-gT9p@t!z3FN+bW-!T;0uo_OVF+f><nn`i8Wa|+3=9mxAWzFNFn~42iq$fL z;tlM1re?6`Co&bX1T$zdqv!+$7g(nNOeY6OCsZw?-%18erdv#U2Dcb9i`YN`4kCVO z>1X8Urs@}`Cg$k}6y>KECFbU4=B4X9dg>Px<!7ZPm*|6IORu2v7ne;=W^qY!er|ys zH^_+~_p&im=|U95$7kkcmc+;F+2rIWC*~B}=^>OOF<*jGl_ujY)}q9`^i)lzA`t%; zV-~_qMVuhlaWOD3Alsru*p?!YdT=@_0tI6c3n*=Y36NJ`g2Xi0ig*|p7;dqaWagw6 z-(oAsOifNLzQve+i!tpMTR~z`YF>#Z<1Lor)SNUl7v183`4Hr^VkK}g6=CGV0ofQq zu!;}W+3*+xxrl>-fdQPrH!y<Yx|VSQW5tphhAajbh6#+ZGisS?n6ema7_ykM*@{$Z zn1UHV{1iq>h7=}ohFWGYj~U8inZQ_)Qp1qN4AvV_%UZ)+!wOO>&XB^A%~I@z#AnWC zDE6vhsbNiFmSlj-BlyhO3`LU)y=oY;SP;4-84x-o8B!RsIf~xYFlMpVu%s|aFw`)E z$TTJ>4{9<*6y}aJrZlEzMn;B0xLZ<KMIiPw7NLtVXR{W;-H4(N>Q1N_L>-b#A>s(v z!uVhpd*OF6L@lzbAtDHuhcguNg)`KEN=!CCNGb#6J4mAA2c=t3dedYp5(1?%=7Rj< zTU@CXnI-X%^v0T-UzS>2BnXmZODrfz%}dc_D-vU1V2I)_OU%hki3cmV#R^WBQOpJL zMIfT^77IumBSEI8miU4Ulm+ERP=Ud~$igVV$iv72PLu+S4vb7pN{kjv0gPIVZcMPm z2-B7faylp(gWL?l;KW$Rz`y`Xgf)zy<O51-k_<JBpris}*D`}juPl%lG$|s>+c4BH zgLN|@>1KlIwqdAY!YwNaD$_w_A`5!ZYBGVttVn`^fkBf65@2j4@o7c*xlt@7@g@01 zGN7;rWhzJ@fr}7Ouo!}Z29(hl80EmQiVKn>K>-R608kkO4}btr0DwIY%3~mJ)Uwnt zrZ7n|)UwtvfoZl9kT+Q*7@8TuELL%b8WstL8a9xKI710T4J(YD!YmE-5~xmtBpHxZ znvA!Y6O)QH*}=ZK#adjFSX6S0IW;dOimA{rimA{jimAvjimAv5;v=x%K;F8=k&;<l zl9-pAY7X)ns4!w+<bXn06vLGGz5M(C|9?%UB2ZKpDT4~ce@Fr<Ac6l#0;-?@hN=d; z7b*avAc-8r(quxgi=YCa(iMdb(hgIIED2H%4hBt5P?4IKn420Oe~T+VJ~uz5GzY}y ziH|QVP0WGF6iI?&7Swtv5(lwB$-D>@vqhj17%6Pv0aOI4mq54}RMc}Y@~{aoatL#X iaIk@8G?}7ULNaqw!5nP*Z*kZ_oMH#^LNUlB4n_d1n90Hb literal 1975 zcmXr!<>h+4Wk!q(D+9x01|-1Dz`)?Zz`#%}#lXOj!jQt4!w|*b&XB^C!ra1;!raUh z#hAhv%%I8g5~Rs58AQS`J4|l^0|P@ULlk2QLljdABS>!wOA2cWTRK}5bBcJ1WQuf( zOp0uZd<y3rwkVbqt`zPThE&!Ro@PcDhGxbnwiMnJz7~ck_7wgUffj}+jugQZp%#WH z&J^Jkkrsw1t`yN=22F)qtWNofMJcx!b8az}fN;?*#-dwHNg$l_l97Rdp$J51vK4_m zRm1`kU<DCuAOhsrA`S)yhGdW;kQbO37#KkE&LHp0F)%QsGt@A|iq$fLf}w?>gdv3q z;=qYag)G4gn#?FVL3RX#bPB+9a)5L~)iV06WYA=~#iVC&i!rl^3*-P0@k>iTBR@A) zzc@89Pd}h2KfNe1H#ajcUEk4Dzn~~TD>b=9AM8oJg34c9HaVHaCCT}@1$H1G6ocH$ z#!w{<QGk%tLoi>0e5uKJi?t{*FFjS0sfe3_f#DWo7QzKZydbymF)%P7n<;>9W)VMf zNP+wc3QllHF)%VPq_EX8R>*-u2$V!z7-9u#nQ9oa7;Bhn7@L_G843l$8B*AxYB+GH zF$rf#;e@K;!l5Q2oFRn?s)iefnwoHi6jrDjo)pGrCM@n*5YCXo0#(DC!h%)Jk#L3- zMyMLT6jrQiUW7BGFa$Gb^83961qwL9y#xi#OHk|-aWXJ4y!`wB|Noc&K*az5|Nj?> zg92O(M2KP%noLEY^mB_NFSR_rBr_*fllc})acWLl5h!|YF&3i5+%1my_{_Y_lK6N~ zOc!f`(lH|oqX44-5o8q~B${DHB!j#FG6CcP5C+Gu1_J{_2}2e`4Py;c8dEc4EprVs zByLj}#Tg_SY8XMZ4I~_x{ECDa7(hv#B_uN^^%g7055<}+MUo)Dg31(#M_54OXnrY@ zU|?VX<-1~#-3*L;j4%hn0t4<qP&NfQ7VN+<1_p*2ume*VB^gqfppIgOv1>ujWvF37 zl4VLk$g<Qh)i7r<#)HWkmUzY#h8kuN2`c6Mz)=YH6F6=)nTupWS%|eDGc`H&7IQ&< zu_i0nb5U$1@o7c*xlt@7@g@0DoFETE1lYmMl6*Ap-eSqkFH2Pd6&awSfPqntQI3&= zk%O^{3lc3LX}FI;(F+O|u#Y1^K4#2f0QsnvxrPbKVyOX%F-bDivVz4xEVdHH8s-`n z35I4yFpE{30mQ3e1Br+;lrYw?!q_Ry(x9Zw;s^FA#N#61$ShI-`I$K}saTU8?Acqa z#U+VFCAXMU^HQRi3Js%}3XP(eiVUNeij2^`$&r#-T#}fVoT`cNDi<RJ!Xg-^#1EW1 zG?~B@#2KLMqRE6{gQYZ?AkKqIa)J^Us2GPS1PeeVK@?cECO0Uz<R#{&#>d~{ijU9D zPbtj-v3cU-3riDoATm*0DVas7$t9WjdBstzpg1T7XGw6p7fFL`0;SU;MG#9BM1W!s z&C^Ao+z-OVpxn&CD8R_U$i*nc$RW<b!od!f)nqD?0qF**LedR33{)oH;;?}@&<^A= JaAD8E2mq$?fdK#j diff --git a/__pycache__/Piece.cpython-36.pyc b/__pycache__/Piece.cpython-36.pyc index bc198be1829e1b465f4c87e94de2a60d62b0fa56..8b7c34fc71bb2295e61485daec010de8badf2e74 100644 GIT binary patch delta 167 zcmbQsJeQf%n3tC;W69i@w27RVfy@jL0HT=~7#N%x7#NBL7#J987;6~f8ETkn7~&aI z7=jrz8T~YwZZQ|+7vEw_&d<p&Ez)GZ#ZsJ_lU4-MR|GO(B|{PG#KU!>><kPHMXaa< f+vG4tMKyFm1_p*(95%W6DWy57c8nmqLCygHt7{)u delta 167 zcmbQsJeQf%n3tF9>y{ZY$rCv<1DO~g07QeZGXn!du?PbLLk(jMLp(zbLl#3ih{c$~ z5X_*-=%>kai@6}bIEuY2vpBOPHAR!@7E5tzPFfL2^Gb#ymWhY!MA;Y^7>Za>3D(JB cjEZXLf(#4{w>WHa^HWN5QtcQ)c7vP)00fF4BLDyZ diff --git a/game.py b/game.py index 918385e..a958bdc 100644 --- a/game.py +++ b/game.py @@ -1,46 +1,152 @@ import sys import json +import copy import Board import Piece import Block board = Board.Board() +exit_tiles = {'red':[(3,-3),(3,-2),(3,-1),(3,0)]} def main(): with open(sys.argv[1]) as file: data = json.load(file) bdict = {} for p in data['pieces']: - piece = Piece.Piece(tuple(p)) - for row in board.tiles: - for tile in row: - if tile is not None and tile.pos == piece.pos: - tile.add_piece(piece) - + piece = Piece.Piece(tuple(p), data['colour']) + board.tiles[piece.pos[1]+3][piece.pos[0]+3] = piece + board.pieces.append(piece) + for b in data['blocks']: block = Block.Block(tuple(b)) - for row in board.tiles: - for tile in row: - if tile is not None and tile.pos == block.pos: - tile.add_block(block) - - bdict = make_bdict() - print_board(bdict) - board.move((0,0),(0,1)) - bdict = make_bdict() - print_board(bdict) - print(board.distance(board.tiles[3][3], board.tiles[2][6])) - -def make_bdict(): + board.tiles[block.pos[1]+3][block.pos[0]+3] = block + + path = A_Star(board) + if path is None: + print("No path found") + else: + for node in path: + bdict = make_bdict(node) + print_board(bdict) + + +def A_Star(start): + closedSet = [] + openSet = [start] + + start.g = 0 + + start.f = heuristic(start) + while openSet: + minF = 1000000 + for node in openSet: + if node.f <= minF: + current = node + minF = current.f + + if checkGoal(current): + return retrace(current) + + openSet.remove(current) + closedSet.append(current) + + neighbors = getNeighbors(current) + + for neighbor in neighbors: + """ + inClosed = False + for node in closedSet: + if listCompare(neighbor.tiles, node.tiles): + inClosed = True + if inClosed: + continue + """ + + #if neighbor.tiles == node.tiles: + # continue + tentative_gScore = current.g + 1 + + inOpen = False + for node in openSet: + if listCompare(neighbor.tiles, node.tiles): + inOpen = True + + if not inOpen: + openSet.append(neighbor) + + elif tentative_gScore >= neighbor.g: + continue + + neighbor.parent = current + neighbor.g = tentative_gScore + neighbor.f = neighbor.g + heuristic(neighbor) + +def listCompare(list1, list2): + for i in range(0,7): + for j in range(0,7): + if type(list1[i][j]) is not type(list2[i][j]): + return False + + return True + +def heuristic(node): + h = 0 + for piece in node.pieces: + min_dist = 10 + for tile in exit_tiles['red']: + if board.distance(piece.pos, tile) <= min_dist: + min_dist = board.distance(piece.pos, tile) + h += (min_dist + 1) / 2 + return h + +def checkGoal(state): + if not state.pieces: + return True + else: + return False + +def retrace(goal): + path = [] + cur = goal + while cur.parent is not None: + path.insert(0,cur) + cur = cur.parent + path.insert(0,cur) + return path + +def getNeighbors(current): + neighbors = [] + moves = current.getMoves() + + if isinstance(moves, Piece.Piece): + neighbor = copy.deepcopy(current) + + for piece in neighbor.pieces: + if piece.pos == moves.pos: + neighbor.pieces.remove(piece) + break + + neighbor.tiles[moves.pos[1]+3][moves.pos[0]+3] = None + + neighbors.append(neighbor) + return neighbors + + for move in moves: + neighbor = copy.deepcopy(current) + neighbor.move(move[0], move[1]) + neighbors.append(neighbor) + return neighbors + +def make_bdict(state): bdict = {} - for row in board.tiles: - for tile in row: - if tile is not None and tile.piece is not None: - bdict[tile.piece.pos] = 'p' - elif tile is not None and tile.block is not None: - bdict[tile.block.pos] = 'b' + for row in state.tiles: + for col in row: + if isinstance(col, Piece.Piece): + bdict[col.pos] = 'p' + elif isinstance(col, Block.Block): + bdict[col.pos] = 'b' return bdict diff --git a/input2.json b/input2.json new file mode 100644 index 0000000..e27ab87 --- /dev/null +++ b/input2.json @@ -0,0 +1,5 @@ + + "colour": "red", + "pieces": [[1,1]], + "blocks": [] +} diff --git a/input3.json b/input3.json new file mode 100644 index 0000000..acb07c4 --- /dev/null +++ b/input3.json @@ -0,0 +1,5 @@ +{ + "colour": "red", + "pieces": [[0,0],[0,-1]], + "blocks": [[-1,0],[-1,1],[1,1],[3,-1]] +} diff --git a/input4.json b/input4.json new file mode 100644 index 0000000..d6986fa --- /dev/null +++ b/input4.json @@ -0,0 +1,5 @@ +{ + "colour": "red", + "pieces": [[0,0],[0,-1],[-2,1],[-3,0]], + "blocks": [[-1,0],[-1,1],[1,1],[3,-1]] +} diff --git a/input5.json b/input5.json new file mode 100644 index 0000000..15ed7be --- /dev/null +++ b/input5.json @@ -0,0 +1,7 @@ +{ + "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/out.txt b/out.txt new file mode 100644 index 0000000..515c6b4 --- /dev/null +++ b/out.txt @@ -0,0 +1,80 @@ +# +# .-'-._.-'-._.-'-._.-'-. +# | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | p | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | +# '-._.-'-._.-'-._.-'-._.-' +# +# .-'-._.-'-._.-'-._.-'-. +# | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | | p | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | +# '-._.-'-._.-'-._.-'-._.-' +# +# .-'-._.-'-._.-'-._.-'-. +# | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | | p | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | +# '-._.-'-._.-'-._.-'-._.-' +# +# .-'-._.-'-._.-'-._.-'-. +# | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | +# '-._.-'-._.-'-._.-'-._.-' +# +# .-'-._.-'-._.-'-._.-'-. +# | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | +# '-._.-'-._.-'-._.-'-._.-' diff --git a/out1.txt b/out1.txt new file mode 100644 index 0000000..cc70f06 --- /dev/null +++ b/out1.txt @@ -0,0 +1,176 @@ +# +# .-'-._.-'-._.-'-._.-'-. +# | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | p | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | b | p | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | p | b | | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | +# '-._.-'-._.-'-._.-'-._.-' +# +# .-'-._.-'-._.-'-._.-'-. +# | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | p | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | b | p | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | b | p | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | +# '-._.-'-._.-'-._.-'-._.-' +# +# .-'-._.-'-._.-'-._.-'-. +# | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | p | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | b | p | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | b | | b | p | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | +# '-._.-'-._.-'-._.-'-._.-' +# +# .-'-._.-'-._.-'-._.-'-. +# | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | p | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | b | p | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | b | | b | p | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | +# '-._.-'-._.-'-._.-'-._.-' +# +# .-'-._.-'-._.-'-._.-'-. +# | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | p | | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | p | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | b | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | b | | b | p | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | +# '-._.-'-._.-'-._.-'-._.-' +# +# .-'-._.-'-._.-'-._.-'-. +# | | | | p | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | p | | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | b | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | b | | b | p | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | +# '-._.-'-._.-'-._.-'-._.-' +# +# .-'-._.-'-._.-'-._.-'-. +# | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | p | | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | b | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | b | | b | p | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | +# '-._.-'-._.-'-._.-'-._.-' +# +# .-'-._.-'-._.-'-._.-'-. +# | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | p | | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | b | | | | p | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | b | | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | +# '-._.-'-._.-'-._.-'-._.-' +# +# .-'-._.-'-._.-'-._.-'-. +# | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | p | | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | b | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | b | | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | +# '-._.-'-._.-'-._.-'-._.-' +# +# .-'-._.-'-._.-'-._.-'-. +# | | | | p | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | b | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | b | | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | +# '-._.-'-._.-'-._.-'-._.-' +# +# .-'-._.-'-._.-'-._.-'-. +# | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | b | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | b | | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | +# '-._.-'-._.-'-._.-'-._.-' diff --git a/out2.txt b/out2.txt new file mode 100644 index 0000000..e69de29 diff --git a/out5.txt b/out5.txt new file mode 100644 index 0000000..009d5a7 --- /dev/null +++ b/out5.txt @@ -0,0 +1,112 @@ +# +# .-'-._.-'-._.-'-._.-'-. +# | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | p | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | b | p | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | b | | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | +# '-._.-'-._.-'-._.-'-._.-' +# +# .-'-._.-'-._.-'-._.-'-. +# | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | p | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | b | p | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | b | | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | +# '-._.-'-._.-'-._.-'-._.-' +# +# .-'-._.-'-._.-'-._.-'-. +# | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | p | | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | p | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | b | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | b | | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | +# '-._.-'-._.-'-._.-'-._.-' +# +# .-'-._.-'-._.-'-._.-'-. +# | | | | p | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | p | | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | b | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | b | | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | +# '-._.-'-._.-'-._.-'-._.-' +# +# .-'-._.-'-._.-'-._.-'-. +# | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | p | | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | b | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | b | | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | +# '-._.-'-._.-'-._.-'-._.-' +# +# .-'-._.-'-._.-'-._.-'-. +# | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | p | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | b | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | b | | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | +# '-._.-'-._.-'-._.-'-._.-' +# +# .-'-._.-'-._.-'-._.-'-. +# | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | b | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | b | | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | +# '-._.-'-._.-'-._.-'-._.-' diff --git a/out6.txt b/out6.txt new file mode 100644 index 0000000..cc70f06 --- /dev/null +++ b/out6.txt @@ -0,0 +1,176 @@ +# +# .-'-._.-'-._.-'-._.-'-. +# | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | p | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | b | p | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | p | b | | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | +# '-._.-'-._.-'-._.-'-._.-' +# +# .-'-._.-'-._.-'-._.-'-. +# | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | p | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | b | p | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | b | p | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | +# '-._.-'-._.-'-._.-'-._.-' +# +# .-'-._.-'-._.-'-._.-'-. +# | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | p | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | b | p | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | b | | b | p | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | +# '-._.-'-._.-'-._.-'-._.-' +# +# .-'-._.-'-._.-'-._.-'-. +# | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | p | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | b | p | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | b | | b | p | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | +# '-._.-'-._.-'-._.-'-._.-' +# +# .-'-._.-'-._.-'-._.-'-. +# | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | p | | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | p | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | b | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | b | | b | p | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | +# '-._.-'-._.-'-._.-'-._.-' +# +# .-'-._.-'-._.-'-._.-'-. +# | | | | p | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | p | | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | b | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | b | | b | p | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | +# '-._.-'-._.-'-._.-'-._.-' +# +# .-'-._.-'-._.-'-._.-'-. +# | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | p | | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | b | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | b | | b | p | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | +# '-._.-'-._.-'-._.-'-._.-' +# +# .-'-._.-'-._.-'-._.-'-. +# | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | p | | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | b | | | | p | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | b | | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | +# '-._.-'-._.-'-._.-'-._.-' +# +# .-'-._.-'-._.-'-._.-'-. +# | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | p | | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | b | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | b | | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | +# '-._.-'-._.-'-._.-'-._.-' +# +# .-'-._.-'-._.-'-._.-'-. +# | | | | p | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | b | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | b | | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | +# '-._.-'-._.-'-._.-'-._.-' +# +# .-'-._.-'-._.-'-._.-'-. +# | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | | | | b | +# .-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-. +# | | | b | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | b | | b | | +# '-._.-'-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | | +# '-._.-'-._.-'-._.-'-._.-'-._.-' +# | | | | | +# '-._.-'-._.-'-._.-'-._.-' -- GitLab