问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何解决python3中pyautogui模块无法使用moveTo函数的问题?

发布网友 发布时间:2022-04-18 06:16

我来回答

2个回答

懂视网 时间:2022-04-18 10:38

这篇文章主要介绍了Python使用回溯法解决迷宫问题,简单讲述了迷宫问题的原理并结合实例形式分析了Python基于回溯法子集树模板解决迷宫问题的相关操作技巧与注意事项,需要的朋友可以参考下

本文实例讲述了Python使用回溯法解决迷宫问题。分享给大家供大家参考,具体如下:

问题

给定一个迷宫,入口已知。问是否有路径从入口到出口,若有则输出一条这样的路径。注意移动可以从上、下、左、右、上左、上右、下左、下右八个方向进行。迷宫输入0表示可走,输入1表示墙。为方便起见,用1将迷宫围起来避免边界问题。

分析

考虑到左、右是相对的,因此修改为:北、东北、东、东南、南、西南、西、西北八个方向。在任意一格内,有8个方向可以选择,亦即8种状态可选。因此从入口格子开始,每进入一格都要遍历这8种状态。

显然,可以套用回溯法的子集树模板。

注意,解的长度是不固定的。

代码


# 迷宫(1是墙,0是通路)
maze = [[1,1,1,1,1,1,1,1,1,1],
 [0,0,1,0,1,1,1,1,0,1],
 [1,1,0,1,0,1,1,0,1,1],
 [1,0,1,1,1,0,0,1,1,1],
 [1,1,1,0,0,1,1,0,1,1],
 [1,1,0,1,1,1,1,1,0,1],
 [1,0,1,0,0,1,1,1,1,0],
 [1,1,1,1,1,0,1,1,1,1]]
m, n = 8, 10 # 8行,10列
entry = (1,0) # 迷宫入口
path = [entry] # 一个解(路径)
paths = [] # 一组解
# 移动的方向(顺时针8个:N, EN, E, ES, S, WS, W, WN)
directions = [(-1,0),(-1,1),(0,1),(1,1),(1,0),(1,-1),(0,-1),(-1,-1)]
# 冲突检测
def conflict(nx, ny):
 global m,n,maze
 # 是否在迷宫中,以及是否可通行
 if 0 <= nx < m and 0 <= ny < n and maze[nx][ny]==0:
 return False
 return True
# 套用子集树模板
def walk(x, y): # 到达(x,y)格子
 global entry,m,n,maze,path,paths,directions
 if (x,y) != entry and (x % (m-1) ==0 or y % (n-1) == 0): # 出口
 #print(path)
 paths.append(path[:]) # 直接保存,未做最优化
 else:
 for d in directions: # 遍历8个方向(亦即8个状态)
 nx, ny = x+d[0], y+d[1]
 path.append((nx,ny)) # 保存,新坐标入栈
 if not conflict(nx, ny): # 剪枝
 maze[nx][ny] = 2 # 标记,已访问(奇怪,此两句只能放在if区块内!)
 walk(nx, ny)
 maze[nx][ny] = 0 # 回溯,恢复
 path.pop() # 回溯,出栈
# 解的可视化(根据一个解x,复原迷宫路径,'2'表示通路)
def show(path):
 global maze
 import pprint, copy
 maze2 = copy.deepcopy(maze)
 for p in path:
 maze2[p[0]][p[1]] = 2 # 通路
 pprint.pprint(maze) # 原迷宫
 print()
 pprint.pprint(maze2) # 带通路的迷宫
# 测试
walk(1,0)
print(paths[-1], '
') # 看看最后一条路径
show(paths[-1])

效果图

热心网友 时间:2022-04-18 07:46

是mac机器上的吗?新的安全功能要求用户需要明确指定可以用鼠标和键盘的应用。
需要让termial可以控制鼠标和键盘才行。追问那在哪里设置呢?

追答Have a look in Security Preferences > Security & Privacy > Privacy > Accessibility - you might have to allow your terminal application in the list.

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
我有个无线路由器 G11手机无法上wifi 已经按照路由说明书上步骤安装调... g11无线网显示以连接信号强但是一上网显示网络错误 拜求解 HTC G11能连接上WLAN,信号显示“极强”但上不去网? ...可是家里的能连上就是打不开网页,我的路由是上海贝尔的那种。_百度... 我的手机HTC G11 连接上WLAN,信号很好,就是无法上网 ...连上家里的无线网,但是qq却上不去,网页也打不开,等于没练上一样... G11WIFI信号格满但是打不开网页等 就生产力发展而言,丛西汉至唐朝有何表现 汉代农业的发展程度是怎么样的? 你好 酷管家密码忘了 打不开怎么办 周公解梦自己放屁很响声 梦到死去的亲人放屁 莲藕块怎么炒的做法 电影格式怎样转换 电影格式怎样转换。要快的。 怎样转换电影格式 电影格式怎么转换啊? 头上的伤口不缝针能好嘛,有四厘米左右,和注意事项,如何能尽快愈合伤口 头部4cm伤口多久可以愈合? 急!!!头部伤口愈合 梦见老公和别的女人有性关系 头部活检之后多长时间伤口愈合 DNF2014年春节套的宝珠可以交易吗? 头部伤口拆线后,一般需要多长时间恢复正常 dnf蛇年春节宝珠该怎么交易? 帮帮忙!!夏天头上缝针伤口愈合,医生来!或有经验的来!谢谢! Dnf 新年套宝珠能交易么 头部微创手术口子有多大多久能好? 头上的伤口多久后才能完全愈合?? dnf头肩,腰带,鞋+30力宝珠有哪些可以交易? Cegid软件这个有人用过吗 Cegid施易德为大型连锁服装品牌提供的是什么管理软件? Cegid施易德软件能为服装连锁店带来什么? 想问一下Cegid施易德软件公司为欧舒丹集团提供的管理软件是什么? 听说Cegid施易德的零售管理软件很厉害? 法国Lacoste选择Cegid施易德软件的原因? 求哈尔滨洗衣店洗各种衣物的价格!(做参考用) 哈尔滨哪里有自助洗衣店!我要洗地垫,很大,很沉!很大的洗衣机的自助洗衣店!要是能洗的话要多少钱 求哈尔滨三洋洗衣机售后维修电话及地址 哈尔滨卡迪洗衣机销售点 谁知道美菱洗衣机的哈尔滨售后服务电话! 洗涤机械,大型洗衣机,也叫洗衣房设备---哈尔滨这边哪有卖? 哈尔滨哪能买到松下泡沫净洗衣机 中国政府怎么看待郁伯仁事件 中国休斯顿使馆产权是中国的吗? 我想在哈尔滨买洗衣机 不知道去哪儿好? 外国人的刑事责任 可以通过外交途径解决的是哪种? 进入美国驻成都总领事馆意味着什么 9月17日是什么节日啊 哪些人员的刑事责任属于通过外交途径解决的情况