之前结束了我们学校的校赛,为了师弟更好的学,那就出个详细的wp吧,首先先讲杂项MISC,这次的MISC其实还是非常简单的。
一笔画完
这题其实只是一个简单的编程题,运用的思想就是递归,这个题不多解释,直接给出脚本:
#!/usr/bin/env python
# encoding: utf-8
from pwn import *
# * 0
# # 2
# . 1
p=remote("123.206.131.120", 9998)
p.recvuntil("]\n")
p.sendline("y")
for T in range(1):
maze=[ "......",
"......",
"......",
"......",
"......",
"......" ]
#maze1=["....#.","......","...#..",".#*...","......"]
p.recvuntil(":\n")
for i in range(6):
pic=p.recvuntil("\n",drop=True)
maze[i]=pic
print maze
data=[[],[],[],[],[]]
for i in range(5):
for j in range(6):
if maze[i][j]==".":
data[i].append(1)
if maze[i][j]=="*":
data[i].append(0)
if maze[i][j]=="#":
data[i].append(2)
print data
ways=[]
waysx=""
waysy=""
payload=""
def dfs(data,row,i,ways):
# a=[1,-1]
data[row][i]=3 #这里置为3表示已经这个点已经走过
if row+1<len(data) and data[row+1][i]==1:
if not dfs(data,row+1,i,ways):
data[row+1][i]=1
if row-1>-1 and data[row-1][i]==1:
if not dfs(data,row-1,i,ways):
data[row-1][i]=1
if i+1< len(data[0])and data[row][i+1]==1:
if not dfs(data,row,i+1,ways):
data[row][i+1]=1
if i-1 >-1 and data[row][i-1]==1:
if not dfs(data,row,i-1,ways):
data[row][i-1]=1
for row1 in data:
for i1 in row1:
if(i1==1):
return False
ways.append((row,i))
return True
for row in data:
for i in row:
if i==0:
dfs(data,data.index(row),row.index(i),ways)
#print(ways)
for i in range(len(ways)-1,-1,-1):
sh=""
sh=ways[i]