首页 > 其他分享 >逆向走迷宫脚本

逆向走迷宫脚本

时间:2024-04-01 13:56:12浏览次数:19  
标签:脚本 逆向 return mapray 迷宫 maplist visited 输入

逆向走迷宫脚本

呜哇

import re

dx = [0, 0, -1, 1]
dy = [-1, 1, 0, 0]
directions = ["w", "s", "a", "d"]
# 分别对应x坐标的wsad

def map_input(lenx):
    mapray = []
    n = 0
    output_string = re.sub(r',', ' ', input("请输入地图数据,以逗号分隔: "))
    maplist = output_string.split()
    for i in range(len(maplist)):
        if n % lenx == 0:
            mapray.append([])
        mapray[-1].append(int(maplist[i]))
        n += 1
    return mapray

def dfs(x, y, mapray, visited, rx, ry, path):
    if mapray[y][x] == 1 or visited[y][x]:
        return False
    visited[y][x] = True
    if x == rx and y == ry:
        return True
    for i in range(4):
        new_x = x + dx[i]
        new_y = y + dy[i]
        if 0 <= new_x < len(mapray[0]) and 0 <= new_y < len(mapray) and mapray[new_y][new_x] == 0:
            if dfs(new_x, new_y, mapray, visited, rx, ry, path):
                path.append(directions[i])
                return True
    return False

def main():
    x, y = map(int, input("输入初始的坐标(x, y): ").split())
    lenx = int(input("输入x轴的长度: "))
    rx, ry = map(int, input("输入终点坐标: ").split())
    mapray = map_input(lenx)
    print(mapray)
    #这一步可删,输出的是地图
    visited = [[False for _ in range(len(mapray[0]))] for _ in range(len(mapray))]
    path = []
    if dfs(x, y, mapray, visited, rx, ry, path):
        print("成功走到")
        print("路线:", path[::-1])
    else:
        print("走不通,失败!")

if __name__ == "__main__":
    main()

实验数据:

输入初始的坐标(x, y): 0 0
输入x轴的长度: 9
输入终点坐标: 4 4
请输入地图数据,以逗号分隔: 0,0,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,1,0,0,1,1,1,1
[[0, 0, 1, 1, 1, 1, 1, 1, 1], [1, 0, 0, 1, 1, 1, 1, 1, 1], [1, 1, 0, 1, 1, 1, 0, 1, 1], [1, 1, 0, 0, 1, 1, 1, 1, 1], [1, 1, 1, 0, 0, 1, 1, 1, 1]]
成功走到
路线: ['d', 's', 'd', 's', 's', 'd', 's', 'd']

标签:脚本,逆向,return,mapray,迷宫,maplist,visited,输入
From: https://www.cnblogs.com/aster-ist/p/18108259

相关文章

  • 【安卓逆向】一个画图AI软件的会员分析
    这次的软件名是:5Zu+6LajYWk=可以通过AI绘画,但是有次数限制,会员可以无限制,我们来分析一下这个软件,首先查壳,抓包分析消息,最后再来源码分析可以发现是经过360加固的,脱壳难度较大,再来抓包看看数据有没有突破点,这里使用小黄鸟进行抓包发现有一条响应数据是vip:false(原本是false),后......
  • Redis+lua脚本配合AOP限流
    限流Redis脚本限流脚本配合切面注解定义注解:@Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)@Documentedpublic@interfaceRateLimiter{/***限流key*/publicStringkey()defaultCacheConstants.RATE_LIMIT_KEY;/**......
  • 加密软件VMProtect教程:使用脚本-功能
    VMProtect是新一代软件保护实用程序。VMProtect支持德尔菲、BorlandCBuilder、VisualC/C++、VisualBasic(本机)、VirtualPascal和XCode编译器。同时,VMProtect有一个内置的反汇编程序,可以与Windows和MacOSX可执行文件一起使用,并且还可以链接编译器创建的MAP文件,以快速选择......
  • Unity 3D脚本编程与游戏开发(3.5)
    6.2.8总结和拓展        本节利⽤Unity官⽅素材,以有限的篇幅解释了动画状态机的原理,以及动画制作中最基本但最重要的步骤。总的来看,⽬前的动画只做了4种状态——站⽴、⾛、跑和跳跃,还缺少下蹲、下蹲移动和落地缓冲等动作。好在这些动作只是对现有动作的平⾏扩展,想要......
  • (算法) 入门——<迷宫问题>
    题目:题解:#include<stdio.h>intw,h;chararr[20][20];//初始值数组intt[20][20];//判断是否被选择的数组intdx[4]={0,0,-1,1};intdy[4]={1,-1,0,0};intcount=1;//计数器voiddfs(intx,inty){for(inti=0;i<4;i++)//暴力穷......
  • 35.网络游戏逆向分析与漏洞攻防-游戏网络通信数据解析-登录成功数据包内容分析
    免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动!如果看不懂、不知道现在做的什么,那就跟着做完看效果内容参考于:易道云信息技术研究院VIP课上一个内容:34.登录数据包的监视与模拟首先登陆游戏,到角色选择界面,如下图,可以看到这个数据包很大2421个字节首先确定......
  • OpenStack一键式脚本创建示例网络及图像等
    kolla-ansible提供的一键式创建示例网络、图像等,不得不说,真的是太贴心了!只需根据实际环境修改公共网络和租户网络部分。#!/bin/bashset-oerrexit#Thisscriptismeanttoberunonceafterrunningstartforthefirst#time.Thisscriptdownloadsacirrosimage......
  • python 脚本对数据库的简单操作
    importsqlite3fromdatetimeimportdatetime'''数据库内容[ID]intnull,[loginName]text(50),[loginTime]text(50),[logOutTime]text(50),[operation]intnull'''#连接到数据库conn=sqlite3.connect('test.......
  • 数据库对象大小统计脚本
    获取数据库排名前20的表selectt.table_catalogasdb,n.nspnameasschemaname,c.relname,c.reltuples::numericasrowcount,sys_size_pretty(sys_table_size('"'||nspname||'"."'||relname||......
  • 【亚马逊云科技】使用 Vscode Amazon-Q 完成 GUI 界面粉笔脚本开发
    前言亚马逊云科技-Q,可以快速获得紧迫问题的相关答案,解决问题,生成内容。当与Q聊天时,它会提供即时的相关信息和建议,以帮助简化任务、加快决策速度,并帮助激发工作中的创造力和创新。本次我们通过完整的项目开发全方面体验一下Q的实用性,体验在代码开发中是否真正做到解放生产力......