0%

[HUBUCTF 2022 新生赛]help lingfeng的WriteUp

2023-08-29 03:52By
lingfeng
动态调试迷宫REVERSE迷宫问题
maze=[ ] from hashlib import md5 def finda(d): x,y=d[0],d[1]-1 return (x,y,'a') def findw(d): x,y=d[0]-1,d[1] return (x,y,'w') def finds(d): x,y=d[0]+1,d[1] return (x,y,'s') def findd(d): x,y=d[0],d[1]+1 return (x,y,'d') def find0(d,row,column): if d[0]==0: t=[finda(d),findd(d),finds(d)] elif d[0]==row-1: t=[findw(d),finda(d),findd(d)] elif d[1]==0: t=[findw(d),findd(d),finds(d)] elif d[1]==column-1: t=[findw(d),finda(d),finds(d)] else: t=[findw(d),finda(d),finds(d),findd(d)] tmp=[] for x,y,r in t: if maze[x][y]==0: tmp.append((x,y,r)) return tmp def get(o,O,row,column):#起点,终点,行,列 Road = [('', o)] while True: road=[] for (r_pre,d) in Road: if d==O:#终点 print('NSSCTF{'+md5(r_pre.encode()).hexdigest()+'}') exit() next=find0(d,row,column) for x,y,r in next: if len(r_pre)>=1: if 'ws'in r_pre[-1]+r or 'sw' in r_pre[-1]+r: continue if 'ad' in r_pre[-1] + r or 'da' in r_pre[-1] + r: continue road.append((r_pre+r,(x,y))) Road=road row,column=16,16 maze = [maze[i:i + column] for i in range(0, len(maze), column)] get((15,1),(13,15),row,column)
还没有人赞赏,快来当第一个赞赏的人吧!
  
© 著作权归作者所有

加载中...

加载失败
广告
×
评论区
添加新评论

加载中...