Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import socket
- sock = socket.socket()
- sock.connect(("hackyou-ppc300.ctf.su", 11111))
- data = sock.recv(10000).decode()
- data = sock.recv(10000).decode()
- map = data.split('\r\n')[4:-2]
- while True:
- queue = [(19, 1)]
- visited = {(19, 1)}
- prev = dict()
- start = (19, 1)
- finish = (1,39)
- delta = [(-1, 0), (1, 0), (0, 1), (0, -1)]
- print(data)
- while len(queue) > 0:
- cur = queue.pop(0)
- if (cur == finish):
- break
- x, y = cur
- #print(x, y)
- for d in delta:
- dx, dy = d
- if map[x + dx][y + dy] == ' ' and (x + dx, y + dy) not in visited:
- visited.add((x + dx, y + dy))
- prev[(x + dx, y + dy)] = cur
- queue.append((x + dx, y + dy))
- ans = []
- cur = finish
- while cur != start:
- ans.append(cur)
- cur = prev[cur]
- ans.reverse()
- prev_cur = start
- directions = {
- (0, 1):'d',
- (0, -1): 'a',
- (1, 0): 's',
- (-1, 0): 'w',
- }
- ans_dir = []
- for cur in ans:
- x2, y2 = cur
- x1, y1 = prev_cur
- dx, dy = x2 - x1, y2 - y1
- ans_dir.append(directions[(dx, dy)])
- prev_cur = cur
- for direction in ans_dir:
- sock.send(direction.encode())
- data = sock.recv(10000).decode()
- data = sock.recv(10000).decode()
- print(data)
- map = data.split('\r\n')[7:-2]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement